静看光阴荏苒
不管不顾不问不说也不念

Debian10:SFTP/Pure-FTPd/VSFTPD

前两天有个环境竟然需要用到FTP这种老古董。。

最开始用的SFTP,但由于是加密协议,传输速度略慢,没办法还是去部署了一下FTP。。

一开始用的vsftpd,后来发现这货想支持虚拟用户好麻烦就换成了pure-ftpd,整体上来说pure-ftpd还是要比vpsftpd好用很多,这里记录一下这两款FTP软件的部署过程以及Linux自带的SFTP配置。

首先是SFTP,先创建一个不允许登录shell的用户,同时也不创建这个用户的主目录:

useradd -M -s /sbin/nologin -U imlala

更改这个用户的密码:

passwd imlala

创建用户FTP目录:

mkdir -p /data/ftp/imlala

上级目录的权限给root:

chown -R root:root /data/ftp

用户FTP目录的权限给对应的用户:

chown -R imlala:imlala /data/ftp/imlala

然后编辑SSH配置文件

nano /etc/ssh/sshd_config

加入这个用户的chroot配置:

Match User imlala       
   ChrootDirectory /data/ftp
   ForceCommand internal-sftp
   X11Forwarding no
   AllowTcpForwarding no

重启SSHD完成配置:

systemctl restart sshd

接下来是pure-ftpd的安装和配置:

apt -y update
apt -y install pure-ftpd

使用systemd管理:

systemctl enable pure-ftpd
systemctl start pure-ftpd

关闭PAM验证/关闭匿名用户登录:

echo "no" > /etc/pure-ftpd/conf/PAMAuthentication
echo "yes" > /etc/pure-ftpd/conf/NoAnonymous

创建一个不允许登录shell的用户:

useradd -m -s /sbin/nologin -U pure-ftpd

创建FTP用户目录并给予正确的权限:

mkdir -p /home/pure-ftpd/imlala
chown -R pure-ftpd:pure-ftpd /home/pure-ftpd/imlala

创建虚拟FTP用户:

pure-pw useradd imlala -u pure-ftpd -d /home/pure-ftpd/imlala

更新PureDB数据库信息:

pure-pw mkdb

Debian10的pure-ftpd需要做一下软连接才能使用pure-ftpd自带的PureDB:

cd /etc/pure-ftpd/auth
ln -s ../conf/PureDB 60puredb

重启pure-ftpd完成配置:

systemctl restart pure-ftpd

最后写一下关于vsftpd的配置,其实我个人不推荐用这个,既然可以用更方便/强大/安全的pure-ftpd,那就不要去用不如它的东西了。。

安装vsftpd:

apt -y update
apt -y install vsftpd

使用systemd管理:

systemctl start vsftpd
systemctl enable vsftpd

创建FTP用户这块有两种方式,第一种使用nologin:

useradd -m -s /sbin/nologin -U imlala

第二种使用false:

useradd -m -s /bin/false -U imlala2

修改此用户的密码:

passwd imlala
passwd imlala2

如果使用nologin,那么需要编辑vsftpd的pam文件:

nano /etc/pam.d/vsftpd

注释掉如下这行,允许没有有效shell的用户登录FTP

#auth   required        pam_shells.so

如果使用flase,那么不需要编辑vsftpd的pam,而是把/bin/false加入到/etc/shells,让其成为一个有效的shell:

echo "/bin/false" >> /etc/shells

备份配置文件:

cp /etc/vsftpd.conf /etc/vsftpd.conf.bak

编辑配置文件:

nano /etc/vsftpd.conf

禁止匿名用户登录/启用文件上传

anonymous_enable=NO
write_enable=YES

将用户锁定在自己的主目录内,不允许浏览上级目录:

chroot_local_user=YES
allow_writeable_chroot=YES

最后在文件末尾加入下面的配置,启用允许登录FTP的用户列表

userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO

将之前新建的用户加入到允许登录FTP的列表中,完成配置:

echo "imlala" >> /etc/vsftpd.userlist
echo "imlala2" >> /etc/vsftpd.userlist

赞(1)
未经允许不得转载:荒岛 » Debian10:SFTP/Pure-FTPd/VSFTPD
分享到: 更多 (0)

评论 1

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

分享创造快乐

广告合作资源投稿