搭建FTP服务器

来源:互联网 发布:电子书杂志制作软件 编辑:程序博客网 时间:2024/06/16 17:07
FTP 是仅基于 TCP 的服务,不支持 UDP。与众不同的是 FTP
使用两个端口,一个数据端口和一个命令端口,也可叫做控制端口。通常来说这两个端口是
21(命令端口)和 20(数据端口)。由于 FTP 工作方式的不同,数据端口并不总是 20,分为
主动 FTP 和被动 FTP。
1. 主动 FTP
主动方式的 FTP 客户端从一个任意的非特权端口 N(N>1024)连接到 FTP 服务器的命令
端口 21,然后客户端开始监听端口 N+1,并发送 FTP 命令“port N+1”到 FTP 服务器。接着
服务器会从自己的数据端口(20)连接到客户端指定的数据端口(N+1)
服务器端开启的是 20 和 21 端口,客户端开启的是 1024 以上的端口。
2. 被动 FTP
为了解决服务器发起到客户的连接的问题采取了被动方式,或叫做 PASV,当客户端通知
器处于被动模式时才启用。在被动方式 FTP 中,命令连接和数据连接都由客户端发起,
当开启一个 FTP 连接时,客户端打开两个任意的非特权本地端口(N > 1024 和 N+1)第一
个端口连接服务器的 21 端口,但与主动方式的 FTP 不同,客户端不会提交 PORT 命令并允许
服务器来回连接它的数据端口,而是提交 PASV 命令。这样做的结果是服务器会开启一个任意
的非特权端口(P > 1024),并发送 PORT P 命令给客户端。然后客户端发起从本地端口 N+1到服务器端口
P的连接用来传送数据,此时服务端的数据端口不再是 20 端口。此时服务端
开启的是 21 命令端口和大于 1024 的数据连接端口,客户端开启的是大于 1024 的两个端口。
主动模式是从服务器端向客户端发起连接;而被动模式是客户端向服务器端发起连接。两者的共同点是都使用 21 端口进行用户验证及管理,差别在于传送数据的方式不同。
1.安装:
#使用yum工具安装vsftp软件
[root@CentOS Packages]# yum install -y vsftpd

2. 匿名 FTP 设置
vi /etc/vsftpd/vsftpd.conf
#取消配置文件中的注释并显示有效行

#允许匿名用户登录和上传
anonymous_enable=YES
anon_upload_enable=YES

#允许写(默认都开了,检查下)
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES

#允许在监听(默认都开了,检查下)
listen=YES
#不允许IPv6上的监听
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
#启动vsftpd
[root@CentOS Packages]# systemctl start vsftpd

#将默认目录赋予用户ftp权限以便可以上传文件
[root@CentOS Packages]# chown -R ftp.users /var/ftp/pub/
#登录ftp
[root@CentOS Packages]# ftp 192.168.19.1 21
##输入匿名用户名
Name (192.168.19.1:root): anonymous
密码为空
3.实名 FTP 设置
实名认证的用户信息在/etc/vsftpd目录下
编辑配置文件
l绑定本级IP
listen=YES
listen_address=192.168.1.130

禁止匿名用户登录
anonymous_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO

安装proftpd
rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-8.noarch.rpm
yum install proftpd
默认目录赋予用户ftp权限
mkdir -p /data/user1
mkdir -p /data/user2
useradd -d /data/user1 -m user1
useradd -d /data/user2 -m user2
chmod -R
vi /etc/proftpd.conf
<VirtualHost 10.128.10.111>
DefaultRoot             /data/guest
AllowOverwrite          no
<Limit STOR MKD RETR>
AllowAll
</limit>
<Limit DIRS WRITE READ DELE RMD>
AllowUser user1 user2
DenyAll
</Limit>
</VirtualHost>
chown -R user1.user1 /data/user1
service proftpd start
测试:
ftp 10.128.10.111
用户名user1
密码123456