正式学习linux-13

不问归期 提交于 2020-03-15 12:02:33

1.vsftpd主配置文件

主配置文件(/etc/vsftpd/vsftpd.conf),内容很多都是注释信息,实际参数信息并没有多少。

[root@linuxprobe ~]# mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_bak
[root@linuxprobe ~]# grep -v "#" /etc/vsftpd/vsftpd.conf_bak > /etc/vsftpd/vsftpd.conf

上部命令通过把原配置文件改名,然后再用grep命令对注释信息反选过滤重新重定向到原配置文件。过滤后的主配置文件如下。

[root@linuxprobe ~]# cat /etc/vsftpd/vsftpd.conf
anonymous_enable=YES #允许匿名用户登录
local_enable=YES #允许本地用户验证登录
write_enable=YES #本地用户是否有写入权限
local_umask=022 #反掩码,满权限-反掩码=文件或目录的实际权限,文件满权限是666没有执行权限,目录文件满权限是777。
dirmessage_enable=YES #设置一些提醒信息
xferlog_enable=YES #是否开启日志服务
connect_from_port_20=YES #是否从20端口传输数据
xferlog_std_format=YES #日志是否以标准格式填写
listen=NO #是否以独立运行的方式监听接口
listen_ipv6=YES
pam_service_name=vsftpd #pam验证模块信息
userlist_enable=YES
tcp_wrappers=YES #防火墙是否可以管理这个网络

2.vsftpd服务的验证

该服务有三种验证模式登录FTP服务器,分别是匿名验证,本地用户验证,匿名用户验证。

匿名公共验证模式的家目录/var/ftp,在服务端的配置文件/etc/vsftpd/vsftpd.conf,加入以下内容:

[root@linuxprobe ~]# vim /etc/vsftpd/vsftpd.conf
1 anonymous_enable=YES #允许匿名访问模式
2 anon_umask=022 #匿名用户上传文件的反掩码
3 anon_upload_enable=YES #允许匿名用户上传文件
4 anon_mkdir_write_enable=YES #允许匿名用户创建文件夹
5 anon_other_write_enable=YES #允许匿名用户修改目录名称或删除目录
6 local_enable=YES
7 write_enable=YES
8 local_umask=022
9 dirmessage_enable=YES
10 xferlog_enable=YES
11 connect_from_port_20=YES
12 xferlog_std_format=YES
13 listen=NO
14 listen_ipv6=YES
15 pam_service_name=vsftpd
16 userlist_enable=YES
17 tcp_wrappers=YES

在服务端把该服务重启并加入启动项,用匿名用户 anonymous,密码为空在客户端登录ftp服务(在客户端要安装发ftp客户端工具)。要注意在从客户端连接到服务端操作时,会因为文件夹权限收到限制,用chown命令修改属主。还有会受到selinux的制约,修改该服务的布尔值解决selinux的限制(ftpd_full_access)。

本地用户验证登录访问的目录是本地用户的家目录。

配置文件已经默认开启了本地用户的验证登录。要注意两个文件user_list和ftpusers,这两个文件里面是限制用户登录的名单,在本地验证模式用root用户登录时失败的,就是因为以上两个文件内有root用户,也就限制的root用户的登录,可以将两文件内的root删掉,再用root用户登录就不会再限制登录了。因为默认访问的本地用户的家目录也就不会有权限不足的问题了。

虚拟用户验证登录是映射用户指定的家目录

[root@linuxprobe ~]# cd /etc/vsftpd/ 
[root@linuxprobe vsftpd]# vim vuser.list #编辑要验证登录的账户及密码,奇数行为账号偶数行为密码
zhangsan #账户
redhat #密码
lisi #账户
redhat #密码
[root@linuxprobe vsftpd]# db_load -T -t hash -f vuser.list vuser.db #使用db_load命令加密,-T参数表示要加密,-t参数表示加密方式,-f参数表示要加密的原文件。
[root@linuxprobe vsftpd]# chmod 600 vuser.db #对加密文件设置权限
[root@linuxprobe vsftpd]# rm -f vuser.list #删除掉原来的明文文件
[root@linuxprobe ~]# useradd -d /var/ftproot -s /sbin/nologin virtual #创建一个虚拟用户(virtual),并制定该用户的家目录且限制用户的登录
[root@linuxprobe ~]# ls -ld /var/ftproot/ #查看虚拟用户的家目录权限
drwx------. 3 virtual virtual 74 Jul 14 17:50 /var/ftproot/
[root@linuxprobe ~]# chmod -Rf 755 /var/ftproot/ #将虚拟用户目录权限增大
[root@linuxprobe ~]# vim /etc/pam.d/vsftpd.vu #编辑pam验证模块的验证文件
auth required pam_userdb.so db=/etc/vsftpd/vuser #db=/etc/vsftpd/vuser不用写.db后缀
account required pam_userdb.so db=/etc/vsftpd/vuser
[root@linuxprobe ~]# vim /etc/vsftpd/vsftpd.conf 
1 anonymous_enable=NO #把匿名公开验证禁止掉
2 local_enable=YES
3 guest_enable=YES #开启虚拟用户模式
4 guest_username=virtual #指定虚拟用户登录
5 allow_writeable_chroot=YES
6 write_enable=YES
7 local_umask=022
8 dirmessage_enable=YES
9 xferlog_enable=YES
10 connect_from_port_20=YES
11 xferlog_std_format=YES
12 listen=NO
13 listen_ipv6=YES
14 pam_service_name=vsftpd.vu #指定pam文件
15 userlist_enable=YES
16 tcp_wrappers=YES
[root@linuxprobe ~]# mkdir /etc/vsftpd/vusers_dir/ #为保证不同用户具有不同权限创建该目录
[root@linuxprobe ~]# cd /etc/vsftpd/vusers_dir/
[root@linuxprobe vusers_dir]# touch lisi #创建登录用户文件
[root@linuxprobe vusers_dir]# vim zhangsan #创建登录用户文件,权限用的是匿名验证的策略。
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
[root@linuxprobe ~]# vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/vusers_dir #在配置信息后面追加该策略,不同用户的权限验证目录
[root@linuxprobe ~]# systemctl restart vsftpd #重启该服务
[root@linuxprobe ~]# systemctl enable vsftpd #把该服务加入到启动项内
ln -s '/usr/lib/systemd/system/vsftpd.service' '/etc/systemd/system/multiuser.
target.wants/vsftpd.service

ftpd_full_access该策略,要在虚拟机恢复快照后,重新打开。

3.TFTP服务

该服务是使用xinetd服务进行管路的,安装好tftp-server和tftp服务后,编辑/etc/xinetd.d/tftp即可使用

[root@linuxprobe ~.d]# vim /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no #将此选项改成no
per_source = 11
cps = 100 2
flags = IPv4

保存并退出后,重启xinetd服务,要把服务端和客户端的防火墙相关策略清除掉,以及端口放行,即可正常使用该服务了。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!