安装ftp客户端及ftp文件传输服务器
FTP在OSI模型的第七层,TCP模型第四层,即应用层
包含两个通道:控制通道,端口21;数据通道,端口20
- 主动模式(PORT模式)
- 客户端对服务器发送请求,连接的是服务器的21号端口,客户端口号N是大于1024的随机端口
- 服务器的21端口给予客户端响应数据流
- 服务器打开20号端口去连接客户端的N+1的端口
- 客户端给予响应,数据开始传输
- 被动模式(PASV模式)
- 客户端对服务器发起的请求连接的是服务器的21号端口,客户端的端口号N是大于1024的随机端口
- 服务器的21号端口给予客户端响应
- 服务端打开大于1024的随机端口,客户端使用N+1端口去连接服务器打开的端口
- 服务器给予响应,数据传输
三种远程登录的方式:匿名登录、账号登录、虚拟用户
服务端:
- yum install vsftpd -y
- vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES 开启匿名
- /etc/init.d/vsftpd start
- netstat -anlpt|grep vsftpd
- cd /var/ftp/ 站点目录
- mkdir test 准备测试文件
- echo "gaigai" >> test/text.txt
- ftp://192.168.1.20/test/ windows下访问
- yum install -y ftp linux客户端
ftp 192.168.1.20
10. vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO 不允许匿名用户
11. /etc/init.d/vsftpd restart
12. 建立一个ftp本地系统用户,此用户不能登陆系统,且只能访问自己主目录下的文件
useradd -d /var/ftp/test -g ftp -s /sbin/nologin ftpuser
-d命令是指定用户主目录,-g是指定用户分组
- tail -1 /etc/passwd
- echo 123456|passwd --stdin ftpuser
- mkdir -p /var/ftp/test
- chown -R ftpuser:root /var/ftp/test/
- echo chegnye > /var/ftp/test/test.txt
- ftp://192.168.1.20/ windos登录查看(需下载)
虚拟用户方式:
多个用户同时访问某一个目录,同时对同一目录下有着不同的权限
- mkdir /var/www/mis
- useradd -d /var/www/mis mis
- chown mis.mis /var/www/mis/
- vim /etc/pam.d/vsftpd 最后添加两行
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
- vim /etc/vsftpd/vuser_passwd.txt 创建名文密码
gaigai 用户名
211570xcy 密码
gaigai 用户名
123456 密码
- cd /etc/vsftpd/
- db_load -T -t hash -f vuser_passwd.txt vuser_passwd.db 生成密码db (没有db命令的可以先yum -y install db4-utils)
- chmod 600 /etc/vsftpd/vuser_passwd.db
- mkdir vuser_conf
- vim vuser_conf/gaigai # 设置虚拟用户的权限
local_root=/var/www/mis/gaigai 指定目录
write_enable=YES 写权限
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
- vim vuser_conf/gaigai
anon_world_readable_only=NO #关闭只可读
anon_upload_enable=YES #允许上传
anon_mkdir_write_enable=NO #允许新建目录
anon_other_write_enable=NO #允许修改目录/文件名称,删除
local_root=/var/ftp/www/gaigai
- vim /etc/vsftpd/vsftpd.conf 去注释
anonymous_enable=NO #禁止匿名用户
ascii_upload_enable=YES 上传
ascii_download_enable=YES 下载
chroot_local_user=YES
#是否将所有用户限制在主目录,YES为启用 NO禁用
最后行加入
guest_enable=YES #开启虚拟账户功能
guest_username=mis #虚拟账号映射到本地哪个用户
pam_service_name=vsftpd #加载pam.d中哪个文件的机制
user_config_dir=/etc/vsftpd/vuser_conf #虚拟用户的单个权限
- /etc/init.d/vsftpd restart
#是否启动限制用户的名单 YES为启用 NO禁用
chroot_list_file=/etc/vsftpd/chroot_list
#是否限制在主目录下的用户名单
chroot_local_user=YES |
chroot_local_user=NO |
|
chroot_list_enable=YES |
1.所有用户都被限制在其主目录下 2.使用chroot_list_file指定的用户列表,这些用户作为“例外”,不受限制 |
1.所有用户都不被限制其主目录下 2.使用chroot_list_file指定的用户列表,这些用户作为“例外”,受到限制 |
chroot_list_enable=NO |
1.所有用户都被限制在其主目录下 2.不使用chroot_list_file指定的用户列表,没有任何“例外”用户 |
1.所有用户都不被限制其主目录下 2.不使用chroot_list_file指定的用户列表,没有任何“例外”用户 |
- touch /etc/vsftpd/chroot_list
- echo "gaigai is a boy" >> /var/www/mis/gaigai/a.txt
- echo "gaigia is a boy" >> /var/www/mis/gaigai/a.txt
- chmod 777 -R /var/www/mis/gaigai/
- chmod 777 -R /var/www/mis/gaigai/
- /etc/init.d/vsftpd restart
- setenforce 0
配置用户可登陆名单,并将新建用户添加进入ftp可登陆名单中
- cd /etc/vsftpd
- vim vsftpd.conf
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
- systemctl start vsftpd
- netstat -anlpt|grep vsftpd
- systemctl stop firewalld.service
- systemctl status firewalld.service
linux客户端:
1.rpm -Uvh ftp-0.17-54.el6.x86_64.rpm 或 yum install -y ftp
2.ftp
open ip(此ip的vsftpd服务要开)
然后输入用户名及密码
在/root/yint下运行的ftp命令,则文件都下载到了/root/yint 下
get下载get [remote-file] [local-file]
put上传put local-file [remote-file]
scp /home/a.tar.tz root@192.168.0.2:/home/tmp/