http://www.myhack58.com/Article/48/66/2015/57586.htm
http://blog.csdn.net/huangbiao86/article/details/6641952
http://www.flybi.net/article/37
http://www.aiezu.com/system/linux/linux_vsftpd_install_configure.html
Debian下使用apt-get命令安装vsftp
#apt-get install vsftpd -y
1.先检查一下nologin的位置,通常是/usr/sbin/nologin或者/sbin/nologin。
2.接着创建系统账户
#useradd -d /home/www/ftproot -s /usr/sbin/nologin ftpuser
/home/www/ftproot 为该系统用户家(home)目录,ftpuser为用户名
为该帐户设置密码:
#passwd ftpuser
输入两次相同密码即可
3.然后修改指定目录的权限
#chown -R ftpuser.ftpuser /home/www/ftproot
chown -R命令改变文档/目录所有者。详解
4.配置vsftp
编辑vsftp配置文件,命令如下:
#vi /etc/vsftpd.conf
将配置文件中”anonymous_enable=YES “改为 “anonymous_enable=NO”
删除如下配置前的注释符号(#):
local_enable=YES
write_enable=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
:wq 保存退出
接着创建vsftpd.chroot_list文件,并将ftp用户名添加进去
#touch /etc/vsftpd.chroot_list && echo ftpuser > /etc/vsftpd.chroot_list
5.修改shell配置
vi编辑/etc/shells,如果该文件里没有/usr/sbin/nologin或者/sbin/nologin(具体看当前系统配置)则追加进去
6.重启vsftp服务并测试登录
#service vsftpd restart
然后用帐号ftpuser测试下是否可以登陆ftp。目录是/home/www/ftproot
前面配置了用户访问权限管理中的使用nologin禁止FTP帐户登录Linux服务器,现在再配置些更安全的。
1.限制恶意占有带宽的用户
在vsftp中,匿名用户和本地用户的速度限制是分开的。前者是anon_max_rate,后者是local_max_rate。 它们的单位都是byte(字节)。
如果让匿名用户和本地的用户都以最高300KB的速度下载,那么这个数字应该是1024×300=307200。在vsftpd.conf文件末尾中加入下面的两行即可:
anon_max_rate=307200
local_max_rate=307200
然后重启vsftpd服务即可。
另外,还可以限制FTP的最大连接数和每个IP的最大连接数。这两个参数分别是Max_clients和Max_per_ip。和上面一样,也只需要在vsftpd.conf文件末尾添加参数即可,如下设成了最大连接数100,每个IP的最大连接数5个:
max_clients=100
max_per_ip=5
2.防止FTP密码被恶意嗅探
由于vsftpd发送的数据是以明文方式传输,尤其是密码容易被恶意的嗅探(Sniffering)到,所以通常需要采用SSL(Secure Sockets Layer,安全套接字层)技术,使得vsftpd支持SSL加密传输,以此来抵御恶意嗅探攻击。
使用SSL技术,依赖于另外一个软件:OpenSSL,它是一个可以自由使用的SSL实现,首先需要安装这个软件。用户可以从网站 http://www.openssl.org/source/上下载Linux下OpenSSL的稳定版本,编译安装,然后执行命令生成密钥。
#wget http://www.openssl.org/source/openssl-1.0.1f.tar.gz
#tar -xvzf openssl-1.0.1f.tar.gz
#cd openssl-1.0.1f
#./config
#make
#make install
接下来开始生成密钥
1.检查/etc/ssl/private 目录是否存在,不存在就创建
mkdir -p /etc/ssl/private
chmod 700 /etc/ssl/private
2.执行命令生成密钥
#openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
3.修改vsftpd配置文件
#vi /etc/vsftpd.conf
在末尾增加如下代码
然后重启vsftp
#service vsftpd restart
打开FTP工具(我用的是FlashFXP),连接类型选择“FTP使用公开SSL(验证TLS)” 如下图
连接,会弹出是否接受证书,选择“接受并保存”之后我们即可登入远程的ftp服务器。
连接成功!
若使用不支持SSL的客户端工具访问时有可能会出现:530 Non-anonymous sessions must use encryption.的错误提示。所以提醒用户尽量选择flashfxp或CoreFtp这类的多功能客户端。
到这里为止,采用SSL机制保护下的vsftpd就算配置完成了。用户使用FTP登录和上传下载数据的过程都将是加密传输的,其中AES256-SHA是默认的加密方式,用户可以修改“ssl_ciphers=xxx”的方式来选择想要的加密方式。
http://blog.chinaunix.net/uid-22141042-id-1789602.html