草庐IT

VSFTPD的基础安全加固

lisenMiller 2023-03-28 原文

与SSL配置相关的设置(要添加)

ssl_enabe=YES| NO #是否启用ssl

ssl_sslv2=YES|NO #是否激活sslv2加密

ssl_sslv3=YES|NO #是否激活sslv3加密

ssl_tlsv1=YES|NO #是否激活tlsv1加密

force_local_logins_ssl=yes|NO #非匿名用户登陆时是否加密

force_local_data_ssl=YES|NO #传输数据是否加密

rsa_cert_file=/etc/vsftpd/.sslkey/vsftpd.pem #证书位置

配置ftp仅允许ssl连接

 

#利用openssl创建证书
openssl req -new -x509 -nodes (-days 3650) -out vsftpd.pem -keyout vsftpd.pem

# openssl req会在任何需要私钥的地方自动创建私钥
-new 生成一个新的证书签署请求
-x509:专用于CA生成自签证书,如果不是自签证书则不需要此项

vi /etc/vsftpd/vsfptd.conf
ssl_enable=YES
force_local_login_ssl=YES
rsa_cert_file=/etc/vsftpd/vsftpd.pem

可能错误:

425 Failed to establish connection  设置selinux为disable /etc/selinux/config

530 login incorrect  /etc/pam.d/vsftpd 文件里的这一行,#auth required pam_shells.so 意思是只有包含shell的用户才能登录,但是我们用户的bash是nologin不允许登陆

530 Non-anonymous sessions must use encryption   非匿名用户必须使用证书连接登陆

对本地用户的目录穿越设置

  关键词: chroot

chroot_local_user=YES

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

(1)对local_user设置的理解: chroot_local_user为YES时,即代表本地用户的活动范围限制在自家目录

(2)指定用户执行chroot -可以进行目录穿越

chroot_local_user=No 

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list 

只有在list_file里指定的用户可以进行 list_file的格式为每个用户名占一行

对本地用户的访问控制

  关键词:userlist  tips:centos7 只有userlist_enable 其余可能要自己添加

userlist_enable=YES

userlist_deny=YES 

userlist_file=/etc/vsftpd.user_list #该文件指定的本地用户可以访问ftp服务器 其他则不可以 

banner信息控制

  关键词: banner

file_banner=xxx

配置基本的性能和安全选项

1. 空闲用户会话中断时间 #keyword=timeout

idle_session_timeout=xx #unit is seconds

2.空闲数据连接的中断时间

data_connection_timeout= xx # also seconds

3.传输速率配置 #important 对本地用户和匿名用户

  #要自己添加

local_max_rate=50000 #50kbytes /sec

anon_max_rate=30000

4.设置客户端连接的端口范围 #passive mode

pasv_min_port=50000

pasv_max_port=60000

服务器环境相关配置(要自己添加的)

connect_timeout=xx #units is seconds 主动模式下 设定时间没有得到响应 中断连接

accept_timeout=xx #also seconds  被动模式

max_clients=0 #最大连接数 如果vsftpd是stadalone启动 可以限制客户端同时在线的数量

max_per_ip=0 # 限制同一个ip最多能有多少个客户端在线

与本地用户相关设置

guest_enable=YES|NO #默认为NO 如果为YES 所有的本地用户被将被设置成guest用户

guest_username=ftp # 当guest_enable=YES生效 指定guest用户名称

匿名用户相关设置

anon_other_write_enable=YES|NO # 是否允许匿名用户有“写”之外的权限,包括删除、修改、重命名的权限

anon_max_rate=0 #匿名用户的传输速率,0 表示不限制

anon_umask=077 #匿名用户上传文件的默认权限

系统安全相关设置

tcp_wrappers=YES |NO # 是否支持 tcp_wrappers

dual_log_enable=YES, vsftpd_log_file=/var/log/vsftpd.log #是否启用双日志,及另一份日志的路径

配置一个/sbin/nologin的用户

家目录在/home/lisen 所属组www 目录权限700

useradd -d /home/lisen -s /sbin/nologin lisen

passwd miller

chown -R www:www lisen/  递归修改lisen目录所有者所属组为www

chmod -R 700 lisen/  递归修改lisen目录所有者和所属组权限为775

