共计 3694 个字符,预计需要花费 10 分钟才能阅读完成。
一、实现功能:
域用户认证
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
推荐阅读:
玩转 vsftpd 服务器的四大高级配置:http://www.linuxidc.com/Linux/2013-09/90565.htm
vsFTPd 配置教程:http://www.linuxidc.com/Linux/2013-09/90562.htm
Ubuntu 实用简单的 FTP 架设 http://www.linuxidc.com/Linux/2012-02/55346.htm
Ubuntu 上架设 FTP 服务器和 Apache 服务器 http://www.linuxidc.com/Linux/2011-04/35295.htm
Ubuntu 13.04 安装 LAMP\vsftpd\Webmin\phpMyAdmin 服务及设置 http://www.linuxidc.com/Linux/2013-06/86250.htm
RHEL6 平台下 SeLinux 和 vsftpd 的匿名上传的简单案例 http://www.linuxidc.com/Linux/2013-04/82300.htm
Linux 系统 vsftpd 源码安装 http://www.linuxidc.com/Linux/2013-03/81475.htm
vsftpd 的安全配置案例分析 http://www.linuxidc.com/Linux/2012-12/76501.htm
更多 CentOS 相关信息见CentOS 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=14