阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux中搭建一个ftp服务器详解

103次阅读
没有评论

共计 3846 个字符,预计需要花费 10 分钟才能阅读完成。

详解 Linux 中搭建一个 ftp 服务器。

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
#rpm -qa vsftpd 查看是否已经安装

#yum install -y vsftpd

#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 的主程序
其他一些说明文档和手册文件略!
/var/ftp                            匿名用户主目录
/var/ftp/pub                        匿名用户的下载目录

#service vsftpd start
#chkconfig –level vsftpd
#chkconfig –level 2345 vsftpd on

2 匿名用户的登录名:ftp(anonymous)密码空,登录的目录为 /var/ftp
 用匿名用户登录的时候默认是只有下载的权限, 没有上传, 创建和删除的权限:

#vim  /etc/vsftpd/vsftpd.conf 
anon_upload_enable=YES      上传
anon_mkdir_write_enable=YES    创建
anon_other_write_enable=YES    删除
#service vsftpd restart

为了安全应该禁止匿名用户的登录:
123456 #vim  /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
#anon_upload_enable=YES      上传
#anon_mkdir_write_enable=YES    创建
#anon_other_write_enable=YES    删除
#service vsftpd restart

3 创建一个直接登录系统用户来登录 ftp:
#useradd -s /sbin/nologin viong
#passwd viong

用户具有 上传 创建 下载 切换目录
——————————————————————
4 加强 vsftp 安全设置:
限制系统用户锁定在家目录:
#vim  /etc/vsftpd/vsftpd.conf
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list  限制更多的系统用户,把需要限制的用户加入 /etc/vsftpd/chroot_list 中即可
#touch /etc/vsftpd/chroot_list
#cut -d: -f 1 /etc/passwd >>/etc/vsftpd/chroot_list 将本地用户都加入到 chroot_list

限制重要系统用户不能登录 ftp:
#cat /etc/vsftpd/ftpusers  默认已经添加了系统中一些比较重要的用户
#echo “viong” >>/etc/vsftpd/ftpusers  此时 viong 不能登录 ftp

利用 ftp 用户策略允许登录 ftp 的系统用户:
/etc/vsftpd/user_list 只有在这个文件中的用户才能登录系统:
#vim /etc/vsftpd/vsftpd.conf
# 在 userlist_enable=YES 的后面添加
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list

设置登录 ftp 目标 ip 地址:用 iptables 设置

————————————— 
搭建支持 SSL 加密传输的 vsftpd:
#openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem    生成证书
#vim /etc/vsftpd/vsftpd.conf
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=YES
ssl_sslv3=YES
rsa_cert_file=/etc/vsftpd/vsftpd.pem

下面是 ssl 参数一些定义,根据自己需求去修改:

ssl_enable=yes/no            // 是否启用 SSL, 默认为 no
allow_anon_ssl=yes/no        // 是否允许匿名用户使用 SSL, 默认为 no
rsa_cert_file=/path/to/file      //rsa 证书的位置
dsa_cert_file=/path/to/file      //dsa 证书的位置
force_local_logins_ssl=yes/no    // 非匿名用户登陆时是否加密, 默认为 yes
force_local_data_ssl=yes/no    // 非匿名用户传输数据时是否加密, 默认为 yes
force_anon_logins_ssl=yes/no    // 匿名用户登录时是否加密, 默认为 no
force_anon_data_ssl=yes/no    // 匿名用户数据传输时是否加密, 默认为 no
ssl_sslv2=yes/no              // 是否激活 sslv2 加密, 默认 no
ssl_sslv3=yes/no                // 是否激活 sslv3 加密, 默认 no
ssl_tlsv1=yes/no                // 是否激活 tls v1 加密, 默认 yes
ssl_ciphers= 加密方法            // 默认是 DES-CBC3-SHA

#service vsftpd restart

用 flashftp 连接:
连接类型为:FTP 使用公开 SSL(验证 SSL)
地址:192.168.137.130:21
登录类型:普通
用户:viong 
密码:123

ftp 虚拟用户请看:http://www.linuxidc.com/Linux/2015-06/118443.htm

玩转 vsftpd 服务器的四大高级配置:http://www.linuxidc.com/Linux/2013-09/90565.htm

vsFTPd 配置教程:http://www.linuxidc.com/Linux/2013-09/90562.htm

CentOS 7 安装配置 FTP 服务器  http://www.linuxidc.com/Linux/2014-11/109233.htm

Ubuntu 实用简单的 FTP 架设 http://www.linuxidc.com/Linux/2012-02/55346.htm

Ubuntu 上架设 FTP 服务器和 Apache 服务器 http://www.linuxidc.com/Linux/2011-04/35295.htm

Ubuntu 13.04 安装 LAMP\vsftpd\Webmin\phpMyAdmin 服务及设置 http://www.linuxidc.com/Linux/2013-06/86250.htm

RHEL6 平台下 SeLinux 和 vsftpd 的匿名上传的简单案例 http://www.linuxidc.com/Linux/2013-04/82300.htm

Linux 系统 vsftpd 源码安装 http://www.linuxidc.com/Linux/2013-03/81475.htm

openSUSE 13.2/13.1 下安装配置 FTP 服务器 vsftpd  http://www.linuxidc.com/Linux/2014-12/110070.htm

本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-06/118442.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计3846字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中