- ftp工作模式:
1.1主动模式:
FTP客户端连接到FTP服务端21端口,发送用户名和密码,客户端随机开放一个高位端口(1024以上),发送PORT命令到FTP服务端,告诉服务端客户端采用被动模式并开放端口,FTP服务端收到PORT主动模式命令和端口号后,通过20端口和客户端开放的端口连接,发送数据
2.2被动模式:
FTP客户端连接到FTP服务端21端口,发送用户名和密码,发送PASV命令到FTP服务端,服务端再本地开启一个高位端口(1024以上),让后把开放的端口告诉客户端,客户端连接到服务端开放的端口进行数据传输。、
- Vsftp服务搭建:
yum install vsftpd -y # 安装vsftpd
-
- Vsftpd配置匿名用户上传下载(匿名用户默认访问/var/ftp/pub目录)
[root@Hadoop vsftpd]# sed -n '/^ano/p' vsftpd.conf
anonymous_enable=YES # 允许你们用户登入
anon_upload_enable=YES # 允许匿名用户上传
anon_mkdir_write_enable=YES # 允许匿名用户读写和创建目录
同时给/var/ftp/pub目录777权限
上传一个文件
-
- 配置用户名密码登入,修改配置文件vsftpd.conf
[root@Hadoop vsftpd]# egrep -v "^$|^#" vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
local_root=/var/www/html
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
2.2.1创建/etc/vsftpd/chroot_list文件(指定需要囚禁家目录的用户)
User1
User2
2.2.2给/var/www/html目录777权限,重启vsftpd并测试用户名登入
2.3 配置ftp不同用户囚禁于不同家目录
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
local_root=/var/www/html
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
user_config_dir=/etc/vsftpd/userconfig
2.3.1 创建/etc/vsftpd/userconfig目录
Echo “local_root=/var/www/html/user1” > /etc/vsftpd/userconfig/user1
Echo “local_root=/var/www/html/user1” > /etc/vsftpd/userconfig/user2
2.3.2 注释/etc/pam.d/vsftpd中
#auth required pam_shells.so
2.3.3 验证登入用户只能访问指定的目录
[root@Hadoop vsftpd]# useradd -s /sbin/nologin user1
[root@Hadoop vsftpd]# useradd -s /sbin/nologin user2