今天公司某个产品预上线,该产品需要向政府某部门提供一些数据。

该部门提交数据需要使用ftps,苦逼的我只能是测试环境搭建一套,用来测试提交数据。

先自行科普下ftps

一、搭建vsftp

安装vsftp:

yum  install  vsftpd   db4-utils  -y

修改vsftp配置文件:

anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=

anon_upload_enable=NO

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

pasv_enable=NO
#用于设置被动模式,默认vsftp是以主动模式工作,如果windows要访问改为YES
pasv_min_port=
pasv_max_port= 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

vsftpd.conf

创建秘钥认证文件:
一行用户,一行密码;以此类推
cat > /etc/vsftpd/login.txt << eof
admin
password
eof

生成二进制文件:

cd /etc/vsftpd/
db_load -T -t hash -f login.txt login.db
chmod /etc/vsftpd/login.*
db_load参数解释:
db_load参数解释:

选项-T允许应用程序能够将文本文件转译载入进数据库。由于我们之后是将虚拟用户的信息以文件方式存储在文件里的,为了让Vsftpd这个应用程序能够通过文本来载入用户数据,必须要使用这个选项。如果指定了选项-T,那么一定要追跟子选项-t。
子选项-t,追加在在-T选项后,用来指定转译载入的数据库类型。扩展介绍下,-t可以指定的数据类型有Btree、Hash、Queue和Recon数据库。
选项-f的参数是包含用户名和密码的文本文件,文件的内容是:奇数行用户名、偶数行密码。

db_load参数解释

添加认证方式:

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=
data_connection_timeout=
max_clients=
max_per_ip=
anon_max_rate=
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=
pasv_max_port=

防火墙配置:

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport -j ACCEPT
iptables -A INPUT -p tcp --dport : -j ACCEPT

如果开启了selinx,selinux配置

setsebool -P ftpd_disable_trans
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中使用的证书怎么生成,下次再写出来吧。

最新文章

  1. 减少生成的dll数量
  2. Mybats中字符串判断
  3. Python3基础 casefold 将字符串中的所有字符变成小写
  4. [R]R的工作流
  5. Java对信号的处理
  6. java中Class.forName与new
  7. WPF笔记(2.2 DockPanel)——Layout
  8. cf467B Fedor and New Game
  9. php使用NuSoap调用java/C# webservice乱码问题
  10. MyEclipse8.5 中安装Spket插件
  11. 我的Emacs折腾经验谈(一) 一些给新人的建议
  12. [Unity Shader]Shader分类
  13. 关于iOS后台模式
  14. hibernate日志信息
  15. Redis的7个应用场景
  16. [Java]LeetCode284. 顶端迭代器 | Peeking Iterator
  17. Java_判断文件是否写入完成
  18. CentOS系统下docker的安装与卸载
  19. day02——作业讲解
  20. MySQL 事物机制

热门文章

  1. JavaEE之JDBC编程[详解]
  2. JAVA核心技术I---JAVA基础知识(查漏补缺private,static)
  3. 翻译二--创建一个Web测试计划
  4. jmeter元件执行顺序及简介
  5. MongoDB 入门篇
  6. 使用rvm安装与切换Ruby
  7. mq【转】
  8. javascript&amp;&amp;jquery编写插件模板
  9. Sliverlight常见错误集锦
  10. sql parser