一、实现功能:
域用户认证
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=linuxidc,dc=com binddn cn=administrator,cn=users,dc=linuxidc,dc=com bindpw www.linuxidc.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