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 等。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

点赞(75)

评论列表共有 0 条评论

立即
投稿
返回
顶部