vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。
vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用。
————摘自百度百科
wget https://security.appspot.com/downloads/vsftpd-3.0.3.tar.gz //下载源码包
tar -zxvf vsftpd-3.0.3.tar.gz //解压
yum install libcap-devel //安装依赖
yum install pam
yum install pam-devel
yum install db4-utils
yum install gcc
cd vsftpd-3.0.3
make && make install //编译安装
vsftpd -v //查看是否安装成功
cp vsftpd.conf /etc/vsftpd.conf 复制配置文件到/etc
cp RedHat/vsftpd.pam /etc/pam.d/vsftpd
主程序文件:/usr/local/sbin/vsftpd
主配置文件:/etc/vsfptd.conf
PAM认证文件:/etc/pam.d/vsftpd
匿名用户主目录:/var/ftp
匿名用户的下载目录:/var/ftp/pub
如果pam.d文件夹不存在则手动创建,如果系统为x86-64还需要修改/etc/pam.d/vsftpd,将/lib修改为/lib64
参考文章
默认情况下vsftpd一旦启动,就会一直监听窗口。占用资源。像FTP这种访问压力较小的服务,使用xinetd更加合适。没有xinetd的同学可以通过一下命令安装
yum -y install xinetd*
打开并修改配置文件listen=YES修改为listen=NO,不再监听端口
vim /etc/vsftpd.conf
listen=NO
接下来再/etc/xinetd.d文件夹下建立文件vsftpd,添加内容如下:
vim /etc/xinetd.d/vsftpd
service ftp
{
socket_type = stream
wait = no
user = root
server = /usr/local/sbin/vsftpd
# server_args =
# log_on_success += DURATION USERID
# log_on_failure += USERID
nice = 10
disable = no
}
:wq
/usr/local/sbin/vsftpd stop //结束vsftp进程
service xinetd restart //重启xinetd,使配置生效
netstat -tulnp | grep 21 //可以看到xinted已经接手了这个端口
tcp6 0 0 :::21 :::* LISTEN 12983/xinetd
通过修改配置文件设置匿名用户登录和本地用户登录
vim /etc/vsftpd.conf
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=YES //允许匿名用户登录
no_anon_password=YES //添加这句话使,匿名用户跳过密码验证
# Uncomment this to allow local users to log in.
#local_enable=YES //去掉#允许本地用户登录
# Uncomment this to enable any form of FTP write command.
#write_enable=YES //去掉#允许本地用户上载
通过修改配置文件限制用户在本地目录中
vim /etc/vsftpd.conf
#chroot_local_user=YES //去掉#限制用户在本地目录
#chroot_list_enable=YES //去掉#通过一个配置文件指定哪些用户受到那些限制
#chroot_list_file=/etc/vsftpd.chroot_list //去掉#设置将配置文件指定为/etc/vsftpd.chroot_list
以上操作后需要重启服务使其生效