centos7下安装vsftpd与PAM虚拟用户-创新互联

Vsftp与PAM虚拟用户centos7下安装vsftpd
与PAM虚拟用户

使用yum 安装vsftp

网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、小程序定制开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了仙居免费建站欢迎大家使用!yum install vsftpd pam pam-* db4 db4-*

设置开机启动

chkconfig vsftpd on

创建一个保存用户及密码的文件

cd /etc/vsftpd/ touch vuser_passwd.txt

添加用户(奇行用户,偶行密码)

vi vuser_passwd.txt tom DSfaoewLD3 ken GetpOIIofd324DLJhg

将文本内的帐号及密码添加到db4的数据库文件内

db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db

将vsftpd原内容全部注释掉,并添加如下:

sed -ir 's/^/#/g' /etc/pam.d/vsftpd echo -n ' auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd ' >> /etc/pam.d/vsftpd

创建一个vsftpd服务的用户vsftpd,你也可以使用-d来指定他的家目录

useradd -g www -d /home/vsftpd -s /sbin/nologin vsftpd #useradd -d /var/ftp/tom -s /sbin/nologin tom

更改 vsftpd的配置文件

cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak awk '! /^(#|$)/' /etc/vsftpd/vsftpd.conf.bak

配置如下:

#不允许匿名访问 anonymous_enable=NO #设定本地用户可以访问。注意:主要是为虚拟宿主用户,如果该项目设定为NO那么所有虚拟用户将无法访问 local_enable=YES #允许写操作 write_enable=YES #创建或上传后文件的权限掩码 local_umask=022 #禁止匿名用户上传 anon_upload_enable=NO #禁止匿名用户创建目录 anon_mkdir_write_enable=NO #进入目录时可以显示一些设定的信息,可以通过message_file=.message来设置 dirmessage_enable=YES #开启日志 xferlog_enable=YES #主动连接的端口号 connect_from_port_20=YES #设定禁止上传文件更改宿主 chown_uploads=NO #日志路径,记得自己创建一下并且对这个文件进行chown vsftpd.vsftpd /var/log/vsftpd.log xferlog_file=/var/log/vsftpd.log #就是格式话日志格式的,你懂得。使用wu ftp软件时设置yes就行 xferlog_std_format=YES #因为我们把vsftpd的shell设置为nobody 了,所以 这个地方写vsftpd就可以啦!当然或者可以写成系统内的nobody nopriv_user=vsftpd #设定支持异步传输功能 async_abor_enable=YES #设定支持ASCII模式的上传 ascii_upload_enable=YES #设定支持ASCII模式的上传 ascii_download_enable=YES #登陆欢迎语 ftpd_banner=Welcome to dongnan FTP service. #限定在自己的目录内,不让他出去,就比如如果设置成NO,那么当你登陆到ftp的时候,可以访问服务器的其他一些有权限目录。设置为YES后即,锁定你的目录了 chroot_list_enable=YES #待会要把用户写到这个里面,写到这里的用户乖乖的呆在家目录下吧 chroot_list_file=/etc/vsftpd/chroot_list #以standalone方式来启动 listen=YES #/etc/pam.d/下的vsftpd文件 pam_service_name=vsftpd #在/etc/vsftpd/user_list中的用户将不得使用FTP userlist_enable=YES #支援 TCP Wrappers 的防火墙机制 tcp_wrappers=YES #启用虚拟用户功能 guest_enable=YES guest_username=vsftpd #虚拟用户的权限符合他们的宿主用户 virtual_use_local_privs=YES #虚拟用户个人vsftpd的配置文件存放路径。vsftpd_config是文件夹啊。注意:配置文件名必须和虚拟用户名相同 user_config_dir=/etc/vsftpd/vuser_conf

设置被动模式

allow_writeable_chroot=YES #connect_from_port_10021=YES pasv_min_port=8888 pasv_max_port=8899

放开端口

firewall-cmd --add-port=8888-8899/tcp --permanent
firewall-cmd --reload

创建一下保存虚拟用户配置文件的目录

mkdir /etc/vsftpd/vuser_conf/

创建vsftp日志文件

touch /var/log/vsftpd.log chmod 600 /var/log/vsftpd.log chown vsftpd.vsftpd /var/log/vsftpd.log

创建要将哪些用户固定在家目录的配置文件

touch /etc/vsftpd/chroot_list echo vsftpd > /etc/vsftpd/chroot_list

将需要固定用户目录的用户名字写进去即可。

cd /etc/vsftpd/vuser_conf/ cat > tom << EOF #起用虚拟用户,centos下yes必须为小写字母 local_root=/home/ftp/tom write_enable=YES anon_umask=022 anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES

注:行末不能有空格  

启动vsftp

/etc/init.d/vsftpd start

放开selinux限制  

setsebool -P ftp_home_dir=1 //设置ftp可以使用home目录 setsebool -P allow_ftpd_full_access=1 //设置ftp用户可以有所有权限

防火墙

firewall-cmd --add-port=21/tcp --permanent firewall-cmd --reload

Starting vsftpd for vsftpd: 500 OOPS: bad bool value in config file for: anon_upload_enable
注意: 这里出现了 500 OOPS 之类的错误,请使用以下命令去除"多余的空格",再次启动vsftp 即可。

sed -ir 's/[ ]*$//g' /etc/vsftpd/vsftpd.conf sed -ir 's/[ ]*$//g' /etc/vsftpd/vuser_conf/tom基于SSL加密

(可以应用于任何用户验证。可以利用本博的博文抓包验证)

mkdir /etc/vsftpd/.sslkey //建立存放证书的目录 cd /etc/vsftpd/.sslkey //进入该目录以备建立证书 openssl req –new -x509 -nodes -days 900 -out vsftpd.pem -keyout vsftpd.pem //生成证书,Common Name必须是客户端访问FTP服务器时的FQDN.默认过期时间为30天,这里设为900天 chmod -R 400 /etc/vsftpd/.sslkey //保证证书安全,修改证书目录的权限。

filezilla client连接时“加密”选择“要求显式的FTP over TLS”

在/etc/vsftpd/vsftpd.conf配置文件中添加:

ssl_enable=YES ssl_sslv2=YES ssl_sslv3=YES ssl_tlsv1=YES force_local_logins_ssl=YES force_local_data_ssl=YES rsa_cert_file=/etc/vsftpd/.sslkey/vsftpd.pem  

#service  vsftpd  restart

参考
Vsftp服务安装搭建,虚拟用户配置
http://kinggoo.com/app-installvsftpdconf.htm

第二十一章、檔案伺服器之三: FTP 伺服器

/sbin/nologin和/bin/false的区别
/bin/false是最严格的禁止login选项,一切服务都不能用,而/sbin/nologin只是不允许系统login,可以使用其他ftp等服务。

参考:http://jingyan.baidu.com/article/d169e186469f44436611d8ec.html


文章标题:centos7下安装vsftpd与PAM虚拟用户-创新互联
URL链接:http://pwwzsj.com/article/dehghj.html