技能大赛之FTP服务器搭建

发布于 2021-05-14  380 次阅读


这个文章主要写在CentOS 6.5安装FTP服务器(vsftpd)

在这个系统里面,ftp的名字vsftpd,ftp的服务名字也是vsftpd,比较人性化。
当然,这是后话了,FTP设置巨麻烦,我不弄懂的东西我不会发文章的,总之我现在已经通透了,但是没完全通透.
第一步、挂本地YUM  (好几篇文章了,真不想复制粘贴:传送门)
第二步、安装vsftpd:yum install -y vsftpd    , 安装ftp客户端(方便测试):yum install -y ftp
第三步、设置防火墙,其实这个也讲过很多遍了,但是以后会详细讲解防火墙的详细参数,这里我把规则贴出来:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

或者,直接:/etc/init.d/iptables stop   (不推荐,因为会有危险)

安装完毕后会生成这些东西:
[root@localhost /]# rpm -ql vsftpd
/etc/logrotate.d/vsftpd             //日志文件
/etc/pam.d/vsftpd                     //这里是vsftpd的验证配置文件,Vsftpd是基于PAM进行用户身份验证的
/etc/rc.d/init.d/vsftpd             //服务控制脚本
/etc/vsftpd                                   //生成一个目录,这里放着4个文件,就是下面这4个,前三个是配置文件
/etc/vsftpd/ftpusers                            //可以理解为禁止的用户,在这里的用户禁止以FTP的形式登录服务器
/etc/vsftpd/user_list                                //用户列表
/etc/vsftpd/vsftpd.conf                              //主配置文件
/etc/vsftpd/vsftpd_conf_migrate.sh              //控制脚本
/usr/sbin/vsftpd                       //主程序
/usr/share/doc/vsftpd-2.2.2                 //从这里到最后都是帮助DOC文档
/usr/share/doc/vsftpd-2.2.2/AUDIT
/usr/share/doc/vsftpd-2.2.2/BENCHMARKS
/usr/share/doc/vsftpd-2.2.2/BUGS
/usr/share/doc/vsftpd-2.2.2/COPYING
/usr/share/doc/vsftpd-2.2.2/Changelog
/usr/share/doc/vsftpd-2.2.2/EXAMPLE
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE/README
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE/README.configuration
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE/vsftpd.conf
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE/vsftpd.xinetd
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE_NOINETD
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE_NOINETD/README
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE_NOINETD/README.configuration
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE_NOINETD/vsftpd.conf
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/PER_IP_CONFIG
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/PER_IP_CONFIG/README
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/PER_IP_CONFIG/README.configuration
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/PER_IP_CONFIG/hosts.allow
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/README
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_HOSTS
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_HOSTS/README
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS/README
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS/README.configuration
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS/logins.txt
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS/vsftpd.conf
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS/vsftpd.pam
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS_2
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS_2/README
/usr/share/doc/vsftpd-2.2.2/FAQ
/usr/share/doc/vsftpd-2.2.2/INSTALL
/usr/share/doc/vsftpd-2.2.2/LICENSE
/usr/share/doc/vsftpd-2.2.2/README
/usr/share/doc/vsftpd-2.2.2/README.security
/usr/share/doc/vsftpd-2.2.2/REWARD
/usr/share/doc/vsftpd-2.2.2/SECURITY
/usr/share/doc/vsftpd-2.2.2/SECURITY/DESIGN
/usr/share/doc/vsftpd-2.2.2/SECURITY/IMPLEMENTATION
/usr/share/doc/vsftpd-2.2.2/SECURITY/OVERVIEW
/usr/share/doc/vsftpd-2.2.2/SECURITY/TRUST
/usr/share/doc/vsftpd-2.2.2/SIZE
/usr/share/doc/vsftpd-2.2.2/SPEED
/usr/share/doc/vsftpd-2.2.2/TODO
/usr/share/doc/vsftpd-2.2.2/TUNING
/usr/share/doc/vsftpd-2.2.2/vsftpd.xinetd
/usr/share/man/man5/vsftpd.conf.5.gz
/usr/share/man/man8/vsftpd.8.gz
/var/ftp                       //FTP服务器默认跟目录
/var/ftp/pub             //共享文件夹

命令:[rpm -ql vsftpd]

在讲ftp服务器的时候我们不得不讲一个比较重要的概念:
系统用户,虚拟用户,匿名用户,其实这三个都是系统用户,这不是套娃,
第一个系统用户是运行系统服务的系统用户,比如这次ftp服务的运行用户就是ftp组下的ftp用户,这个ftp,就是一个系统用户。

虚拟用户就是不能登录系统的一种用户,在创建用户的时候加上参数:  -s /usr/sbin/nologin    就可以了
匿名用户是指一个人或程序需要访问我们资源的时候提供一个不属于我们系统的一个账号,但这个账号会映射到我们的系统用户下面,这个用户就是我们ftp组下的ftp,也就是这个服务的主要运行进程的用户,也就意味着如果这个用户的权限过大会有安全隐患,但是VSFTPD,它的全名是:very secure FTP daemon,意为非常安全的FTP守护进程,也就意味着这个软件的安全性能很好,但是设置它也变得很难。

很多命令,很多参数
我先把主配置文件解释一下:


站长一枚,多多指教~