CentOS7环境配置FTP Server
上次解决了CentOS没法联网的问题,现在可以直接安装vsftpd这款FTP Server软件了,直接输入下方命令一键安装:
yum install -y vsftpd
如果已经安装了vsftpd,可以使用下方的命令查询是否安装(查询版本):
vsftpd -version
安装成功后,新建一个FTP目录:
mkdir -p /data/KodServer/data/User/tomas/home
ftpname为你为该ftp创建的用户名,/data/KodServer/data/User/tomas/home 为登录进去后的位置(我创建的用户名是“kurtx”):
useradd -d /data/KodServer/data/User/tomas/home -s /bin/bash ftpname
为我刚刚创建kurt用户创建一个密码(用cat etc/passwd可以查看当前系统用户):
passwd kurtx
防火墙添加FTP服务:
firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --reload
配置只能访问自身目录(/data/KodServer/data/User/tomas/home),不能访问其他路径,修改 /etc/vsftpd.conf 文件
cd /etc/vsftpd/
vim vsftpd.conf
#去掉前面的注释
chroot_local_user=YES
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list#文件末尾添加
allow_writeable_chroot=YES
保存(按下ESC后输入 :wq 后回车),重启vsftpd(命令为:service vsftpd restart 或 /etc/init.d/vsftpd restart)
再设置开机自启:
systemctl enable vsftpd.service
启动vsftpd服务:
systemctl start vsftpd.service
使用 ip add 的命令查询本地IP:
再使用FTP工具登陆(我用的是FLASHFXP):
成功登陆FTP。本地测试我就又开启了root帐号:
#cd /etc/vsftpd
#vi ftpusers
修改user_list文件,注释掉root,保存:
#vi user_list
注释掉root,然后配置防火墙:(注意区分大小写的)
#iptables -I INPUT -p tcp --dport 21 -j ACCEPT
最后还的配置下selinux:
getsebool -a | grepftp
setsebool -P ftpd_full_access on
禁止ftp用户通过22端口登录ftp服务器:
由于需要限制ftp用户在自己的目录,在21端口下没有问题,但当ftp用户用sftp登录时,还是可以访问上级目录,于是禁止ftp用户ssh登录,切断22端口的通信。
首先,执行如下命令,找到nologin的shell:
vim /etc/shells
可以看到禁止登录的shell文件为/usr/sbin/nologin,然后执行如下命令:
usermod -s /usr/sbin/nologin kurtx
如果要恢复kurtx的ssh登录,执行如下命令:
usermod -s /bin/bash tomas
如果看不到文件列表,关闭 SELinux:
解决方法:关闭SELinux
查看SELinux状态:/usr/sbin/sestatus -v #如果SELinux status参数为enabled即为开启状态
方法一:临时关闭(不用重启机器)
setenforce 0 #设置SELinux 成为permissive模式
#setenforce 1 设置SELinux 成为enforcing模式方法二:修改配置文件需要重启机器
修改/etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled
重启机器即可