前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux云服务器下搭建FTP服务器

Linux云服务器下搭建FTP服务器

原创
作者头像
吴奇
修改2017-06-19 19:12:46
17.7K0
修改2017-06-19 19:12:46
举报
文章被收录于专栏:吴奇的专栏吴奇的专栏

FTP工作模式简介

FTP工作会启动两个通道:控制通道和数据通道。

控制通道一般由客户端发起,数据连接分两种:port(主动)和pasv(被动)。

PORT模式: 在客户端需要接收数据时,ftp_client(大于1024的随机端口)-PORT命令->ftp_server(21) 发送PORT命令,这个PORT命令包含了客户端是用什么端口来接收数据(大于1024的随机端口,在传送数据时,ftp_server将通过自己的TCP 20 端口和PORT中包含的端口建立新的连接来传送数据。

PASV模式: 传送数据时,ftp_client--PASV命令-->ftp_server(21) 发送PASV命令时,ftp_server自动打开一个1024--5000之间的随机端口并且通知ftp_client在这个端口上传送数据,然后客户端向指定的端口发出请求连接,建立一条数据链路进行数据传输。

安装FTP软件包

代码语言:javascript
复制
#rpm -qa vsftpd          //查看是否已经安装
#yum install -y vsftpd //安装FTP
#rpm -ql vsftpd          //列出安装文件如下
/etc/logrotate.d/vsftpd.            vsftpd的日志文件 
/etc/pam.d/vsftpd                    PAM认证文件 
/etc/rc.d/init.d/vsftpd              启动脚本 
/etc/vsftpd                          vsftpd的配置文件存放的目录 
/etc/vsftpd/ftpusers                禁止使用vsftpd的用户列表文件 
/etc/vsftpd/user_list                禁止或允许使用vsftpd的用户列表文件 
/etc/vsftpd/vsftpd.conf              主配置文件 
/etc/vsftpd/vsftpd_conf_migrate.sh  vsftpd操作的一些变量和设置 
/usr/sbin/vsftpd                    vsftpd的主程序

FTP安全设置

1.为了安全应该禁止匿名用户的登录:将配置文件的anonymous_enable参数设为NO,屏蔽匿名用户上传,创建,删除的功能

代码语言:javascript
复制
#vi  /etc/vsftpd/vsftpd.conf 
anonymous_enable=NO 
#anon_upload_enable=YES      上传 
#anon_mkdir_write_enable=YES    创建 
#anon_other_write_enable=YES    删除 
#service vsftpd restart    //重启FTP服务器

2.为加强安全设置:限制系统用户锁定在家目录:

代码语言:javascript
复制
#vi  /etc/vsftpd/vsftpd.conf 
chroot_list_enable=YES 
chroot_list_file=/etc/vsftpd/chroot_list  //把需要限制的用户加入/etc/vsftpd/chroot_list即可

3.限制其他系统用户不能登录ftp:

代码语言:javascript
复制
#cat /etc/vsftpd/ftpusers   //ftpusers是禁止使用FTP用户列表。
#echo "uuu" >>/etc/vsftpd/ftpusers  此时viong不能登录ftp  //这样uuu用户将不能使用FTP

4.使用FTP的配置文件/etc/vsftpd/user_list来控制只有那些用户可以登录FTP:

代码语言:javascript
复制
/etc/vsftpd/user_list 用于存放哪些用户才能登录系统: 
#vi /etc/vsftpd/vsftpd.conf 
#在userlist_enable=YES 的后面添加 
userlist_deny=NO 
userlist_file=/etc/vsftpd/user_list

5.搭建支持SSL加密传输的vsftpd:

首先检查vsftpd软件是否支持SSL:

代码语言:javascript
复制
#ldd /usr/sbin/vsftpd |grep libssl
libssl.so.6 => /lib/libssl.so.6 (0xf7f27000)   ==说明此版本支持
#openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem   //生成vsftpd.pem证书

#vi /etc/vsftpd/vsftpd.conf   //设置主配置文件参数
ssl_enable=YES                                      //是否启用 SSL,默认为no
allow_anon_ssl=NO                                 //是否允许匿名用户使用SSL,默认为no
force_local_data_ssl=YES                       //非匿名用户传输数据时是否加密,默认为yes
force_local_logins_ssl=YES                     //非匿名用户登陆时是否加密,默认为yes
ssl_tlsv1=YES                                          //是否激活tls v1加密,默认yes
ssl_sslv2=YES                                         //是否激活sslv2加密,默认no
ssl_sslv3=YES                                         //是否激活sslv3加密,默认no
rsa_cert_file=/etc/vsftpd/vsftpd.pem          //rsa证书的位置

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • FTP工作模式简介
  • 安装FTP软件包
  • FTP安全设置
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档