Vsftp与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虚拟用户的更多相关文章

  1. CentOS6.3下搭建vsftpd(采用虚拟用户设置)

    CentOS6.3如果在安装的时候所有安装选项都打勾的话就含有单间vsftpd必备的软件:vsftpd.pam*.db4* 检查是否安装: [root@centos6 ~]# rpm -qa | gr ...

  2. Centos下安装FTP并进行虚拟用户访问方式配置

    1. 安装认证所需包 [root@localhost]#yum install pam* [root@localhost]#yum install db4* 首先安装PAM(用于用户认证)和DB4(用 ...

  3. centos7下安装vsftpd

    安装步骤: 创建ftp目录 cd / mkdir ftpfile 创建指定登陆用户并不让他拥有登陆系统的权限(设置指定登陆shell) useradd ftpuser -d /ftpfile/ -s ...

  4. centos7下安装vsftpd配置

    0. 首先安装ftp服务 yum install -y ftp 1. 通过yum install -y vsftp安装vsftp 2.    修改vi /etc/vsftpd/vsftpd.conf, ...

  5. CentOS 6.4 下安装vsftpd

    概述: vsftpd是Linux下比较著名的FTP服务器,搭建FTP服务器当然首选这个. 本文介绍了在CentOS 6.4下安装vsftpd.配置虚拟用户登录FTP的过程. 正文: 一:安装vsftp ...

  6. CentOS下安装vsftpd

    因为FTP的端口是 两个,一个是固定21端口,还有一个任意端口的数据通道.关键是任意端口不好搞. 首先在vsftpd的配置文件中设置 任意端口的范围 [root@localhost root]# vi ...

  7. ubuntu 12.04 配置vsftpd 服务,添加虚拟用户,ssl加密

    1.对于12.04的vsftpd 有一些bug,推荐安装版本vsftpd_2.3.5-1ubuntu2ppa1_amd64.debapt-get install python-software-pro ...

  8. docker(一) Centos7下安装docker

    docker(一) Centos7下安装dockerdocker(二) windows10下安装dockerdocker(三) 镜像和容器常用命令 docker(四) 使用Dockerfile构建镜像 ...

  9. CentOS7 下安装 iSCSI Target(tgt) ,使用 Ceph rbd

    目录 一.iSCSI 介绍 1. iSCSI 定义 2. 几种常见的 iSCSI Target 3. 优缺点比较 二.安装步骤 1. 关闭防火墙 2. 关闭selinux 3. 通过 yum 安装 t ...

随机推荐

  1. java 构造方法

    class MyTestClass { public int Value; public boolean equals(MyTestClass obj){ return obj.Value ==thi ...

  2. elasticsearch的服务器响应异常及应对策略

    目录: 1 _riverStatus Import_fail 2 es_rejected_execution_exception <429> 3 create_failed_engine_ ...

  3. Rhel6-varnish配置文档

    系统环境: rhel6 x86_64 iptables and selinux disabled 主机: 192.168.122.160:virnish apache server60.example ...

  4. MongoDB下载文件 百度盘共享

    1> mongodb下载地址: http://www.mongodb.org/downloads 官方下载不了,可以到百度共享盘里面下载 MongoDB 2.6.5 Windows 64位:   ...

  5. Linux驱动之内存映射

    本文参考了http://www.cnblogs.com/geneil/archive/2011/12/08/2281222.html.本文作为学习总结,将主要过程简要描述. 很多驱动实现某些功能都要通 ...

  6. android属性之excludeFromRecents -- clearTaskOnLaunch 隐身意图 启动activity

    这个可以  用android 任务中app 隐藏起来 android属性之clearTaskOnLaunch 此属性是 每次启动app时都会进入 根目录中      android:clearTask ...

  7. CPU标志寄存器

    这个标志寄存器似乎很重要,不干掉它,中断这玩意还进行不下去了,但是过于复杂,都是一些跟计算结果相关的位,头痛 (这是别人写的一篇非常好的关于标志寄存器的文章http://blog.csdn.net/w ...

  8. Ubuntu下部分文件操作的命令

    (1)创建目录 mkdir filefoldname (2)删除空目录 rmdir filefoldname (3)删除非空目录及其中所有文件 rm -rf filefoldname (4)移动文件或 ...

  9. General Motors China

    General Motors Co., one of the world's largest automakers, trace its root back to 1908. The General ...

  10. 搭建Android工程的步骤及其第一个安卓程序

    1.安卓系统架构 1>底层是Linux系统 2>函数库层 由C或C++写的 3>Application frameWork应用的框架层 4>顶层是应用层 2.JVM与DVM介绍 ...