V

vsftpd源码编译安装

椰子ya Linux 2020-08-08

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 

以上操作后需要重启服务使其生效

PREV
H3C链路聚合
NEXT
实验记录CentOS8 安装NFS服务器