基于本地用户的vsftpd搭建

时间:2022-11-18 22:10:55

要求:

   一、禁止匿名账号和系统账号登录FTP服务器

   二、普通账号被禁锢在家目录

   三、开启指定用户能切换到其他目录

   四、设置系统登录日志记录

1、安装

#yum install vsftpd lftp -y#rpm -ql vsftpd
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/rc.d/init.d/vsftpd
/etc/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf
/etc/vsftpd/vsftpd_conf_migrate.sh
/usr/sbin/vsftpd
/usr/share/doc/vsftpd-2.2.2
/usr/share/doc/vsftpd-2.2.2/AUDIT
/usr/share/doc/vsftpd-2.2.2/BENCHMARKS
/usr/share/doc/vsftpd-2.2.2/BUGS
/usr/share/doc/vsftpd-2.2.2/COPYING
/usr/share/doc/vsftpd-2.2.2/Changelog
/usr/share/doc/vsftpd-2.2.2/EXAMPLE
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE/README
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE/README.configuration
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE/vsftpd.conf
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE/vsftpd.xinetd
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE_NOINETD
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE_NOINETD/README
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE_NOINETD/README.configuration
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/INTERNET_SITE_NOINETD/vsftpd.conf
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/PER_IP_CONFIG
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/PER_IP_CONFIG/README
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/PER_IP_CONFIG/README.configuration
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/PER_IP_CONFIG/hosts.allow
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/README
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_HOSTS
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_HOSTS/README
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS/README
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS/README.configuration
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS/logins.txt
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS/vsftpd.conf
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS/vsftpd.pam
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS_2
/usr/share/doc/vsftpd-2.2.2/EXAMPLE/VIRTUAL_USERS_2/README
/usr/share/doc/vsftpd-2.2.2/FAQ
/usr/share/doc/vsftpd-2.2.2/INSTALL
/usr/share/doc/vsftpd-2.2.2/LICENSE
/usr/share/doc/vsftpd-2.2.2/README
/usr/share/doc/vsftpd-2.2.2/README.security
/usr/share/doc/vsftpd-2.2.2/REWARD
/usr/share/doc/vsftpd-2.2.2/SECURITY
/usr/share/doc/vsftpd-2.2.2/SECURITY/DESIGN
/usr/share/doc/vsftpd-2.2.2/SECURITY/IMPLEMENTATION
/usr/share/doc/vsftpd-2.2.2/SECURITY/OVERVIEW
/usr/share/doc/vsftpd-2.2.2/SECURITY/TRUST
/usr/share/doc/vsftpd-2.2.2/SIZE
/usr/share/doc/vsftpd-2.2.2/SPEED
/usr/share/doc/vsftpd-2.2.2/TODO
/usr/share/doc/vsftpd-2.2.2/TUNING
/usr/share/doc/vsftpd-2.2.2/vsftpd.xinetd
/usr/share/man/man5/vsftpd.conf.5.gz
/usr/share/man/man8/vsftpd.8.gz
/var/ftp
/var/ftp/pub

2、配置


#sed '{/^#/d;/^$/d}' /etc/vsftpd/vsftpd.confanonymous_enable=NO                             #设定不让匿名登录local_enable=YES                                #指定在/etc/passwd内的账号才能以真实用户登录write_enable=YES                                #允许用户上传文件与目录local_umask=022                                 #建立新目录755和文件644权限     dirmessage_enable=YES                           #若目录下有.message则会显示其中的内容connect_from_port_20=NO                         #支持主动式联机功能xferlog_enable=YES                              #启动登录文件记录,记录于/var/log/xferlogdual_log_enable=YES                             #启用独立日志功能vsftpd_log_file=/var/log/vsftpd.log             #ftp访问日志位置xferlog_file=/var/log/xferlog                   #登录日志位置xferlog_std_format=YES                          #支持wuftp日志格式,可以使用wuftp登录文件的分析软件chroot_list_enable=YES                          #启用chroot禁锢用户列表模式,和下项配合使用chroot_list_file=/etc/vsftpd/chroot_list        #如果为YES,设定不被chroot用户列表chroot_local_user=YES                           #限制默认用户chrootpasv_enable=YES                                 #支持数据流的被动连接模式pasv_min_port=40000                             #被动连接模式支持的pasv_max_port=40080                             端口范围pasv_promiscuous=YES                            #禁用pasv检查listen=YES                                      #独立进程启动listen_port=10090                               #使用命令通道端口,服务器侦听端口pam_service_name=/etc/pam.d/vsftpd              #pam模块名称userlist_enable=YES                             #开启userlist机制管理登录账号userlist_deny=YES                               #默认YES,拒绝列表userlist_file=/etc/vsftpd/user_list             #列表位置tcp_wrappers=YES                                #支持tcp wrappers的防火墙机制max_clients=10                                  #最多支持10个用户的连接max_per_ip=50                                   并且一个用户最多50的连接

3、新建测试账号


#useradd nagios#echo 'nagios' | passwd --stdin nagiosChanging password for user nagios.passwd: all authentication tokens updated successfully.

4、不受chroot控制的用户

#cat /etc/vsftpd/chroot_listnagios

5、测试

#lftp -p 10090 -u nagios,nagios ServerIP#lftp nagios@192.168.100.10:~> ls-rw-r--r--    1 501      501          1578 May 05 03:41 passwd-rw-r--r--    1 501      501           220 May 05 03:41 rc.localchenglftp nagios@ServerIP:~cd /etc/cd ok, cwd=/etclftp nagios@ServerIP:/etc> pwd

逃离Home成功

6、一般用户测试

# lftp -p 10090 -u cytxmanager,centos ServerIPlftp cytxmanager@ServerIP:~> ls-rw-r--r--    1 500      500          1578 May 05 03:14 passwdlftp cytxmanager@ServerIP:/> cd /etc/cd: Access failed: 550 Failed to change directory. (/etc)

被chroot

本文出自 “技术小菜” 博客,请务必保留此出处http://390892467.blog.51cto.com/2006821/1406753