保捱科技网
您的当前位置:首页打造安全可控的FTP服务器

打造安全可控的FTP服务器

来源:保捱科技网
责任编辑:赵志远 投稿信箱:netadmin@365master.com

信息安全Security打造安全可控的FTP服务器■ 河北科技师范学院 赵学作

FTP是用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式。它属于网络传输协议的应用层。Centos7是我们常用的服务器系统之一,我们也经常需要在这个系统中安装并配置安全可控的FTP服务器。--add-service=ftp# firewall-cmd --reload编者按: 尽管FTP服务器在传输文件时非常方便,但其安全性是非常脆弱的,因此打造一个安全可控的FTP服务器对单位网络安全是非常有必要的。的 umask 值dirmessage_ enable=YES ### 当用户首次进入一个新目录时显示一个消息xferlog_enable=YES ### 用于记录上传、下载细配置 FTP 服务器1.修改配置文件。配置前先备份一下原节的日志文件connect_from_port_20=YES ### 使用端口 20 (ftp-data)用于 PORT 风格的连接xferlog_std_format=YES ### 使用标准的日志格式listen=NO 安装FTP服务器1.安装vsftpd服务器命令。# yum install vsftpd2.启动vsftpd并设置在下次启动时自动启用。# systemctl start vsftpd# systemctl enable vsftpd3.设置防火墙,允许外部系统用通过21端口访问 FTP 服务。# firewall-cmd --zone=public --permanent --add-port=21/tcp# firewall-cmd --zone=public --permanent 始配置文件 /etc/vsftpd/vsftpd.conf# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.orig然后修改这个文件,并将下面的选项设置相关的值:# vi /etc/vsftpd/vsftpd.confanonymous_enable=NO ### 禁用匿名登录write_enable=YES ### 允许对文件系统做改动的 FTP 命令local_enable=YES ### 允许本地用户登录local_umask=022 ### 本地用户创建文件所用### 不要让 vsftpd 运行在模式listen_ipv6=YES ### vsftpd 将监听 IPv6 而不是 IPv4pam_service_name=vsftpd ### vsftpd 使用的 PAM 服务名userlist_enable=YES ### vsftpd 支持载入用户列表tcp_wrappers=YES www.365master.com 2019.07125

Security信息安全责任编辑:赵志远 投稿信箱:netadmin@365master.com

### 使用 tcp wrapperschroot_local_user=YES ###禁止切换根目录chroot_list_enable=YES# (default follows)chroot_list_file=/etc/vsftpd/chroot_list ###如果没有此文件则创建此文件,不需要添加内容allow_writeable_chroot=YES local_root=/home/ftp/pub ###限定主目录2.创建FTP用户。# useradd qhdedu3.为用户qhdedu设置密码qhd123# echo \"qhd123\" | passwd qhdedu --stdin4.这个新创建的用户qhdedu只能通过FTP访问。# usermod -s /sbin/nologin qhdedu5.为用户分配主目录。创建目录:# mkdir -p /home/ftp/qhdedu创建欢迎文件echo \"欢迎登录FTP\" > /home/ftp/qhdedu/.message图1 提示登录成功

userlist_enable=YES #### vsftpd 将从 userlist_file 给出的文件中载入用户名列表userlist_deny=NOuserlist_file=/etc/vsftpd/userlist #### 存储用户名的文件,一行一个用户名7.将FTP服务器开启被动模式。# vi /etc/vsftpd/vsftpd.conf #修改配置文件,在末尾添加以下内容:pasv_enable=YESpasv_min_port=30000pasv_max_port=310008.保存后重启vsftpd。# service vsftpd restart或systemctl start vsftpd我们可以用systemctl status vsftpd可查看当前状态。设置该目录的访问权限# chmod a-w /home/ftp/qhdedu && chmod 777 -R /home/ftp/qhdedu设置为用户主目录# usermod -d /home/ftp/qhdedu qhdedu6.基于用户列表文件 /etc/vsftpd/userlist来配置FTP来允许/拒绝用户的访问。默认情况下,如果设置了userlist_enable=YES,当userlist_deny选项设置为YES的时候,userlist_file=/etc/vsftpd/userlist中列出的用户被拒绝登录。如果配置为 userlist_deny=NO,意味着只有在 userlist_file=/etc/vsftpd/userlist显式指定的用户才允许登录。# vi /etc/vsftpd/vsftpd.conf#### vsftpd 支持载入用户列表的的配置测试服务器1.用qhdedu用户身份登录。ftp://192.168.1.18输入用户名:qhdedu输入密码:qhd123会显示登录成功,并显示1262019.07 www.365master.com

责任编辑:赵志远 投稿信箱:netadmin@365master.com

信息安全Security欢迎内容。如图1所示。2.用FTP匿名登录会提示失败。如图2所示。pub/ftpchmod 777 /home/ftp/pub/ftp也就是说,要在anon_控制匿名账号可以登录、上传及下载vsftpd.conf文件默认支持匿名登录,修改vsftpd.conf可更改登录方式。anonymous_enable=YES # YES为匿名可以登录 NO为匿名不可以登录write_enable=YESanon_upload_enable=YESanon_mkdir_write_enable=YESanon_other_write_enable=YESanon_other_write_enable=YESanon_world_readable_only=NOanon_root=/home/ftp/pub配置完再给相关目录赋权: # chown root:ftp /home/ftp/pub# chmod 755 /home/ftp/pub 图2 提示登录失败

root=/home/ftp/pub中的目录/home/ftp/pub建立一个子目录(即两个目录不能是同一目录)。如果SELinux是启动状态,还要放图3 出现错误提示

宽SELinux的控制权限,即更改SELinux为Permissive模式:# vi /etc/selinux/config将文件中SELINUX =enforcing一句改成 图4登录成功

SELINUX=permissive重启动后再getenforce时应该显示permissive。当然也可用setenforce 0直接暂时关闭SELinux,但不推荐此方法。 这时再测试匿名登录:ftp://192.168.1.18ftp密码回车(密码为空)cd ftp看到可以登录成功,并且可以上传文件(如图4所示):put E:\\a.txt #将E:\\a.txt这个文件上传至/home/ftp/pub/ftp。这句非常关键,也决定着是否能登录,权限必须为755,而不能是777,如果是777,则登录时出现错误提示:500 OOPS: vsftpd: refusing to run with writable root inside chroot ()如图3所示。如果想给匿名账号有写入权限(上传权限),可以建立一个子目录,并赋于权限,如:mkdir -p /home/ftp/www.365master.com 2019.07127

因篇幅问题不能全部显示,请点此查看更多更全内容