红联Linux门户
Linux帮助

CentOS 6.5基于AD域账号联动认证的vsftpd结合SSL加密服务器配置

发布时间:2015-04-09 21:55:35来源:linux网站作者:linux人

一、实现功能:

域用户认证

SSL加密

虚拟域用户隔离认证

实现公共目录功能

实现多用户同目录功能


二、实施步骤:
1、系统基础设置
计算机名、IP地址、网关、子网掩码、DNS设置


2、安装所需要的软件
Yum install httpd -y
Yum install vsftpd* -y
Yum install pam* -y
Yum install mod_ssl* -y


3、建立vsftpd服务宿主用户

Useradd vsftpd –s /sbin/nologin


4、建立vsftpd虚拟宿主用户
Useradd virtusers –s /sbin/nologin


5、VSFTPD相关配置
1)编辑vsftpd.conf 配置文件

Cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak /备份配置文件
Vi /etc/vsftpd/vsftpd.conf
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  /设定禁止上传文件更改宿主
#chown_username=whoever
#xferlog_file=/var/log/xferlog
xferlog_std_format=YES  /设定日志使用标准的记录格式。
idle_session_timeout=1200  / 设定空闲连接超时时间,这里使用默认。将具体数值留给每个具体用户具体指定,当然如果不指定的话,还是使用这里的默认值600,单位秒。
data_connection_timeout=7200  /设定单次最大连续传输时间,这里使用默认。将具体数值留给每个具体用户具体指定,当然如果不指定的话,还是使用这里的默认值120,单位秒。
nopriv_user=vsftpd  /设定支撑vsftpd服务的宿主用户为手动建立的Vsftpd用户。注意,一旦做出更改宿主用户后,必须注意一起与该服务相关的读写文件的读写赋权问题。比如日志文件就必须给与该用户写入权限等。
async_abor_enable=YES  /设定支持异步传输功能
ascii_upload_enable=YES  /设定支持ASCII模式的上传功能
ascii_download_enable=YES  /设定支持ASCII模式的下载功能
ftpd_banner=Welcome to airmate ftp service.  /设定Vsftpd的登陆标语
#deny_email_enable=YES
#banned_email_file=/etc/vsftpd/banned_emails
ls_recurse_enable=NO  /禁止用户登陆FTP后使用"ls -R"的命令。该命令会对服务器性能造成巨大开销。如果该项被允许,那么挡多用户同时使用该命令时将会对该服务器造成威胁。
#ls_recurse_enable=YES
listen=YES
#listen_ipv6=YES
pam_service_name=vsftpd  /设定PAM服务下Vsftpd的验证配置文件名。
userlist_enable=YES  /启用userlist功能
userlist_deny=YES
userlist_file=/etc/vsftpd/allowusers_list  /配置userlist用户列表文件位置
tcp_wrappers=YES  /设定支持TCP Wrappers
guest_enable=YES  /设定启用虚拟用户功能
guest_username=virtusers  /指定虚拟用户的宿主用户
virtual_use_local_privs=YES  /设定虚拟用户的权限符合他们的宿主用户
port_enable=YES  /允许使用主动模式进行连接到FTP服务器
pasv_enable=YES  /允许使用被动模式进行连接到FTP服务器
pasv_min_port=50000  /配置被动模式的最小端口为50000
pasv_max_port=50200  /配置被动模式的最大端口为50200
pasv_address=8.8.8.8  / 使vsftpd在pasv命令回复时跳转到提定的IP地址
ssl_enable=YES  /开启ssl功能
rsa_cert_file=/etc/vsftpd/vsftpd.pem  /指定证书位置
ssl_ciphers=HIGH
syslog_enable=yes  /将FTP日志记录到/var/log/messages文件中,有效解决日志乱码问题

2)建立虚拟用户配置文件存放路径
mkdir /etc/vsftpd/vconf/

3)建立FTP用户文件存放位置
Mkdir /opt/vsftp/
Chown –R virtusers.virtusers /opt/vsftp/


6、 配置通过pam认证方式
1)修改vsftpd的PAM认证参数
设置vsftpd的pam认证配置,添加如下两
auth    sufficient pam_ldap.so #keep this as the first 'auth' item
account sufficient pam_ldap.so #keep this as the first 'account' item

2)配置PAM的LDAP认证参数
设置pam的ldap认证配置,设置如下几个参数:
host 192.168.1.203
base cn=users,dc=linux,dc=com
binddn cn=administrator,cn=users,dc=linux,dc=com
bindpw www.linux.com
pam_login_attribute sAMAccountName

3)关闭SElinux以简化配置
如果安装了SElinux且不懂配置的,建议将其关闭。方法是修改/etc/selinux/config文件的如下内容:
SELINUX=disabled #effective after restart


7、配置SSL加密进入/etc/vsftpd/目录下输入以下命令生成证书
req -x509 -nodes -days 365 -newkey rsa:1024 -subj "/C=CN/ST=GD/L=SZ/O=linuxidc/CN=linuxidc" -keyout /etc/vsftpd/vsftpd1.pem -out /etc/vsftpd/vsftpd1.pem


8、防火墙开启VSFTPD功能
在/etc/sysconfig/iptables里面添加以下内容,并重启iptables服务。
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A OUTPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT