1、ftp的安装及启用
FTP(文件传输协议)是现在仍常用的最老的网络文件传输协议之一,它为系统提供了通过网络与远程服务器进行传输的简单方法,FTP的服务器包叫做VSFTPD,
(1)、首先配置好本地yum仓库
(2)、下载vsftp lftp,并开启vsftpd ,设置防火墙。
systemctl start vsftpd
(3)、用另一台主机连接ftp
lftp 172.25.254.104
(4)、查看vsftp的主配置文件及家目录
rpm -ql vsftpd
2、ftp基本安全部署
默认发布目录 | /var/ftp |
---|---|
报错 | 解析 |
500 | 文件系统权限过大 |
530 | 用户认证失败 |
550 | 服务本身功能未开放 |
553 | 本地文件系统权限过小 |
vim /etc/vsftpd/vsftpd.conf ###配置文件
3、匿名用户设定
(1)、用户
匿名用户登陆 | anonymous_enable=YES |
---|---|
本地用户登陆 | local_enable=YES |
本地用户可写 | write_enable=YES(b本地用户传) put /etc/passwd |
(2)、匿名用户上传
anon_upload_enable=YES
chgrp ftp /var/ftp/pub
chmod 775 /var/ftp/pub
(3)、匿名用户下载
不设置情况下会550报错
anon_world_readable_only=YES|NO ###NO匿名用户可以下载
(4)、匿名用户建立用户
anon_mkdir_write_enable=YES|NO
(5)、匿名用户删除
anon_other_write_enable=YES|NO
(6)、匿名用户加目录更改
anon_root=/自定目录
(7)、匿名用户限速
anon_max_rate=102400
(8)、最大客户端连接
max_clients=2
4、本地用户的设定
(1)、本地用户家目录和锁定
local_root=/westos
chroot_local_user=YES ###本地用户被锁,无法进入家目录
(2)、用户黑名单建立(限制不让进/)
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
chmod u-w /home/*
(3)、用户白名单建立(限制让进/)
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
(4)、黑白名单(登陆限制)
vim /etc/vsftpd/ftpusers ###用户黑名单
vim /etc/vsftpd/user_list ###用户临时黑名单
userlist_deny=NO ###临时黑名单变成白名单
vim /etc/vsftpd/user_list ###用户临时白名单
5、虚拟用户的认证
安全机制:3a机制:用户、认证、授权。
pam(模块):看门作用。用作用户授权检测。
/etc/vsftpd/vuserlist ###创建文件编写用户账户、类型、密码。所有字符都算,空格也算
db_load -T -t hash -f /etc//vsftpd/account /etc/vsftpd/account.db ###-f指定加密文件 -t指定转换类型 -T转换
vim /etc/pam.d/westos ###编写文件认证帐号密码登陆、生成认证策略
vim /etc/vsftpd/vsftpd.conf
pam_service_name=westos ###指定认证方式
guest_enable=YES ###开启功能
guest_username=ftp ###指定身份
systenctl restart vsftpd
6、虚拟用户的家目录设定及授权独立
(1)、每个用户有自己独立的家目录
mkdir /var/ftpuserdir/user{1..3} -p ###在家目录下建立用户
mkdir /var/ftpuserdir/user{1..3}/pub -p
touch /var/ftpuserdir/user1/user1file
touch /var/ftpuserdir/user2/user2file
touch /var/ftpuserdir/user3/user3file
local_root=/var/ftpuserdir/$USER
user_sub_token=$USER ###$USER沿用之前环境的用法
(2)、指定规定命令只能指定用户用
vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/userconf
mkdir -p /etc/vsftpd/userconf
vim /etc/vsftpd/userconf/用户名