配置 SELinux
设置以下 SELinux 布尔值以禁用 FTP 用户的 SELinux MAC(强制 Linux 控制)。
这是必要的,因为 /var/www/html 目录的 SELinux 文件上下文是 httpd_sys_content_t 。
因此,FTP 用户可能会面临权限问题。
# setsebool -P ftpd_full_access 1
on
it
road
.com
配置 Linux 防火墙:
在 Linux 防火墙中允许 FTP 服务端口。
# firewall-cmd --permanent --add-service=ftp success # firewall-cmd --reload success
创建 Chroot FTP 目录:
为用户创建 chroot FTP 目录。
# mkdir /var/www/html/user{1..2}
设置 chroot jail 目录的所有权。
# chown -R user1:apache /var/www/html/user1 # chown -R user2:apache /var/www/html/user2
在每个目录中创建一个空的测试文件。
# touch /var/www/html/user1/user1_files # touch /var/www/html/user2/user2_files
现在可以使用user1 和 user2 用户通过 ftp登录到服务器进行测试。检查是否可以访问测试文件,同时是否被限制在/var/www/html/user1,2中。
Linux 如何限制ftp用户只能访问他们的主目录或者一个指定的目录?(配置 chroot jail 到他们的主目录)
下面的教程,我们将使用VSFTPD进行配置说明。
如果还没有安装VSFTPD 软件,则先安装:
# dnf install -y vsftpd
重启 FTP 服务:
重启 FTP 服务。
# systemctl enable --now vsftpd.service
检查 FTP 服务的状态。
# systemctl status vsftpd
为 FTP 服务创建自签名 SSL 证书:
为我们的 FTP 服务器创建一个自签名 SSL 证书。
这是必须的,否则我们将无法以 FTP 用户身份登录。
执行以下 openssl 命令来生成自签名 SSL 证书和私钥。
# openssl req -x509 -nodes -keyout /etc/vsftpd/vsftpd.key -out /etc/vsftpd/vsftpd.pem -days 365 -newkey rsa:2048
配置 VSFTPD 服务:
在 vsftpd user_list 文件中添加用户。
# vi /etc/vsftpd/user_list
这里使用 user1 和 user2两个用户
# vsftpd userlist # If userlist_deny=NO, only allow users in this file # If userlist_deny=YES (default), never allow users in this file, and # do not even prompt for a password. # Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers # for users that are denied. root bin daemon adm lp sync shutdown halt mail news uucp operator games nobody user1 user2
备份 vsftpd.conf 文件,然后在 vim 文本编辑器中编辑它。
# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.org # vi /etc/vsftpd/vsftpd.conf
在此文件中找到并设置以下指令。
这些设置与 chroot FTP 和 SSL 配置有关。
userlist_enable=YES userlist_deny=NO ssl_enable=YES ssl_sslv2=NO ssl_sslv3=NO ssl_tlsv1_2=YES rsa_cert_file=/etc/vsftpd/vsftpd.pem rsa_private_key_file=/etc/vsftpd/vsftpd.key allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES require_ssl_reuse=NO ssl_ciphers=HIGH pasv_min_port=30000 pasv_max_port=31000 debug_ssl=YES chroot_local_user=YES local_root=/var/www/html/$USER user_sub_token=$USER allow_writeable_chroot=YES
日期:2020-09-17 00:12:27 来源:oir作者:oir