FTP原理
ftp使用场合:用于文件的传输
ftp的作用:用于文件的上传和下载。
ftp属于tcp,端口号:20,21
21:控制层面,用于账户密码验证,权限的验证。
20:数据层面,用于文件上传和下载。
ftp:匿名、系统、虚拟账户。
匿名账户:登录名:ftp、anonymous。不验证密码即可登录。
系统账户:本身系统已存在的账户、密码作验证。
验证方式:
1.验证的/etc/passwd和/etc/shadow
2.验证的是用户列表(用户必须是系统创建),相当于白名单
默认root账户不允许登录
虚拟账户:预定义的列表账户。(以前系统未创建过的)
FTP匿名账户的部署过程:
systemctl stop firewalld.service #关闭防火墙
setenforce 0 #关闭核心防护
[root@server1 ~]# rpm -ivh /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm 或 yum -y install vsftpd.x86_64(安装vsftp)
[root@server1 ~]# ls -l /var/ 查看ftp文件
drwxr-xr-x. 3 root root 17 9月 8 11:56 ftp
修改属主和属组,并创建文件
[root@server1 ~]# ls -l /var/ 查看ftp文件
drwxr-xr-x. 3 root root 17 9月 8 11:56 ftp
chown -R ftp.ftp /var/ftp/pub/
chmod -R 755 /var/ftp/pub/
[root@server1 ~]# cd /var/ftp/pub/ 再该文件夹下创建一些文件做上传下载的实验
[root@server1 pub]# echo abc123 >a.txt
[root@server1 pub]# echo abc123 >b.txt
[root@server1 pub]# ls -lh
总用量 8.0K
-rw-r--r--. 1 root root 7 9月 8 12:00 a.txt
-rw-r--r--. 1 root root 7 9月 8 12:01 b.txt
root@server1 pub]# chmod -R 755 /var/ftp/pub/ 给创建的文件附加属性
[root@server1 pub]# chown -R ftp.ftp /var/ftp/pub/
[root@server1 pub]# cd /var/ftp/pub/ 查看效果
[root@server1 pub]# ls -lh
总用量 8.0K
-rwxr-xr-x. 1 ftp ftp 7 9月 8 12:00 a.txt
-rwxr-xr-x. 1 ftp ftp 7 9月 8 12:01 b.txt
[root@server1 pub]# cd .. 再次验证权限是否为755
[root@server1 ftp]# ls -lh
总用量 0
drwxr-xr-x. 2 ftp ftp 32 9月 8 12:01 pub
#修改配置文件为匿名用户登录
vi /etc/vsftpd/vsftpd.conf
16 #local_enable=YES
23 #local_umask=022
33 anon_mkdir_write_enable=YES
12 anonymous_enable=YES
13 anon_umask=022
116 listen=YES
125 listen_ipv6=NO
输入[root@server1 ~]# grep -v "#" /etc/vsftpd/vsftpd.conf | grep -v "^$" 与下面的命令进行比对
[root@server1 ~]# grep -v "#" /etc/vsftpd/vsftpd.conf | grep -v "^$"
anonymous_enable=YES
anon_umask=022
write_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES
anon_mkdir_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
验证是否一致
开启ftp服务,并查看端口号
[root@server1 ~]# systemctl start vsftpd 服务重启
[root@server1 ~]# netstat -anpt | grep vsftpd
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 12646/vsftpd
启动其他设备 即客户机 以下是验证下载并上传文件
[root@server1 ~]# yum -y install ftp 安装ftp服务
[root@server1 ~]# ftp 20.0.0.10 连接服务端
Connected to 20.0.0.10 (20.0.0.10).
220 (vsFTPd 3.0.2)
Name (20.0.0.10:root): ftp 输入连接方式ftp
331 Please specify the password.
Password: 默认无密码
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls -lh
227 Entering Passive Mode (20,0,0,10,167,73).
150 Here comes the directory listing.
drwxr-xr-x 2 14 50 32 Sep 08 04:01 pub
226 Directory send OK.
ftp> cd pub
250 Directory successfully changed.
ftp> ls -lh 查看服务端文件
227 Entering Pass