FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。使用起来还是挺方便的,偶尔可以用来在同一局域网的两台主机互传文件。下面介绍在Linux上关于ftp的搭建步骤:
在Linux上搭建ftp,需要下载vstfpd的软件包,为了方便直接使用yum命令进行安装。
yum install vsftpd
进入iptables里添加下面两条指令:
vi /etc/sysconfig/iptables
-A INPUT -s 127.0.0.1 NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A INPUT -s 127.0.0.1 -p tcp --dport 21 -j ACCEPT
如果/etc/sysconfig/路径下没有iptables这个文件,可以使用如下命令:
systemctl stop firewalld 关闭防火墙
yum install iptables-services 安装 iptables 服务
systemctl enable iptables 设置 iptables 服务开机启动
systemctl start iptables 启动iptables
service iptables save 保存iptables配置
如果觉得麻烦,也可以直接把防火墙关闭
systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld
adduser -d /home/ftp test -s /sbin/nologin 用户不可以登录
useradd -d /home/ftp test test 用户具有/home/ftp目录
adduser test -d /home/ftp 在home目录下生成/home/ftp目录,跟linux创建的其它用户一样
vi /etc/vsftpd/vsftpd.conf
设置如下(将创建的用户名加入到/etc/vsftpd/chroot_list中,用户只可以访问/home/ftp目录)
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
idle_session_timeout=600 //设置空闲的用户会话中断时间,默认是10分钟
设置如下(将用户加入/etc/vsftpd/user_list,不加入/etc/vsftpd/ftpusers,用户可以访问)
userlist_deny=NO
userlist_enable=YES
userlist_file=/etc/vsftpd/user_list
解释一下,如果 userlist_deny=NO:只允许userlist_file文件中的用户可访问ftp;如果 userlist_deny=YES:userlist_file文件中列举的用户不能通过ftp访问系统。userlist_enable是该功能的开关。
所以需要把用户加入到/etc/vsftpd/user_list文件中,每个用户一行。
打开vi /etc/vsftpd/user_list并增加一行:
test
新建文件vi /etc/vsftpd/chroot_list并增加一行
ftpUser
service vsftpd start
注:从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。
要修复这个错误,可以用命令chmod a-w /home/ftp去除用户主目录的写权限,注意把目录替换成你自己的。或者可以在vsftpd的配置文件中增加:
allow_writeable_chroot=YES