一、ftp服务
找到服务器
yum install vsftpd lftp -y 下载vsftpd lftp
systemctl start vsftpd 打开服务
netstat -antlupe | grep ftp 查看接口
systemctl start firewalld 打开火墙
firewall-cmd --get-service 打开添加服务
firewall-cmd --permanent --add-service=ftp 添加白名单ftp
firewall-cmd --list-all 查看白名单
systemctl enable vsftpd 开机自启动
可以登陆
rpm -qc vsftpd 查看服务的配置文件vim /etc/vsftpd/vsftpd.conf 修改配置文件
systemctl restart vsftpd 改完之后重起服务
lftp 172.25.254.110 -u student student用户登陆
###配置文件里面的东西
##做实验前先改一个东西
vim /etc/sysconfig/selinux
改成::SELINUX=disable 之后reboot
anonymous_enable=YES 允许匿名用户登陆 反之NO
local_enable=YES 允许本地用户登陆
write_enable=YES 本地用户可读写
本地用户可以上传
anon_upload_enable=YES 允许匿名用户上传
[root@localhost student]# chgrp ftp /var/ftp/pub/
[root@localhost student]# chmod 775 /var/ftp/pub/
put /etc/passwd 上传/etc/passwd
530 密码问题
553 权限问题(我允许你进来,但你没有能力)
anon_other_write_enable=YES 可以删除
anon_word_readable_only=NO 允许匿名用户下载
anon_mkdir_write_enable=YES 可以建立目录
###用户登陆的相关配置
1.修改默认用户,即以用户student的身份登陆
chown_uploads=YES
chown_username=student
2.匿名用户的最大上传速度 ##单位byte
anon_max_rate=102400
3.匿名用户登陆的默认目录修改
anon_root=/mnt
local_root=/mnt ##本地用户登陆的默认目录
4.最多同时在线人数设定
max_clients=3
5.修改本地用户登陆后,文件默认权限修改
local_umask=022
6.本地用户登陆,锁定在用户加目录
chroot_local_user=YES
注意:此时要取消家目录文件W权限,否则会500报错,权限太大
[kiosk@foundation8 Desktop]$ lftp 172.25.254.108 -u student
Password:
lftp student@172.25.254.108:~> ls
ls: Login failed: 500 OOPS: vsftpd: refusing to run with writable root inside chroot()
用户登陆,可切换目录,如切到根目录
chroot_local_user=NO
[kiosk@foundation8 Desktop]$ lftp 172.25.254.108 -u student
Password:
lftp student@172.25.254.108:~> cd /
cd ok, cwd=/
7.本地用户登陆黑/白名单
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
注意:当锁定用户家目录(YES)时,/etc/vsftpd/chroot_list是白名单
当不锁定用户家目录(NO)时,/etc/vsftpd/chroot_list是黑名单
8.黑名单配置文件
ftpusers ##永久黑名单,一旦加入,任何操作都不能洗白
user_list ##临时黑名单,可修改配置文件,变为白名单
userlist_enable=YES ##开启userlist列表
userlist_deny=NO ##默认所有用户加入黑名单,白名单用户可登陆
注意:若用户既在永久黑名单,也在白名单,此用户不能登陆!!
六、虚拟用户登陆
1.建立虚拟用户
vim /etc/vsftpd/users ##名字可自定义
hello
123 ##注意:不能有空格
2.对虚拟用户和密码加密
db_load -T -t hash -f users users.db
会生成 /etc/vsftpd/users.db文件
3.建立ftp验证文件
/etc/pam.d/usercheck
account required pam_userdb.so db=/etc/vsftpd/users ##用户认证
auth required pam_userdb.so db=/etc/vsftpd/users ##密码认证
4.修改配置文件,使虚拟用户登陆
pam_service_name=usercheck ##pam读取虚拟用户文件usercheck
guest_enable=YES ##开启虚拟用户登陆
guest_username=ftp ##使虚拟用户以ftp映射用户登陆,
5.配置虚拟用户具备独立的家目录
建立虚拟用户的家目录(例:两个用户)
mkdir /var/ftpdir/hello/hellodir -p
mkdir /var/ftpdir/nihao/nihaodir -p ##—p 表示上层目录不存在,自动建立
修改配置文件,使虚拟用户登陆到自己独立的家目录
local_root=/var/ftpdir/$USER
user_sub_token=$USER
实验效果如下:
[kiosk@foundation8 Desktop]$ lftp 172.25.254.108 -u hello
Password:
lftp hello@172.25.254.108:~> ls
drwxr-xr-x 2 0 0 6 Apr 18 08:12 hellodir
lftp hello@172.25.254.108:/> exit
[kiosk@foundation8 Desktop]$ lftp 172.25.254.108 -u nihao
Password:
lftp nihao@172.25.254.108:~> ls
drwxr-xr-x 2 0 0 6 Apr 18 08:12 nihaodir
6.虚拟用户分开管理(VIP)
将匿名用户所有的权限关闭
修改配置文件,给指定虚拟用户特殊权限
user_config_dir=/etc/vsftpd/user_conf
在/etc/vsftpd/user_conf目录下建立文件,以虚拟用户名命名
touch hello
[root@localhost user_conf]# cat hello
anon_upload_enable=YES
修改虚拟用户登陆家目录权限
chmod 755 /var/ftpdir/hello/hellodir/
更改虚拟用户登陆家目录组
chgrp student /var/ftpdir/hello/hellodir/