FTP
一:FTP
全称“文件传输协议”,纯属文件。
架构C/S 端口:TCP20(传输文件),TCP21(建立连接)
二: 两种文件传输方式
ASCII码和Binary方式
三:两种工作模式
1,主动模式(Active-Mode)
客户端开启一个大于1024的随机端口n,连接指服务器的TCP21号端口。通过连接,告知服务器,自己的数据传输端口为N+1。服务器使用TCP20号端口,主动连接客户端的n+1号端口后,进行数据传输。
2.被动模式(Rassive)
客户端开启一个大于1024的随机端口n,连接至服务器的TCP21号,通过连接,向服务器发送PASA指令,并告知服务器自己的数据传输端口为n+1.服务器端也开启一个大于1024的随机端口,并通过已经建立的连接告知客户端自己的数据传输端口为x,客户端使用n+1号端口连接至服务的X端口,进行数据传输
四:配置FTP服务器
1.安装软件 yum -y install vsftpd
2.启动服务 systemctl start vsftpd
3.查看服务状态 systemctl status vsftpd
4.查看vsftpd服务的端口
Netstat -lantu | grep 21
Lsof -i tcp:21
五:配置FTP客户端
1.安装软件 yum -y install ftp
2.使用匿名账户连接至服务器
ftp 服务器IP/主机名
账户名:ftp 密码:随便
注:匿名账户,默认的登录目录为FTP服务器上的/var/ftp
匿名账户,只能下载文件,没有上传,删除,创建目录的权限。
3.允许匿名账户上传文件,创建目录,删除文件或目录
(1)在服务器端
修改ftp的配置文件:vim /etc/vsftpd/vsftpd.conf
取消注释anon_upload_enble=YES
取消注释 anon_mkdir_write_enable_YES
添加:anon_other_write_enable=YES
Chown ftp.ftp /var/ftp/pub
重启服务:systemctl restart vsftpd
(2)在客户端
ftp 192.168.1.1
六:使用本地实体账户登录
1.配置ftp服务器端
(1)安装软件 yum -y install vsftpd
(2)重启服务 systemctl restart vsftpd
2.配置ftp客户端
(1)安装软件 yum - y install ftp
(2)连接至服务器
ftp 192.168.1.1
账户名:服务器上具体的某一账户
密码:账户对应的密码
注:实体账户登录到FTP服务器的默认位置为实体账户的家目录
实体账户具有上传,下载,创建目录,删除文件或目录的权限
七:虚拟账户
1.创建文本文件,添加虚拟账户的账户名及密码
Vim /root/f1.txt
文件内容:虚拟账户名 密码
例:test 123
2.生成验证的数据库
db_load -T -t hash -f /root/f1.txt /etc/vsftabd/f.db
3.设置验证文件
(1)将原有验证文件备份
Cp /etc/pam.d/vsftpd /etc/pam.d/vsftab/bak
(2)生成验证文件
cp /usr/share/doc/vsftpd-*/EXAMPLE/VIRTUAL_USERS/vsftpd.pam /etc/pam.d/vsftpd
(3) 编辑验证文件
Vim /etc/pam.d/vsftpd
删除验证模块前的路径,指定验证使用的数据库文件
Auth required pam_userdb.so db=/etc/vsftpd/f1
Account required pam_userdb.so db=/etc/vsftpd/f1
4.创建实体账户
Useradd aa
修改实体账户家目录权限
Chmod -R 555 /home/aa
5.修改配置文件
Vim /etc/vsftpd/vsftpd.conf
在文件末尾添加
Guest_enable=YES
Guest_username=aa
6.启动服务
Systemctl restart csftpd
7.在客户端
ftp 192.168.1.1
用户名:test
密码:123
八:chroot
修改用户的/根目录
1.修改配置文件
vim /etc/vsftpd/vsftpd.conf
开启以下几行注释:
Chroot_local_user=YES
Chroot_list_enable=YES
Chroot_list_file=/etc/vsftpd/chroot_list
2.生成chroot_list文件
Vim /etc/vsftpd/chroot_list
将不被chroot的本地实体账户写入文件中
例:aa
3.重启服务:systemctl restart vsftpd
4.客户端测试:ftp 192.168.1.1
使用aa和bb 账户分别测试
注:如果被chroot的账户无法登陆,在服务端的配置文件末尾添加
Echo “allow_writeable_chroot=YES” >> /etc/vsftpd/vsftpd.conf
重启服务 systemctl restart vsftpd
九:禁止用户登录
可以通过设置/etc/vsftpd/ftpusets和/etc/vsftpd/user_list两个文件控制用户的登录
十:排错
如果vsftpd.service服务无法启动(启动失败),通常是由于配置文件编辑错误导致的
可以通过允许一行命令,来查看/etc/vsftpd/vsftpd.conf文件中编辑错误的选项或参数
/usr/sbin/vsftpd /etc/vsftpd/vsftpd.c
一:FTP
全称“文件传输协议”,纯属文件。
架构C/S 端口:TCP20(传输文件),TCP21(建立连接)
二: 两种文件传输方式
ASCII码和Binary方式
三:两种工作模式
1,主动模式(Active-Mode)
客户端开启一个大于1024的随机端口n,连接指服务器的TCP21号端口。通过连接,告知服务器,自己的数据传输端口为N+1。服务器使用TCP20号端口,主动连接客户端的n+1号端口后,进行数据传输。
2.被动模式(Rassive)
客户端开启一个大于1024的随机端口n,连接至服务器的TCP21号,通过连接,向服务器发送PASA指令,并告知服务器自己的数据传输端口为n+1.服务器端也开启一个大于1024的随机端口,并通过已经建立的连接告知客户端自己的数据传输端口为x,客户端使用n+1号端口连接至服务的X端口,进行数据传输
四:配置FTP服务器
1.安装软件 yum -y install vsftpd
2.启动服务 systemctl start vsftpd
3.查看服务状态 systemctl status vsftpd
4.查看vsftpd服务的端口
Netstat -lantu | grep 21
Lsof -i tcp:21
五:配置FTP客户端
1.安装软件 yum -y install ftp
2.使用匿名账户连接至服务器
ftp 服务器IP/主机名
账户名:ftp 密码:随便
注:匿名账户,默认的登录目录为FTP服务器上的/var/ftp
匿名账户,只能下载文件,没有上传,删除,创建目录的权限。
3.允许匿名账户上传文件,创建目录,删除文件或目录
(1)在服务器端
修改ftp的配置文件:vim /etc/vsftpd/vsftpd.conf
取消注释anon_upload_enble=YES
取消注释 anon_mkdir_write_enable_YES
添加:anon_other_write_enable=YES
Chown ftp.ftp /var/ftp/pub
重启服务:systemctl restart vsftpd
(2)在客户端
ftp 192.168.1.1
六:使用本地实体账户登录
1.配置ftp服务器端
(1)安装软件 yum -y install vsftpd
(2)重启服务 systemctl restart vsftpd
2.配置ftp客户端
(1)安装软件 yum - y install ftp
(2)连接至服务器
ftp 192.168.1.1
账户名:服务器上具体的某一账户
密码:账户对应的密码
注:实体账户登录到FTP服务器的默认位置为实体账户的家目录
实体账户具有上传,下载,创建目录,删除文件或目录的权限
七:虚拟账户
1.创建文本文件,添加虚拟账户的账户名及密码
Vim /root/f1.txt
文件内容:虚拟账户名 密码
例:test 123
2.生成验证的数据库
db_load -T -t hash -f /root/f1.txt /etc/vsftabd/f.db
3.设置验证文件
(1)将原有验证文件备份
Cp /etc/pam.d/vsftpd /etc/pam.d/vsftab/bak
(2)生成验证文件
cp /usr/share/doc/vsftpd-*/EXAMPLE/VIRTUAL_USERS/vsftpd.pam /etc/pam.d/vsftpd
(3) 编辑验证文件
Vim /etc/pam.d/vsftpd
删除验证模块前的路径,指定验证使用的数据库文件
Auth required pam_userdb.so db=/etc/vsftpd/f1
Account required pam_userdb.so db=/etc/vsftpd/f1
4.创建实体账户
Useradd aa
修改实体账户家目录权限
Chmod -R 555 /home/aa
5.修改配置文件
Vim /etc/vsftpd/vsftpd.conf
在文件末尾添加
Guest_enable=YES
Guest_username=aa
6.启动服务
Systemctl restart csftpd
7.在客户端
ftp 192.168.1.1
用户名:test
密码:123
八:chroot
修改用户的/根目录
1.修改配置文件
vim /etc/vsftpd/vsftpd.conf
开启以下几行注释:
Chroot_local_user=YES
Chroot_list_enable=YES
Chroot_list_file=/etc/vsftpd/chroot_list
2.生成chroot_list文件
Vim /etc/vsftpd/chroot_list
将不被chroot的本地实体账户写入文件中
例:aa
3.重启服务:systemctl restart vsftpd
4.客户端测试:ftp 192.168.1.1
使用aa和bb 账户分别测试
注:如果被chroot的账户无法登陆,在服务端的配置文件末尾添加
Echo “allow_writeable_chroot=YES” >> /etc/vsftpd/vsftpd.conf
重启服务 systemctl restart vsftpd
九:禁止用户登录
可以通过设置/etc/vsftpd/ftpusets和/etc/vsftpd/user_list两个文件控制用户的登录
十:排错
如果vsftpd.service服务无法启动(启动失败),通常是由于配置文件编辑错误导致的
可以通过允许一行命令,来查看/etc/vsftpd/vsftpd.conf文件中编辑错误的选项或参数
/usr/sbin/vsftpd /etc/vsftpd/vsftpd.c