Linux-vsftp

更多参考:

https://blog.csdn.net/weixin_42193489/article/details/94181973?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control

搭建

yum install vsftpd -y

默认配置文件位置: /etc/vsftpd/vsftpd.conf

sed -i 's/^anonymous_enable=.*/anonymous_enable=NO/g' /etc/vsftpd/vsftpd.conf
echo "userlist_deny=NO" >> /etc/vsftpd/vsftpd.conf 
useradd -d /home/ftpuser -s /sbin/nologin ftpuser
echo "123456" |passwd --stdin ftpuser
echo "ftpuser" >> /etc/vsftpd/user_list 
sed -i 's/^#chroot_local_user=YES/chroot_local_user=YES/g' /etc/vsftpd/vsftpd.conf
echo "allow_writeable_chroot=YES" >> /etc/vsftpd/vsftpd.conf 
echo "pasv_min_port=10000" >> /etc/vsftpd/vsftpd.conf 
echo "pasv_max_port=10010" >> /etc/vsftpd/vsftpd.conf 
systemctl restart vsftpd
firewall-cmd --add-port=10000-10010/tcp add-port=21/tcp --permanent
systemctl restart firewalld

分析:

  1. 关闭匿名登陆

  2. 只有 user_list 文件内的用户可以登陆

  3. 添加 ftp 用户

  4. ftpuser 这个用户添加一个密码

  5. user_list 文件里面添加上 ftpuser 这个用户

  6. ftpuser 用户禁锢在自己的家目录

  7. 允许FTP用户拥有写的权限

  8. 开启被动端口范围 10000~10010

  9. 重新启动vsftpd

操作: 默认只能登录到 ftpuser 用户的家目录

[root@localhost vsftpd]# ftp -n
ftp> open 192.168.1.41 21
Connected to 192.168.1.41 (192.168.1.41).
220 (vsFTPd 3.0.2)
ftp> user ftpuser 123456
331 Please specify the password.
230 Login successful.
ftp> ls
227 Entering Passive Mode (192,168,1,41,138,128).
150 Here comes the directory listing.
-rw-r--r--    1 0        0               0 Jan 01 08:25 a.txt
226 Directory send OK.
ftp> bye
221 Goodbye.
[root@localhost vsftpd]#

只能用FTP登陆,不允许Telnet远程登陆

usermod -s /sbin/nologin ftpuser     (限制用户ftpuser只可以ftp)
usermod -s /sbin/bash ftpuser        (如果需要,解除限制)
usermod -d /home/www/ ftpuser        (更改用户ftpuser的主目录为www)  chown ftpuser:ftpuser /home/www

Last updated