yum -y install pam pam-devel db4 de4-devel db4-uitls db4-tcl
#创建Vsftpd服务的宿主用户 useradd vsftpd -M -s /sbin/nologin #创建Vsftpd虚拟宿主用户 useradd ftpvload -M -s /sbin/nologin
yum -y install vsftpd
mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.back
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 anon_upload_enable=NO anon_mkdir_write_enable=NO dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES chown_uploads=NO xferlog_file=/var/log/vsftpd.log xferlog_std_format=YES async_abor_enable=YES ascii_upload_enable=YES ascii_download_enable=YES ftpd_banner=Welcome to FTP Server chroot_local_user=YES ls_recurse_enable=NO listen=YES hide_ids=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES guest_enable=YES guest_username=ftpvload virtual_use_local_privs=YES user_config_dir=/etc/vsftpd/vconf
anonymous_enable=NO #设定不容许匿名访问 local_enable=YES #设定本地用户能够访问。注意:主要是为虚拟宿主用户,若是该项目设定为NO那么全部虚拟用户将没法访问。 write_enable=YES #设定能够进行写操做。 local_umask=022 #设定上传后文件的权限掩码。 anon_upload_enable=NO #禁止匿名用户上传。 anon_mkdir_write_enable=NO #禁止匿名用户创建目录。 dirmessage_enable=YES #设定开启目录标语功能。 xferlog_enable=YES #设定开启日志记录功能。 connect_from_port_20=YES #设定端口20进行数据链接。 chown_uploads=NO #设定禁止上传文件更改宿主。 xferlog_file=/var/log/vsftpd.log #设定Vsftpd的服务日志保存路径。注意,该文件默认不存在。必需要手动touch出来,而且因为这里更改了Vsftpd的服务宿主用户为手动创建的Vsftpd。必须注意给与该用户对日志的写入权限,不然服务将启动失败。 xferlog_std_format=YES #设定日志使用标准的记录格式。 async_abor_enable=YES #设定支持异步传输功能。 ascii_upload_enable=YES ascii_download_enable=YES #设定支持ASCII模式的上传和下载功能。 ftpd_banner=This Vsftp server supports virtual users ^_^ #设定Vsftpd的登录标语。 chroot_list_enable=NO #禁止用户登出本身的FTP主目录。 ls_recurse_enable=NO #禁止用户登录FTP后使用"ls -R"的命令。该命令会对服务器性能形成巨大开销。若是该项被容许,那么当多用户同时使用该命令时将会对该服务器形成威胁。 listen=YES #设定该Vsftpd服务工做在StandAlone模式下。 pam_service_name=vsftpd #设定PAM服务下Vsftpd的验证配置文件名。所以,PAM验证将参考/etc/pam.d/下的vsftpd文件配置。 userlist_enable=YES #设定userlist_file中的用户将不得使用FTP。 tcp_wrappers=YES #设定支持TCP Wrappers #如下这些是关于Vsftpd虚拟用户支持的重要配置项目。默认Vsftpd.conf中不包含这些设定项目,须要本身手动添加配置 guest_enable=YES #设定启用虚拟用户功能。 guest_username=ftpvload #指定虚拟用户的宿主用户。 virtual_use_local_privs=YES #设定虚拟用户的权限符合他们的宿主用户。 user_config_dir=/etc/vsftpd/vconf #设定虚拟用户我的Vsftp的配置文件存放路径。也就是说,这个被指定的目录里,将存放每一个Vsftp虚拟用户个性的配置文件,一个须要注意的地方就是这些配置文件名必须和虚拟用户名相同。
touch /var/log/vsftpd.log chown vsftpd.vsftpd /var/log/vsftpd.log
mkdir /etc/vsftpd/vconf/ -pv
touch /etc/vsftpd/virtusers
vim /etc/vsftpd/virtusers
test #用户名 test1234 #用户密码
db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db
cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.backup
#vim /etc/pam.d/vsftpd auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
mkdir /var/ftp/virtual
mkdir /var/ftp/virtual/test1
chown -R ftpvload.ftpvload /var/ftp/virtual/
vi /etc/vsftpd/vconf/vconf.tmp
local_root=/var/ftp/virtual/username #指定虚拟用户的具体主路径 anonymous_enable=NO #设定不容许匿名用户访问 write_enable=YES #设定容许写操做 local_umask=022 #设定上传文件权限掩码 anon_upload_enable=NO #设定不容许匿名用户上传 anon_mkdir_write_enable=NO #设定不容许匿名用户创建目录 idle_session_timeout=600 #设定空闲链接超时时间 data_connection_timeout=120 #设定单次连续传输最大时间 max_clients=10 #设定并发客户端访问个数 max_per_ip=5 #设定单个客户端的最大线程数,这个配置主要来照顾Flashget、迅雷等多线程下载软件 local_max_rate=50000 #设定该用户的最大传输速率,单位b/s
cp /etc/vsftpd/vconf/vconf.tmp /etc/vsftpd/vconf/test
vim /etc/vsftpd/vconf/test
#!/bin/bash #date:2017-08-15 #version:0.0.2 #开始安装vsftpd echo ">>> 1. Start install Vsftpd ......" yum -y install pam pam-devel db4 de4-devel db4-tcl vsftpd mkdir /var/ftp/virtual useradd vsftpd -M -s /sbin/nologin useradd ftpvload -d /var/ftp/ -s /sbin/nologin sleep 3 chown -R ftpvload.ftpvload /var/ftp/ sleep 5 #开始配置vsftpd echo ">>> 2. Start config Vsftpd ......" mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.back echo "anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 anon_upload_enable=NO anon_mkdir_write_enable=NO dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES chown_uploads=NO xferlog_file=/var/log/vsftpd.log xferlog_std_format=YES async_abor_enable=YES ascii_upload_enable=YES ascii_download_enable=YES ftpd_banner=Welcome to FTP Server chroot_local_user=YES ls_recurse_enable=NO listen=YES hide_ids=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES guest_enable=YES guest_username=ftpvload virtual_use_local_privs=YES user_config_dir=/etc/vsftpd/vconf" > /etc/vsftpd/vsftpd.conf cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.backup sed -i s/^/#/g /etc/pam.d/vsftpd echo "auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers" >> /etc/pam.d/vsftpd sleep 3 #开始配置其它 echo ">>> 3. Start config other ......" touch /var/log/vsftpd.log chown vsftpd.vsftpd /var/log/vsftpd.log mkdir /etc/vsftpd/vconf/ -p sleep 3 #配置虚拟用户 echo ">>> 4. Start config vitual user" echo -e "test\ntest1234" >> /etc/vsftpd/virtusers db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db mkdir /var/ftp/virtual/test echo "local_root=/var/ftp/virtual/username #指定虚拟用户的具体主路径 anonymous_enable=NO #设定不容许匿名用户访问 write_enable=YES #设定容许写操做 local_umask=022 #设定上传文件权限掩码 anon_upload_enable=NO #设定不容许匿名用户上传 anon_mkdir_write_enable=NO #设定不容许匿名用户创建目录 idle_session_timeout=600 #设定空闲链接超时时间 data_connection_timeout=120 #设定单次连续传输最大时间 max_clients=10 #设定并发客户端访问个数 max_per_ip=5 #设定单个客户端的最大线程数,这个配置主要来照顾Flashget、迅雷等多线程下载软件 #local_max_rate=50000 #设定该用户的最大传输速率,单位b/s" >> /etc/vsftpd/vconf/vconf.tmp cp /etc/vsftpd/vconf/vconf.tmp /etc/vsftpd/vconf/test sed -i s/username/test/g /etc/vsftpd/vconf/test echo "All OVER! "
#!/bin/bash #date:2017-05-25 if read -t 5 -p "Please enter you name: " username then if [ -f /etc/vsftpd/vconf/$username ] #判断用户是否存在 then echo "The $username is exists, please input another name." else read -s -p "Please enter your password: " passwd echo -e "$username\n$passwd" >> /etc/vsftpd/virtusers db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db mkdir -p /var/ftp/virtual/$username chown -R ftpvload.ftpvload /var/ftp cp /etc/vsftpd/vconf/vconf.tmp /etc/vsftpd/vconf/$username sed -i s/username/$username/g /etc/vsftpd/vconf/$username echo "The config is over." fi else echo -e "\nThe 5s has passed, you are to slow! " fi