centos7下安装vsftpd与PAM虚拟用户
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
/sbin/nologin和/bin/false的区别
/bin/false是最严格的禁止login选项,一切服务都不能用,而/sbin/nologin只是不允许系统login,可以使用其他ftp等服务。
参考:http://jingyan.baidu.com/article/d169e186469f44436611d8ec.html
centos7下安装vsftpd与PAM虚拟用户的更多相关文章
- CentOS6.3下搭建vsftpd(采用虚拟用户设置)
CentOS6.3如果在安装的时候所有安装选项都打勾的话就含有单间vsftpd必备的软件:vsftpd.pam*.db4* 检查是否安装: [root@centos6 ~]# rpm -qa | gr ...
- Centos下安装FTP并进行虚拟用户访问方式配置
1. 安装认证所需包 [root@localhost]#yum install pam* [root@localhost]#yum install db4* 首先安装PAM(用于用户认证)和DB4(用 ...
- centos7下安装vsftpd
安装步骤: 创建ftp目录 cd / mkdir ftpfile 创建指定登陆用户并不让他拥有登陆系统的权限(设置指定登陆shell) useradd ftpuser -d /ftpfile/ -s ...
- centos7下安装vsftpd配置
0. 首先安装ftp服务 yum install -y ftp 1. 通过yum install -y vsftp安装vsftp 2. 修改vi /etc/vsftpd/vsftpd.conf, ...
- CentOS 6.4 下安装vsftpd
概述: vsftpd是Linux下比较著名的FTP服务器,搭建FTP服务器当然首选这个. 本文介绍了在CentOS 6.4下安装vsftpd.配置虚拟用户登录FTP的过程. 正文: 一:安装vsftp ...
- CentOS下安装vsftpd
因为FTP的端口是 两个,一个是固定21端口,还有一个任意端口的数据通道.关键是任意端口不好搞. 首先在vsftpd的配置文件中设置 任意端口的范围 [root@localhost root]# vi ...
- ubuntu 12.04 配置vsftpd 服务,添加虚拟用户,ssl加密
1.对于12.04的vsftpd 有一些bug,推荐安装版本vsftpd_2.3.5-1ubuntu2ppa1_amd64.debapt-get install python-software-pro ...
- docker(一) Centos7下安装docker
docker(一) Centos7下安装dockerdocker(二) windows10下安装dockerdocker(三) 镜像和容器常用命令 docker(四) 使用Dockerfile构建镜像 ...
- CentOS7 下安装 iSCSI Target(tgt) ,使用 Ceph rbd
目录 一.iSCSI 介绍 1. iSCSI 定义 2. 几种常见的 iSCSI Target 3. 优缺点比较 二.安装步骤 1. 关闭防火墙 2. 关闭selinux 3. 通过 yum 安装 t ...
随机推荐
- 第十二章 非对称加密算法-RSA
注意:本节内容主要参考自<Java加密与解密的艺术(第2版)>第8章“高等加密算法--非对称加密算法” 12.1.RSA(最经典的非对称加密算法) 特点: 使用一套密钥即可完成加解密(与D ...
- z-index、display、selector选择器优先级css优先级面试用到
z-index:控制元素叠放顺序,哪个z-index数值越大,那个优先被叠放在上面. relative.absolute.fixed这三种情况可以使用z-index. static不可以使用. dis ...
- HDU 4940 Destroy Transportation system(2014 Multi-University Training Contest 7)
思路:无源汇有上下界可行流判定, 原来每条边转化成 下界为D 上界为 D+B ,判断是否存在可行流即可. 为什么呢? 如果存在可行流 那么说明对于任意的 S 集合流出的肯定等于 流入的, ...
- UI的一些方法(按钮和线)
//设置按钮字体颜色 [self.determineBtn setTitleColor:[UIColor colorWithHexString:@"0xff9500"] forSt ...
- 2014年3月份第4周51Aspx源码发布详情
足购库存管理系统源码 2014-3-24 [VS2010]功能介绍:这是为一个卖鞋子的朋友设计的,本来要用SQL数据库的,可是他说他不想安装,怕拖电脑速度,没办法,用了Access,在数据同步上和S ...
- hdu 2084
ps:这道题...是DP题..所以我去看了百度一些东西,才知道了什么是状态方程,状态转移方程.. 做的第一个DP题,然后TLE一次.贴上TLE的代码: #include "stdio.h&q ...
- IOS网络开发(一)
1 简易的聊天工具 1.1 问题 Socket的英文原义是孔或者插座的意思,通常也称作套接字,用于描述IP地址和端口,是一个通信链的句柄,本案例使用第三方Socket编程框架AsyncSocket框架 ...
- Valgrind的多线程调试工具
Valgrind的多线程调试工具 Helgrind是Valgrind的一个重点功能 本节主要针对与多线程基本安全问题进行检测:[所有的代码环境都是在POSIX_THREAD模式下] 写线程代码时 经 ...
- ${param.origin}
拦截器中设置未登录拦击跳转链接 response.sendRedirect(request.getContextPath() + "/loginAndRegister/loginAndReg ...
- 腾讯优测| 让Android屏幕适配开发更简单-Google百分比布
文/腾讯优测工程师 吴宇焕 腾讯优测优社区干货精选~ 相信开发同学都被安卓设备碎片化的问题折磨过,市面上安卓手机的主流屏幕尺寸种类繁多,给适配造成很大的困难.就算搞定了屏幕尺寸问题,各种分辨率又让人眼 ...