最近有客户需要SSL认证的ftp服务。现在整理下自己的操作步骤
1安装所需要的软件
1
2
3
4
| Yum install httpd -y
Yum install vsftpd* -y
Yum install pam* -y
Yum install mod_ssl* -y
|
3、建立vsftpd服务宿主用户
1
2
|
Useradd vsftpd –s /sbin/nologin
|
4、建立vsftpd虚拟宿主用户
1
| 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 /编辑vsftp配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
| 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 toairmate 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
chroot_local_user=YES
chroot_list_enable=NO
listen=YES
#listen_ipv6=YES
pam_service_name=vsftpd /设定PAM服务下Vsftpd的验证配置文件名。
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
userlist_deny=YES
#userlist_file=/etc/vsftpd/chroot_list
guest_enable=YES
guest_username=virtusers /设定虚拟用户的宿主用户
virtual_use_local_privs=yes
user_config_dir=/etc/vsftpd/virtualuser_conf /虚拟用户配置文件
local_root=/
ssl_enable=YES /启用SS认证
rsa_cert_file=/etc/vsftpd/vsftpd1.pem /SSL证书保存的文件
ssl_sslv2=YES /启用3种认证模式
ssl_sslv3=YES
ssl_tlsv1=YES
syslog_enable=yes
pasv_enable=YES /启用pasv登录模式
pasv_max_port=30010 /pasv 登录使用的最大端口
pasv_min_port=30000 /pasv 登录使用的最小端口
|
~
2)建立虚拟用户配置文件存放路径
1
| mkdir /etc/vsftpd/virtualuser_conf
|
配置虚拟用户
比如我要添加一个叫tang用户,ftp客户端就使用该用户名(密码后面设置)进行上传下载,在
1
| /etc/vsftpd/virtualuser_conf
|
新建一个名叫tang的文件:touch tang 。文件里面的内容为:
1
2
3
4
5
6
7
8
9
| local_root=/home/ftpfile
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
pam_service_name=vsftpd
chroot_local_user=YES
|
参数说明: local_root=/home/ftpuser #该虚拟用户上传下载的根目录
write_enable=YES #可写(可上传)
anon_umask=022 #掩码 接下来在/etc/vsftpd/目录新建一个记录所有客户端用户(虚拟用户)的用户名密码的文本文档: 1
| touch virtualuser_passwd.txt
|
里面的内容为:
1
2
3
4
| tang
passwd1
tony
passwd2
|
一行用户名,一行密码
接着,生成虚拟用户认证的db文件
1
| db_load -T -t hash -f /etc/vsftpd/virtualuser_passwd.txt/etc/vsftpd/virtualuser_passwd.db
|
随后,编辑认证文件
,全部注释掉原来语句
再增加以下两句
1
2
| auth required /lib64/security/pam_userdb.sodb=/etc/vsftpd/virtualuser_passwd
account required /lib64/security/pam_userdb.sodb=/etc/vsftpd/virtualuser_passwd
|
3)建立FTP用户文件存放位置
1
2
3
| 1.Mkdir /home/ftpfile/
2.Chown –R virtusers.virtusers /home/ftpfile
3.chmod u=rwx /home/ftpfile
|
3)关闭SElinux以简化配置
如果安装了SElinux且不懂配置的,建议将其关闭。方法是修改/etc/selinux/config文件的如下内容:
1
| SELINUX=disabled #effective afterrestart
|
7、配置SSL加密进入/etc/vsftpd/目录下输入以下命令生成证书
1
| req -x509 -nodes -days 365 -newkeyrsa:1024 -subj"/C=CN/ST=GD/L=SZ/O=lvzunhai/CN=lvzunhai" -keyout/etc/vsftpd/vsftpd1.pem -out /etc/vsftpd/vsftpd1.pem
|
8、防火墙开启VSFTPD功能
|