今天公司某个产品预上线,该产品需要向政府某部门提供一些数据。
该部门提交数据需要使用ftps,苦逼的我只能是测试环境搭建一套,用来测试提交数据。
先自行科普下ftps。
一、搭建vsftp
安装vsftp:
yum install vsftpd db4-utils -y
修改vsftp配置文件:
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 pasv_enable=NO #用于设置被动模式,默认vsftp是以主动模式工作,如果windows要访问改为YES pasv_min_port=30000 pasv_max_port=30999 chown_uploads=NO xferlog_file=/var/log/xferlog xferlog_std_format=YES async_abor_enable=YES ascii_upload_enable=YES ascii_download_enable=YES listen=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES guest_enable=YES guest_username=vsftpdhome virtual_use_local_privs=YES user_config_dir=/etc/vsftpd/users_config dual_log_enable=YES vsftpd_log_file=/var/log/vsftpd.log
创建秘钥认证文件:
一行用户,一行密码;以此类推
cat > /etc/vsftpd/login.txt << eof admin password eof
生成二进制文件:
cd /etc/vsftpd/ db_load -T -t hash -f login.txt login.db chmod 600 /etc/vsftpd/login.*
db_load参数解释:
db_load参数解释: 选项-T允许应用程序能够将文本文件转译载入进数据库。由于我们之后是将虚拟用户的信息以文件方式存储在文件里的,为了让Vsftpd这个应用程序能够通过文本来载入用户数据,必须要使用这个选项。如果指定了选项-T,那么一定要追跟子选项-t。 子选项-t,追加在在-T选项后,用来指定转译载入的数据库类型。扩展介绍下,-t可以指定的数据类型有Btree、Hash、Queue和Recon数据库。 选项-f的参数是包含用户名和密码的文本文件,文件的内容是:奇数行用户名、偶数行密码。
添加认证方式:
cat /etc/pam.d/vsftpd #%PAM-1.0 #session optional pam_keyinit.so force revoke #auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed #auth required pam_shells.so #auth include password-auth #account include password-auth #session required pam_loginuid.so #session include password-auth auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/login account required /lib64/security/pam_userdb.so db=/etc/vsftpd/login ##备注:上面只有最后两行生效,db=/etc/vsftpd/login 实质指向的 #是/etc/vsftpd/login.db(配置中不加DB) #另外lib64 为 64位系统,32位系统写lib #auth是对用户密码进行验证。 #accout是对用户的权限进行验证。
创建用户管理文件:
mkdir /etc/vsftpd/users_config cat > /etc/vsftpd/users_config/admin << eof local_root=/data/ virtual_use_local_privs=NO write_enable=YES anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES idle_session_timeout=600 data_connection_timeout=120 max_clients=10 max_per_ip=100 anon_max_rate=30720000 eof
创建local_root目录,并赋予权限:
mkdir /data useradd vsftpdhome chown vsftpdhome.vsftpdhome /data/
启动vsftpd:
/etc/init.d/vsftpd start
二、vsftp被动方式配置
vsftp 被动模式配置方式及防火墙配置方式:
#在vsftpd配置文件中配置被动端口,被动端口是给windows 使用的,具体原因自己百度下 #优点:对连接速度没有影响。 #缺点:限制了客户端并发连接的数量。 在/etc/vsftpd/vsftpd.conf中添加: pasv_enable=YES pasv_min_port=3000 pasv_max_port=3005
防火墙配置:
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT iptables -A INPUT -p tcp --dport 3000:3005 -j ACCEPT
如果开启了selinx,selinux配置
setsebool -P ftpd_disable_trans 1 service vsftpd restart
三、ftps配置
自己理解,所谓ftps是ftp调用ssl来完成安全的验证。
如果不正确还请指正。
修改vsftpd.conf,添加如下行:
# head vsftpd.conf #### ssl ##### rsa_cert_file=/etc/vsftpd/certs/test.pem rsa_private_key_file=/etc/vsftpd/certs/test.key ssl_tlsv1=YES ssl_sslv3=YES ssl_sslv2=YES ssl_enable=YES force_local_logins_ssl=YES force_local_data_ssl=YES
然后重启vsftp。
四、登陆验证
在客户机上安装ftp客户端软件FlashFXP
安装之后新建站点,截图如下:
到这,基本已经完成了。至于中间遇到的ssl中使用的证书怎么生成,下次再写出来吧。