vsftpd 是一个对 UNIX 系统遵循 GPL 协议的 FTP 服务器,包括 Linux。它安全而且速度非常快。
本教程将告诉你如何在 Linux 系统中搭建自己的 FTP 服务器。
1. 安装 vsftpd。
sudo apt-get install vsftpd
2. 替换配置文件。
用文本编辑器打开 vsftpd.conf 配置文件,一般在 /etc 目录下。
[sudo joe /etc/vsftpd.conf
可以做如下修改:
把 anonymous_enable=YES
改成
anonymous_enable=NO
这将禁止用户匿名访问你的 FTP 服务器,除非你有非常好的理由允许匿名访问。而且在做网络安全方面,我建议不允许匿名访问,尤其是你的 FTP 服务器位于 Internet 上时。
当然,设置了禁止匿名访问后,你需要允许本地用户登录,修改如下:
把#local_enable=YES
改成
local_enable=YES
3. 添加一个 “fake” shell 脚本。
编辑 /etc/shells 文件,并添加一个不存在的 shell 名称如 /bin/false。这个假 shell 将会限制 FTP 用户访问系统。
sudo joe /etc/shells
# /etc/shells: valid login shells /bin/sh /bin/bash /bin/false
/bin/false 是我们添加的一个不存在的 shell。就像红帽子 Linux 系统上的一个特殊的设备 /dev/null 一样。
4. 创建一个 FTP 用户账户。
在 Linux 系统上的不存在的 shell 上创建严格的 FTP 用户账户是非常重要的。在这种方式下,如果因为任何原因有人能成功脱离 FTP 的 chroot 环境,他都不会有可能去执行任何用户任务因为这个 shell 是不存在的。首先,创建新的用户。
这个必须和没有限制访问的正常的用户账户分开,因为 chroot 环境工作的方式。Chroot 是得它从用户的角度出发,似乎你已经将它们防止在文件系统的顶层一样。
使用下面的命令在 /etc/passwd 文件中创建用户,在你每添加一个允许访问你的 FTP 服务器的新的用户时都必须执行这一步。
sudo mkdir -p /home/ftp/ftpuser sudo useradd ftpuser -d /home/ftp/ftpuser/ -s /bin/false sudo passwd ftpuser
- mkdir 命令将在 /home 目录下创建 ftp/ftpuser 目录来处理所有的 FTP 用户。
- useradd 命令将在你的 Linux 服务器上添加一个名为 ftpuser 新的用户。
- 最后,passwd 命令将设置用户 ftpuser 的密码。
一旦你完成了这些,用下面的命令来重启 vsftpd 服务:
sudo /etc/init.d/vsftpd restart
5. 在每个用户的基础上改写用户手册中指定的配置项(可选)。
如果你想在每个用户的基础上改变 ftp 服务器的行为习惯,你应用知道 vsftpd 有一个强大的选项,允许你这么做。
如果你设置了 user_config_dir 为 /etc/vsftpd_user_conf 并且以 “chris” 用户登录,那么 vsftpd 在会话持续的时间内将会在 /etc/vsftpd_user_conf/chris 文件中应用这些设置,文件的格式详见用户手册!
请注意,并非是所有的设置都会对每个用户生效,例如,许多设置只对之前的已经启动的用户会话生效。这些不会影响每个用户的任何行为的设置,包括 listen_address, banner_file, max_per_ip, max_clients, xferlog_file 等。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!