ftp:// ##文件传输协议
在rhel中
vsftpd
yum install vsftpd(服务) lftp(软件) -y
systemctl start vsftpd
systemctl enable vsftpd
firewall-config ##图形设置火墙不阻止ftp
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
firewall-cmd --list-all ##查看火墙允许那些软件通过
[root@localhost ~]# lftp 172.25.254.133
lftp 172.25.254.133:~> ls
drwxr-xr-x 2 0 0 6 Jun 23 2016 pub
ftp服务的基本信息
软件安装包: vsftpd
默认发布目录: /var/ftp
协议接口: 21/tcp
服务配置文件: /etc/vsftpd/vsftpd.conf
报错id解析:
报错 | 解析 |
---|---|
500 | ##文件系统权限过大 |
530 | ##用户认证失败 |
550 | ##服务本身功能未开放 |
553 | ##本地文件系统权限过小 |
实验前须关闭内核级的加强型防火墙
vim /etc/sysconfig/selinux
改为disabled
reboot
使用getenforce查询
vim /etc/vsftpd/vsftpd.conf ##vsftp设定文件
anonymous_enable=YES|NO ##匿名用户是否可以登陆
local_enable=YES|NO ##本地用户是否可以登陆
write_enable=YES|NO ##ftp是否对登陆用户可写
vim /etc/vsftpd/vsftpd.conf
write_enable=YES
anon_upload_enable=YES
chgrp ftp /var/ftp/pub
chmod 775 /var/ftp/pub
vim /etc/vsftpd/vsftpd.conf
anon_root=/westos ##修改匿名用户家目录为/westos
创建目录/westos,并建立文件
匿名用户登陆,会进入设定的家目录,看到之间建立的文件
anon_umask=022
anon_mkdir_write_enable=YES|NO ##YES表示可以建立
anon_world_readable_only=YES|NO ##设定参数值为NO表示匿名用户可以下载
anon_other_write_enable=YES|NO
chown_uploads=YES
chown_username=student ##设定匿名以student用户身份
chown_upload_mode=0644 ##设定上传文件的权限为644
修改后匿名用户上传文件权限为644,uid为student的1000
anon_max_rate=102400
max_clients=1 ##设定最大连接个数为1个
第一个用户student连接成功
第二个用户root无法连接
local_enable=YES|NO ##用户本地登陆限制,YES允许,NO拒绝
write_enable=YES|NO ##本地用户写权限限制,YES允许,NO拒绝
local_root=/directory ##写那进入后就在那
local_umask=xxx
所有用户被锁定到自己家目录中
chroot_local_user=YES
chmod u-w /home/*
chroot_local_user=NO ##黑名单
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
将student加入黑名单
student用户只能在自己家目录
westos用户
chroot_local_user=YES ##白名单
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
vim /etc/vsftpd/ftpusers ##用户黑名单
vim /etc/vsftpd/user_list ##用户临时黑名单
userlist_deny=NO
/etc/vsftpd/user_list ##参数设定,此文件变为用户白名单,只在名单中出现的用户可以登陆ftp
vim /etc/vsftpd/userfile ##保存密码的文件,文件名称任意
westos1
123
westos2
123
westos3
123
db_load -T -t hash -f /etc/vsftpd/userfile /etc/vsftpd/userfile.db ##对保存密码的文件进行hash加密:/etc/vsftpd/userfile文件
vim /etc/pam.d/ftpauth ##对用户身份进行检查的文件,文件名称任意
account required pam_userdb.so db=/etc/vsftpd/userfile
账户 必须满足 ##使用此插件 查看此文件(已加密文件,但不用加后缀.db)
auth required pam_userdb.so db=/etc/vsftpd/userfile
认证
vim /etc/vsftpd/vsftpd.conf
pam_service_name=ftpauth ##使用哪个文件来检查/etc/pam.d/ftpauth
userlist_enable=YES ##开启列表
tcp_wrappers=YES
guest_enable=YES ##开启虚拟用户登入
虚拟帐号身份指定
guest_username=ftp ##指定用户目录
vim /etc/vsftpd/vsftpd.conf
local_root=/var/ftpuserdir/$USER ##设定家目录为用户名
user_sub_token=$USER ##使$USER在此文件中可用
systemctl restart vsftpd ##修改后重启服务
mkdir /var/ftpuserdir/westos{1..3} -p ##创建家目录
[root@localhost ~]# cd /var/ftpuserdir/
[root@localhost ftpuserdir]# ls
westos1 westos2 westos3
[root@localhost ftpuserdir]# mkdir westos1/westos1file
[root@localhost ftpuserdir]# mkdir westos2/westos2file
[root@localhost ftpuserdir]# mkdir westos3/westos3file
[root@localhost ftpuserdir]# lftp 172.25.254.133 -u westos1Password:
lftp [email protected]:~> ls
drwxrwxr-x 2 0 50 6 Feb 13 16:40 pub
drwxr-xr-x 2 0 0 6 Feb 13 16:30 westos1file
lftp [email protected]:/> quit
[root@localhost ftpuserdir]# lftp 172.25.254.133 -u westos2
Password:
lftp [email protected]:~> ls
drwxrwxr-x 2 0 50 6 Feb 13 16:40 pub
drwxr-xr-x 2 0 0 6 Feb 13 16:30 westos2file
lftp [email protected]:/> quit
[root@localhost ftpuserdir]# lftp 172.25.254.133 -u westos3
Password:
lftp [email protected]:~> ls
drwxrwxr-x 2 0 50 6 Feb 13 16:40 pub
drwxr-xr-x 2 0 0 6 Feb 13 16:30 westos3file
chmod 775 /var/ftpuserdir/westos*/pub
chgrp ftp /var/ftpuserdir/westos*/pub
vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/user_config ##用来指定虚拟用户权限配置文件目录
systemctl restart vsftpd
mkdir -p /etc/vsftpd/user_config ##递归建立目录
vim /etc/vsftpd/user_config/westos1 ##必须与需要指定权限的虚拟帐号名相同
anon_upload_enable=YES ##可以上传的权限