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

该部门提交数据需要使用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中使用的证书怎么生成,下次再写出来吧。

vsftp、ftps 搭建的更多相关文章

  1. VSFTP服务搭建

    title date tags layout CentOS6.5 Vsftp服务安装与配置 2018-09-04 Centos6.5服务器搭建 post 1.安装vsftp服务 [root@local ...

  2. vsftp快速搭建ftp服务器

    什么是vsftp: vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux, BSD, Solaris, HP-UX 以及 IRIX 上面.它支持很多其他的 FT ...

  3. Linux学习笔记11—VSFTP的搭建

    1.查看是否安装vsftp rpm -qa | grep vsftpd 如果出现vsftpd-2.0.5-21.el5,说明已经安装 vsftp 安装vsftp yum -y install vsft ...

  4. centos7中vsftp的搭建

    开启vsftpd:service vsftpd start关闭vsftp:service vsftpd stop 安装vsftpd: yum -y install vsftpd 建立vsftpd帐号: ...

  5. vsftp服务器搭建

    1.FTP的主动模式和被动模式的区别: 最大的区别是数据端口并不总是20, 主动模式和被动模式的优缺点: 主动FTP对FTP服务器的管理和安全很有利,但对客户端的管理不利.因为FTP服务器企图与客户端 ...

  6. CentOS 6.5 下搭建vsftp服务

    参考网站: http://blog.163.com/sunshine_linting/blog/static/44893323201391010522601/ http://blog.sina.com ...

  7. Linux中搭建FTP服务器

    FTP工作原理 (1)FTP使用端口 [root@localhost ~]# cat /etc/services | grep ftp ftp-data 20/tcp #数据链路:端口20 ftp 2 ...

  8. Linux:FTP服务器的搭建

    FTP服务器的简介 系统用户 即系统本机的用户.Linux一般不会针对实体用户进行限制,因此实体用户可以针对整个文件 系统进行工作.但通常不希望他们通过FTP方式远程访问系统. 虚拟用户 只能采用FT ...

  9. 15.linux iptables防火墙规则vsftp服务

    一.服务所开启的端口号.          dhcp 67       samba 139 445       http 80  https 443       mysql 3306         ...

随机推荐

  1. Event Recommendation Engine Challenge分步解析第四步

    一.请知晓 本文是基于: Event Recommendation Engine Challenge分步解析第一步 Event Recommendation Engine Challenge分步解析第 ...

  2. Centos 7最小化InfluxDB部署

    配置源 [influxdb] name = InfluxDB Repository - RHEL \$releasever baseurl = https://repos.influxdata.com ...

  3. Hadoop端口说明

    Hadoop端口说明: 默认端口                            设置位置                                    描述信息 8020        ...

  4. jQuery克隆html元素并改变id

    如题,前端操作经常需要ajax异步刷新html页面数据.有时候js里面拼接html代码很麻烦. 因此选择一个div克隆并改变一些值就省了很多事.这个div也可以提前写在html里面hide() 下面是 ...

  5. Handy Collaborator :用于挖掘out-of-band类漏洞的Burp插件介绍

    本文我将介绍一个新的 Burp Suite插件Handy Collaborator.Burp Suite Collaborator是添加到Burp Suite的外部服务器,主要用于挖掘那些仅来自外部服 ...

  6. MySQL图形化管理工具

    PHPMyAdmin(关于web界面的) Navicat MySQL Workbench

  7. redis踩坑记录

    1. 关于redis启动后的warnning: WARNING you have Transparent Huge Pages (THP) support enabled in your kernel ...

  8. 彻底解决CDH5.12安装过程中 Error: JAVA_HOME is not set and Java could not be found

    1 详细报错 + cat+======================================================================+| Error: JAVA_HO ...

  9. 【JS】获取一个月份有多少天

    new Date(year, month, 0).getDate() 通过 Date 构造函数传入年份.月份.零,然后通过调用获取日期函数即可获取当前月份有多少天 new Date(2019, 2, ...

  10. 【blog】SpringBoot事务

    参考链接 http://www.cnblogs.com/xingzc/p/6029483.html