Linux---ftp服务
##ftp服务##
开始ftp服务之前首先在server虚拟机上先进行以下几个步骤,然后再开始操作ftp相关服务。
1.在虚拟机上编写配置yum源 vim /etc/yum.repos.d/rhel_dvd.repo
内容如下:
2.在虚拟机上修改命令 vim /etc/sysconfig/selinux 中的SELINUX=disabled
3.上面两个步骤完成后reboot server虚拟机即可。
之后可以在重启的虚拟机上输入命令getenforce查看是否是disabled状态
##1.ftp的启用
yum install vsftpd -y
systemctl start vsftpd
systemctl enable vsftpd
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
ftp://172.25.254.247
##2.ftp的基本信息##
访问数据端口;21
数据传输端口: >1024随机端口
默认发布目录 /var/ftp
访问方式
lftp 172.25.254.247 ##匿名登陆 ---》/var/ftp
lftp 172.25.254.247 -u student ##用户登陆 ---》/home/student
配置文件
/etc/vsftpd/vsftpd.conf
##3.ftp的安全部署##
虚拟机中执行vim /etc/vsftpd/vsftpd.conf
write_enable=YES | NO ##本地用户是否可写
local_enable=YES | NO ##本地用户是否可以登陆
anonymous_enable=YES | NO ##匿名用户是否可以登陆
每次更改后都要重启vsftpd
systemctl restart vsftpd
如图:设置成本地用户可以登陆,
在lftp中会通常出现以下几个错误:530 登陆失败,550 服务不允许,500 权限过大,553权限过小。
##4.匿名用户#
##匿名用户可上传
chmod 775 /var/ftp/pub
chgrp ftp /var/ftp/pub
vim /etc/vsftpd/vsftpd.conf
29 anon_upload_enable=YES
systemctl restart vsftpd
如图所示:
##匿名用户可下载
anon_world_readable_only=NO
##匿名用户建立目录
anon_mkdir_write_enable=YES
##匿名用户是否可以删除和重命名
anon_other_write_enable=YES
如图:匿名用户可以建立目录和删除目录
##匿名用户上传文件默认权限修改
anon_umask=002 (如图:上传后的文件权限为664)
##匿名用户使用的用户身份修改
chown_uploads=YES
chown_username=student
由此可见student 和 ftp的id
如图:匿名用户使用的用户身份已经修改了 在上传的fstab可见。
##最大上传速率
anon_max_rate=102400 当没超过范围时如图:
##最大链接数
max_clients=x
##用户黑名单建立
chroot_local-user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
##用户白名单建立
chroot_local_user=YES
chroot_list-enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
##限制本地用户浏览目录
chroot_local_user=YES
chmod u-w /home/*
如图:当限制了本地用户浏览的目录后,就有了一定限制
##限制本地用户登陆
vim /etc/vsftpd/ftpusers ##用户黑名单
如果将本地的用户添加到这名单里面,则就限制了其登陆
vim /etc/vsftpd/vsftpd/user_list ##临时黑名单
用户白名单设定
userlist_deny=NO
vim /etc/vsftpd/user_list ##参数设定,此文件变成用户白名单,只在名单中用户可以登陆ftp
注意;当存在白名单时,黑名单中则会失效。
如图:在 /etc/vsftpd/ 下可以查看到以下内容,其中ftpusers为黑名单 user_list为白名单
##ftp虚拟用户的设定 (创建虚拟帐号身份)
1.编辑虚拟用户vim /etc/vsftpd/westosfile (密码123)
user1
123
user2
123
2.执行命令db_load -T -t hash -f /etc/vsftpd/westosfile /etc/vsftpd/westosfile.db
3.编写虚拟用户的密码和帐号vim /etc/pam.d/westos
account required pam_userdb.so db=/etc/vsftpd/westosfile
auth required pam_userdb.so db=/etc/vsftpd/westosfile
4.执行命令vim /etc/vsftpd/vsftpd.conf
添加如下:
pam_service_name=westos
guest_enable=YES
之后重启vsftpd即可,效果如下图所示:
虚拟帐号身份指定
guest_username=user
chmod u-w /home/ftpuser
虚拟帐号家目录独立设定
执行命令vim /etc/vsftpd/vsftpd.conf 进入之后添加如下内容
local_root=/ftphome/$USER
user_sub_token=$USER
mkdir /ftphome/user1/user1dir -p
mkdir /ftphome/user2/user2dir -p
chmod 755 /ftphome/user1/user1dir/
chmod 755 /ftphome/user1/user1dir/
上述操作的过程如图所示:
效果如图所示:虚拟帐号家目录的设定成功 为user1dir user2dir
虚拟帐号配置独立
vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/userconf
mkdir -p /etc/vsftpd/userconf
vim /etc/vsftpd/userconf/ftpuset1
在此文件中设定配置文件中的所有参数,此文件的优先级高