文章目录
1.概述
FTP(File Transfer Protocol,文件传输协议)
典型的c/s架构的应用层协议,需要由服务端软件、客户端软件两部分共同实现文件传输功能。FTP客户端与服务端的连接是可靠的。
默认情况下FTP协议使用TCP端口中的 20和21这两个端口,其中20用于传输数据,21用于传输控制信息。
FTP的两种模式
它支持两种模式,Standard(Active)的主动模式和Passive(PASV)的被动模式。
Standard模式
FTP客户端首先和FTP Server模式,21端口来建立连接,通过这个通道发送指令,客户端需要接收数据的时候再这个通道上发送PORT指令。PORT命令包含了客户端的数据,在传送的时候,服务器通过自己的TCP 20端口发送数据。FTP Server必须和客户端建立一个新的连接用来传输数据。
Passive模式
在建立控制通道的时候和Standard模式类似,当客户端通过发送PASV命令的时候 ,TFPServer打开一个位于1024和5000之间的随机端口并且通知客户端在这个端口上传输数据的请求,然后FTP Server将通过这个端口来进行数据的传输。这个时候FTP Server不在需要建立一个新的和客户端之间的连接。
2.FTP的配置(centos7)
2.1 安装FTP服务
192.168.28.10的centos主机作为FTP服务器用
192.168.28.129的win10主机作为客户端
为服务器搭建服务,安装提供ftp服务的vsftpd软件包
[root@ftp10 ~]# yum install -y vsftpd
2.2 编辑配置文件
/etc/vsftpd/vsftp.cond ftp服务器的主配置文件
/etc/pam.d.vsftpd
/etc/vsftpd/ftpusers 禁止登录用户名单,默认root不能登录
/etc/vsftpd/user_list 可以通过设置只有这个名单里的用户可以登录。如果统一用户同时出现在ftpusers和user_list那么该用户也是被禁止登录的
/var/ftp ftp根目录
/var/ftp/pub 默认登录位置
编辑主要配置文件
12 anonymous_enable=YES 默认开启匿名访问
19 write_enable=YES 开放服务器的写权限(若要上传,必须开启)默认已开启
129 anon_umask=002 设置匿名用户上传数据的权限反掩码(自行插入)
29 #anon_upload_enable=YES 允许匿名用户上传文件,需取消注释
33 #anon_mkdir_write_enable=YES 允许匿名用户创建,需取消注释
130 anon_other_write_enable=YES 允许其它删除、重命名、覆盖等操作,需自行添加
[root@ftp10 vsftpd]# vim vsftpd.conf
如上述修改,前面标有行数
为匿名访问ftp的根目录下的pub子目录设置最大权限,便于匿名用户上传数据
chmod 777 /var/ftp/pub
[root@ftp10 vsftpd]# cd /var/ftp/
[root@ftp10 ftp]# ll
总用量 0
drwxr-xr-x. 2 root root 6 6月 10 2021 pub
[root@ftp10 ftp]# chmod 777 pub/
2.3启动服务,关闭防火墙,监听端口
[root@ftp10 ftp]# systemctl start vsftpd
[root@ftp10 ftp]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
[root@ftp10 ftp]# netstat -natp | grep vsftpd
tcp6 0 0 :::21 :::* LISTEN 8388/vsftpd
2.4 测试FTP服务器功能
匿名登录
到windows客户端匿名登录ftp服务器
在ftp服务器上创建文件
[root@ftp10 ftp]# ls
pub
[root@ftp10 ftp]# cd pub/
[root@ftp10 pub]# ls
[root@ftp10 pub]# echo "centos" >> test1
[root@ftp10 pub]# ls
test1
在客户机上查看
在客户机查看创建的文件内容
在客户机上创建文件上传大ftp服务器
在客户机创建文件失败报错
设置SELinux服务对ftp服务的访问规则策略为允许
setsebool -P ftpd_full_access=on
[root@ftp10 ftp]# setsebool -P ftpd_full_access=on
上传成功ftp服务端可以查看客户端上传文件
直接用ftp:///192.168.28.10查找文件
也可以用网页访问
自建用户,尝试登陆
[root@ftp10 ~]# vim /etc/vsftpd/vsftpd.conf
创建指定的目录
创建目录并赋予权限,然后重新启动ftp服务
[root@ftp10 ~]# vim /etc/vsftpd/vsftpd.conf
[root@ftp10 ~]# mkdir -p /var/www/ky21
[root@ftp10 ~]# chmod 777 /var/www/ky21/
[root@ftp10 ~]# systemctl restart vsftpd
[root@ftp10 ~]# tail -10 /etc/passwd
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
123:x:1000:1000:123:/home/123:/bin/bash
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
zhangsan:x:1001:1001::/data/zhangsan:/bin/bash
lisi:x:1002:1002::/home/lisi:/bin/bash
dhcpd:x:177:177:DHCP server:/:/sbin/nologin
named:x:25:25:Named:/var/named:/sbin/nologin
尝试用windows使用lisi用户去登录ftp
ftp主机创建文件
[root@ftp10 ky21]# ls
[root@ftp10 ky21]# mkdir lisi
[root@ftp10 ky21]# cd lisi/
[root@ftp10 lisi]# ls
[root@ftp10 lisi]# echo "this is lisi" >> lisi
在客户机找到文件
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/76559.html