有关VSFTPD的基础安全加固的更多相关文章

  1. ruby - 如何使用 Ruby aws/s3 Gem 生成安全 URL 以从 s3 下载文件 - 2

    我正在编写一个小脚本来定位aws存储桶中的特定文件,并创建一个临时验证的url以发送给同事。(理想情况下,这将创建类似于在控制台上右键单击存储桶中的文件并复制链接地址的结果)。我研究过回形针,它似乎不符合这个标准,但我可能只是不知道它的全部功能。我尝试了以下方法:defauthenticated_url(file_name,bucket)AWS::S3::S3Object.url_for(file_name,bucket,:secure=>true,:expires=>20*60)end产生这种类型的结果:...-1.amazonaws.com/file_path/file.zip.A

  2. ruby - 如何安全地删除文件? - 2

    在Ruby中是否有Gem或安全删除文件的方法?我想避免系统上可能不存在的外部程序。“安全删除”指的是覆盖文件内容。 最佳答案 如果您使用的是*nix,一个很好的方法是使用exec/open3/open4调用shred:`shred-fxuz#{filename}`http://www.gnu.org/s/coreutils/manual/html_node/shred-invocation.html检查这个类似的帖子:Writingafileshredderinpythonorruby?

  3. postman接口测试工具-基础使用教程 - 2

    1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,

  4. 软件测试基础 - 2

    Ⅰ软件测试基础一、软件测试基础理论1、软件测试的必要性所有的产品或者服务上线都需要测试2、测试的发展过程3、什么是软件测试找bug,发现缺陷4、测试的定义使用人工或自动的手段来运行或者测试某个系统的过程。目的在于检测它是否满足规定的需求。弄清预期结果和实际结果的差别。5、测试的目的以最小的人力、物力和时间找出软件中潜在的错误和缺陷6、测试的原则28原则:20%的主要功能要重点测(eg:支付宝的支付功能,其他功能都是次要的)80%的错误存在于20%的代码中7、测试标准8、测试的基本要求功能测试性能测试安全性测试兼容性测试易用性测试外观界面测试可靠性测试二、质量模型衡量一个优秀软件的维度①功能性功

  5. ES基础入门 - 2

    ES一、简介1、ElasticStackES技术栈:ElasticSearch:存数据+搜索;QL;Kibana:Web可视化平台,分析。LogStash:日志收集,Log4j:产生日志;log.info(xxx)。。。。使用场景:metrics:指标监控…2、基本概念Index(索引)动词:保存(插入)名词:类似MySQL数据库,给数据Type(类型)已废弃,以前类似MySQL的表现在用索引对数据分类Document(文档)真正要保存的一个JSON数据{name:"tcx"}二、入门实战{"name":"DESKTOP-1TSVGKG","cluster_name":"elasticsear

  6. ruby - 用 YAML.load 解析 json 安全吗? - 2

    我正在使用ruby2.1.0我有一个json文件。例如:test.json{"item":[{"apple":1},{"banana":2}]}用YAML.load加载这个文件安全吗?YAML.load(File.read('test.json'))我正在尝试加载一个json或yaml格式的文件。 最佳答案 YAML可以加载JSONYAML.load('{"something":"test","other":4}')=>{"something"=>"test","other"=>4}JSON将无法加载YAML。JSON.load("

  7. ruby-on-rails - 安全地显示使用回形针 gem 上传的图像 - 2

    默认情况下:回形针gem将所有附件存储在公共(public)目录中。出于安全原因,我不想将附件存储在公共(public)目录中,所以我将它们保存在应用程序根目录的uploads目录中:classPost我没有指定url选项,因为我不希望每个图像附件都有一个url。如果指定了url:那么拥有该url的任何人都可以访问该图像。这是不安全的。在user#show页面中:我想实际显示图像。如果我使用所有回形针默认设置,那么我可以这样做,因为图像将在公共(public)目录中并且图像将具有一个url:Someimage:看来,如果我将图像附件保存在公共(public)目录之外并且不指定url(同

  8. ruby - 使写入文件线程安全 - 2

    我在一个ruby​​文件中有一个函数可以像这样写入一个文件File.open("myfile",'a'){|f|f.puts("#{sometext}")}这个函数在不同的线程中被调用,使得像上面这样的文件写入不是线程安全的。有谁知道如何以最简单的方式使这个文件写入线程安全?更多信息:如果重要的话,我正在使用rspec框架。 最佳答案 您可以通过File#flock给锁File.open("myfile",'a'){|f|f.flock(File::LOCK_EX)f.puts("#{sometext}")}

  9. 【网络】-- 网络基础 - 2

    (本文是网络的宏观的概念铺垫)目录计算机网络背景网络发展认识"协议"网络协议初识协议分层OSI七层模型TCP/IP五层(或四层)模型报头以太网碰撞路由器IP地址和MAC地址IP地址与MAC地址总结IP地址MAC地址计算机网络背景网络发展        是最开始先有的计算机,计算机后来因为多项技术的水平升高,逐渐的计算机变的小型化、高效化。后来因为计算机其本身的计算能力比较的快速:独立模式:计算机之间相互独立。    如:有三个人,每个人做的不同的事物,但是是需要协作的完成。    而这三个人所做的事是需要进行协作的,然而刚开始因为每一台计算机之间都是互相独立的。所以前面的人处理完了就需要将数据

  10. ruby-on-rails - 最灵活的 Rails 密码安全实现 - 2

    关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,describetheproblem以及迄今为止为解决该问题所做的工作。关闭8年前。Improvethisquestion我需要实现具有各种灵活需求的密码安全。这些要求基本上取自Sanspasswordpolicy:Strongpasswordshavethefollowingcharacteristics:Containatleastthreeofthe

随机推荐