Linux vsftp三种模式的简单配置部署

环境:Debian 6.1.27-1kali1 (2023-05-12)

vsftpd 安装

--查看是否当前系统是否已安装

apt list --installed | grep vsftpd

没有安装的话,就正常安装

apt-get update

apt-get install vsftpd

一、匿名用户模式

分享一些不重要文件,任何都可等到ftp服务器获取文件信息,配合防火墙将访问范围限制在内网

允许匿名用户登陆获取文件

--修改配置文件,允许匿名用户登陆

(修改配置之前,建议将原始默认配置文件备份,便于以后配置其他ftp服务器使用

cp /etc/vsftpd.conf /etc/vsftpd.conf.bak

误删配置文件,可以通过以下命令恢复

sudo apt-get clean
sudo apt-get update
sudo apt-get install --reinstall vsftpd

sudo apt-get purge vsftpd
sudo apt-get install vsftpd )

vi /etc/vsftpd.conf

anonymous_enable=YES    --修改为YES允许匿名用户登陆

anon_root=/var/ftp   --配置需要分享的ftp根目录

--配置修改完后开启vsftpd服务

systemctl start vsftpd

--检查

netstat -nltp | grep vsftpd

--同一局域网下,这里就可以用window10系统去下载文件了,打开浏览器,输入ftp://开启ftp服务器的ip地址

Linux vsftp三种模式的简单配置部署_第1张图片

--若允许匿名用户在ftp服务器目录上写入或者上传文件,可以更改如下配置

write_enable=YES

anon_upload_enable=YES

anon_mkdir_write_enable=YES

二、本地用户模式

通过Linux本地账户密码信息进行登陆认证,比匿名用户模式更加安全,有一定的风险:攻击者通过ftp服务器漏洞获取到用户账户信息,即可登陆服务器进行控制。

--修改配置文件

vi /etc/vsftpd.conf

anonymous_enable=NO        --关闭匿名用户登陆

local_enable=YES        --允许系统用户登陆

write_enable=YES        --允许执行修改文件系统的命令

local_mask=022        --采用022作为本地用户新增文件的默认文件权限

(文件默认开放所有全部权限666,需要减少的权限022,则默认文件权限为-rw-r--r--)

--创建一个新系统用户用于实践

adduser admin 

(注意这里不要使用useradd无参数创建一个三无用户,无法登陆,使用参数adduser命令按提示创建新用户简单粗暴)

--使用admin用户连接ftp服务器创建一个test文件夹

Linux vsftp三种模式的简单配置部署_第2张图片

--使用root用户登陆ftp服务器,发现无法登陆 

Linux vsftp三种模式的简单配置部署_第3张图片

 博主在Debian 6.1.27-1kali1 (2023-05-12) 安装的vsftpd/kali-rolling 3.0.3-13+b2 amd64在/etc目录下没有vsftpd目录,自然也没有vsftpd.user_list,而vsftp.conf文件直接在/etc下,同样在/etc目录下找到ftpusers文件,该文件的所有用户不允许登陆ftp。

--将ftpusers文件里的root用户注释掉,重新登陆成功

Linux vsftp三种模式的简单配置部署_第4张图片

tips:root用户从限制文件里移除会增加系统被入侵的风险,这里测试完直接恢复。

 三、虚拟用户模式

ftp服务单独提供用户数据库文件,所有非匿名用户均被视为访客,并被映射成一个特定的用户。通过虚拟用户名以及口令进行登陆,即使用户名被破解也无法登陆到主机,相较前两种模式更为安全,同样配置起来也较为复杂。

1>新建虚拟用户名数据库文件

cd /etc

cat >>login_user < heredoc> xiongda
heredoc> qwerty
heredoc> xionger
heredoc> 123456
heredoc> EOF

--通过db工具将特定格式文件文件转换成数据库文件

db_load -T -t hash -f /etc/login_user /etc/login_user.db

--降权

chmod 600 login_user.db

ls -l /etc/login_user.db

--删除源文本文件

rm /etc/login_user

2>配置PAM验证(动态加载模块,可按需求动态对验证内容进行变更,配置文件在/etc/pam.d/vsftpd)

vi /etc/pam.d/vsftpd

前面注释掉,末尾添加两行

auth required pam_userdb.so db=/etc/login_user

account required pam_userdb.so db=/etc/login_user

3>将虚拟用户与本地用户映射

useradd  ftp_guest        --新增一个本地用户

chmod -Rdf 755 /home/ftp_guest       --修改该用户主目录权限

vi /etc/vsftpd/conf

guest_enable=YES

guest_username=ftp_guest         --所有虚拟用户映射到该访客账户

同时修改其他配置:

anonymous_enable=NO

local_enable=YES

chroot_local_user=YES        --将各自虚拟用户限制各自根目录下

allow_writeable_chroot=YES

pam_service_name=vsftpd

user_config_dir=/etc/vsftp_user_conf        --自定义用户配置文件夹

4>给不同用户设置不同的目录和权限

(这里给xiongda只读权限,给xionger上传文件和建立目录权限)

cd /home/ftp_quest

mkdir xiongda xionger

chown ftp_guest:ftp_guest xiongda xionger

cd /etc

mkdir vsftp_user_conf         --上面配置的自定义配置文件

cd vsftp_user_conf

cat >>xiongda<

local_root=/home/ftp_guest/xiongda

EOF

----------------------

cat >>xionger< write_enable=YES
anon_upload_enable=YES        --文件上传权限
anon_mkdir_write_enable=YES        --目录创建权限
local_root=/home/ftp_guest/xionger
EOF

重启ftp服务器

systemctl restart vsftpd

xiongda用户无法创建目录

Linux vsftp三种模式的简单配置部署_第5张图片

xionger用户可以创建目录 

Linux vsftp三种模式的简单配置部署_第6张图片

 

你可能感兴趣的:(linux,服务器,运维)