Linux下配置FTP服务器三之一(配置一个正常的ftp服务器有多难?)
FTP服务器配置感觉有三点难关
1、允许不允许用户跳出指定主目录
2、修改ftp默认端口
3、分配不同的权限给虚拟用户
4、本地用户和ftp用户同时在线。
问题一个个说明吧
第一,搭建ftp服务器,简单,安装vsftp就行,开启就是默认的被动模式。不是的话可以登录后ftp使用passive进行修改。配置文件在/etc/vsftp目录,主文件是vsftp.conf,其他需要注意的是chroot_list ftpusers user_list这三个文件。这个是第一个问题的关键。
1.yum安装ftp:
[[email protected] home]#yum -y install vsftpd
2.关闭防火墙:
[[email protected] home]# setenforce 0
[[email protected] home]# systemctl stop firewalld
3.配置ftp配置文件:
[[email protected] home]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO #禁止匿名访问
chroot_local_user=YES #限制所有用户都在家目录
chroot_list_enable=YES #是否将系统用户限止在自己的home目录下
chroot_list_file=/etc/vsftpd/chroot_list 解释下:这个视情况而定,但要注意的是,如果发生权限问题,先确定主目录没有写权限,然后在目录里创建一个属于你ftp用户的文件夹,权限高点。然后去看一下,selinux里面的配置,修改下就可以了。
上面的四个文件的关系是这样的
userlist_enable和userlist_deny两个选项联合起来针对的是:本地全体用户(除去ftpusers中的用户)和出现在user_list文件中的用户以及不在在user_list文件中的用户这三类用户集合进行的设置。
当且仅当userlist_enable=YES时:userlist_deny项的配置才有效,user_list文件才会被使用;当其为NO时,无论userlist_deny项为何值都是无效的,本地全体用户(除去ftpusers中的用户)都可以登入FTP
当userlist_enable=YES时,userlist_deny=YES时:user_list是一个黑名单,即:所有出现在名单中的用户都会被拒绝登入;
当userlist_enable=YES时,userlist_deny=NO时:user_list是一个白名单,即:只有出现在名单中的用户才会被准许登入(user_list之外的用户都被拒绝登入);另外需要特别提醒的是:使用白名单后,匿名用户将无法登入!除非显式在user_list中加入一行:anonymous。总而言之,别怕说的复杂,多试试错就知道了。
4.添加ftp用户
[[email protected] home]# useradd -s /sbin/nologin -d /home/ftp ftp
//-s /sbin/nologin 这个账户只用来登录ftp,不允许登录系统。-d /home/ftp,指明本地账户主目录路径。这个主目录路径Linux下是默认都在这里的,但也可以修改啊,关系不大。
[[email protected] home]# passwd ftp //修改本地用户的密码。
5.重启vsftpd:
[[email protected] home]# systemctl restart vsftpd //centos 7以后重启服务的方式
6.这就是最简单的默认的ftp配置。很简单,复杂的是后面。接下来修改ftp服务器的额默认端口。