VSFTP在CentOS6的SSL最终处理方案

vsftp 是常用的服务,最近因为21端口总被扫描,因此整理网上教程进行维护。

一、更改ftp端口号
1.编辑 /etc/vsftpd/vsftpd.conf 文件,在该配置文件中添加此行:listen_port=801
2.编辑 /etc/services 文件,将其中的
ftp 21/tcp 改为 ftp 801/tcp ,
ftp 21/udp 改为 ftp 801/udp
3.执行 service vsftpd restart 重新启动 vsftpd 服务。启动完成后可以使用 netstat -ntpl | grep vsftpd 命令可以查看到系统现监听的 vsftpd 的端口为 801

二、将ftp改为tsl安全连接。生成证书

查询vsftpd软件是否支持SSL

[root@localhost vsftpd]# ldd /usr/sbin/vsftpd |grep libssl
libssl.so.6 => /lib/libssl.so.6 (0xf7f27000) ==>说明此版本支持

如没有输出libssl.so.6 => /lib/libssl.so.6 (0xf7f27000)类似文本,说明此vsftpd版本不支持SSL

# openssl req -x509 -days 365 -newkey rsa:2048 -nodes -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem
==>生成vsftpd.pem 证书

其中”-days 365″声明证书的有效期是一年。
接下来的过程需要你输入一些相关的国家,地区,位置,组织名称,common name等信息。

三、配置主文件
# vi /etc/vsftpd/vsftpd.conf

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
#data_connection_timeout=120
#nopriv_user=ftpsecure
#async_abor_enable=YES
ascii_upload_enable=NO
ascii_download_enable=NO
ftpd_banner=Welcome to FTP service.
#deny_email_enable=YES
#banned_email_file=/etc/vsftpd/banned_emails
# users to NOT chroot().
chroot_local_user=YES
chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd/chroot_list
#ls_recurse_enable=YES
listen=YES
#listen_ipv6=YES

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

guest_enable=YES
guest_username=owner
user_config_dir=/etc/vsftpd/user_conf

pasv_enable=YES
pasv_min_port=5000
pasv_max_port=6000
pasv_promiscuous=YES
pasv_address=xx.x.x.x
max_per_ip=20
pasv_addr_resolve=YES
port_promiscuous=YES
port_enable=YES
local_root=/xxx
listen_port=801

dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd.log
log_ftp_protocol=yes
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=NO
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/vsftpd/vsftpd.pem
ssl_ciphers=AES128-SHA
ssl_request_cert=NO

四、生成脚本,方便操作(需要用 tab空格)
[root@tulip vsftpd]# cat Makefile
POSSIBLE += $(shell test -f user && echo user.db)
all: ${POSSIBLE}
%.db: %
@db_load -T -t hash -f $< $@ clean: rm -f *.db *~ start: /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf & stop: killall vsftpd 五、改成多用户使用,限制路径 参考之前文章 https://www.demengqi.com/archives/84

注意 在 centos64位时候,

需要将之前的 密码验证路径更改一下

#vi /etc/pam.d/vsftpd


auth required /lib/security/pam_userdb.so db=/etc/vsftpd/login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/login

改为

auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/user
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/user