Linux下FTP服务器的安全架设与配置

掌握linux下ftp服务器的安全架设与配置。

实验环境:

装有vsftp的Linux主机一台。

实验原理:

FTP是文件传输协议,功能是实现client与server之间的文件传输。FTP是以TCP包进行传输的。FTP提供了三种用户身份:real user,guest,anonymous。FTP有命令记录与登录文件记录。而且FTP限制和接触了用户的根目录,避免访问服务器的其他文件。

以前的FTP和telnet一样在传输过程中是以明文传输的,所以现在使用的vsftp是一种安全性稍高的一个软件。

Vsftp在安全性方面是针对程序的权限进行设计的。因为在任何服务在linux上工作都会去的一个PID,而PID是拥有者的身份,即在该服务器上是有权限的。那么也就是说限制了PID的权限就相当于进行了系统的加固。

VSftp以一般身份启动,所以权限低,危害少。任何需要具有较高执行权限的vsftp指令均被一个特殊的上层程序所控制,该程序享有的权限很低。另外各种来自客户的指令均被认为不信任,需要特别高的身份确认才可以使用。

Vsftp的具体多项配置在/etc/vsftpd/vsftpd.conf 中,部分功能配置在实验步骤中指出,其余功能参考资料。

实验步骤:

[root@ ~]# cd /etc/vsftpd/
[root@ vsftpd]# cp vsftpd.conf vsftpd.conf.bak           <==备份是个好习惯
修改下列vsftp.conf的值
anonymous_enable=YES           默认允许匿名用户登录
local_enable=YES                      默认允许本地用户登录
write_enable=YES                        默认允许写操作(与selinux有关)
local_umask=022                    本地用户上传文件的权限(如果是077就导致别人看不了这个上传的文件)
情景设计 允许匿名用户上传下载文件
指定上传目录为/var/ftp/pub/incoming,记得匿名用户实际对应的用户名是ftp,因此要修改目录的属主与属组
[root@ ~]# mkdir /var/ftp/pub/incoming
[root@ ~]# chown -R ftp.ftp /var/ftp/pub/incoming/
[root@ ~]# ls -ld /var/ftp/pub/incoming/
drwxr-xr-x 2 ftp ftp 4096 Jan  6 15:19 /var/ftp/pub/incoming/
[root@ ~]#
修改vsftpd.conf文件内容如下
 anon_upload_enable=YES
 #anon_mkdir_write_enable=YES
这个时候如果我们重启服务后FTP上去进行调试会发现实验并没有成功
一般情况是因为SElinux阻止了这一行为。
查看SElinux我们发现
If the ftp daemon should be allowed to write to this directory you need to turn
on the allow_ftpd_anon_write boolean and change the file context of the public
directory to public_content_rw_t. Read the ftpd_selinux man page for further
information: "setsebool -P allow_ftpd_anon_write=1; chcon -t public_content_rw_t
"
然后运行
setsebool -P allow_ftpd_anon_write=1
chcon -t public_content_rw_t incoming/
这样就完成了配置。其他的设置在这里不进行详细说明,同学课下自己查资料。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/39cb2796681c984efbdd466384908252.html