##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
yum install ftp -y


systemctl start vsftpd 启动vsftpd
systemctl enable vsftpd 设置ftpd开机启动
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload


##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.匿名用户#
匿名用户可上传
此时匿名用户默认可以登陆
29 anon_upload_enable=YES
chmod 775 /var/ftp/pub
chgrp ftp /var/ftp/pub
vim /etc/vsftpd/vsftpd.conf
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
##最大上传速率
anon_max_rate=102400 当没超过范围时如图:

当有了限制之后:

##最大链接数
max_clients=x ##最大链接数为X
##限制本地用户浏览目录
chroot_local_user=YES ##将所有用户都锁住
chmod u-w /home/*
如图:当限制了本地用户浏览的目录后,就有了一定限制

##限制本地用户登陆
vim /etc/vsftpd/ftpusers ##用户黑名单
如果将本地的用户添加到这名单里面,则就限制了其登陆

##用户黑名单建立
chroot_local-user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
vim /etc/vsftpd/user_list ##临时黑名单
##用户白名单建立
chroot_local_user=YES
chroot_list-enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
userlist_deny=NO
vim /etc/vsftpd/user_list ##参数设定,此文件变成用户白名单,只在名单中用户可以登陆ftp

注意:当存在白名单时,黑名单中则会失效。
如图:在 /etc/vsftpd/ 下可以查看到以下内容,其中ftpusers为黑名单 user_list为白名单

##ftp虚拟用户的设定 (创建虚拟帐号身份)
1.3A安全机制:帐号,密码和用户权限。
也就是 账号,认证(证明帐号是你的 pam认证)授权。
2.虚拟用户就是ftp的用户身份,但是在系统中没有,要想在系统中进行操作,还需再使用系统中真实存在的身份ftp。
3.我们在微信等社交平台上也是虚拟用户,这样更安全,如果以存在的本地用户登录则权力太大。
1.编辑虚拟用户vim /etc/vsftpd/westosfile (密码123)
user1
123
user2
123
user3
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 am_userdb.so db=/etc/vsftpd/westosfile

4.执行命令vim /etc/vsftpd/vsftpd.conf
添加如下:
pam_service_name=westos
guest_enable=YES
注意:
在指定了虚拟用户之后,本地用户就不可以登陆,因为你在设置文件里指定了pam=wetsos 而不是初始的ftpuser
虚拟帐号身份指定
guest_username=user
虚拟帐号家目录独立设定
执行命令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/
上述操作的过程如图所示:
虚拟帐号配置独立
mkdir -p /etc/vsftpd/userconf
vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/userconf
vim /etc/vsftpd/userconf/ftpuser1 ##在此文件中设定配置文件中的所有参数,此文件的优先级高
FTP服务搭建与安全管理
2153

被折叠的 条评论
为什么被折叠?



