戴尔网站建设的特点,开创者wordpress素材,新的南宁网站建设公司,美工培训哪个机构好前言#xff1a;
本文是一篇关于Linux系统初学者的实验记录。
参考书籍#xff1a;《Linux就该这么学》
实验环境#xff1a;
VmwareWorkStation 17——虚拟机软件
RedHatEnterpriseLinux[RHEL]8——红帽操作系统
备注#xff1a; 为了解决在多样复杂的设备之间解决传…前言
本文是一篇关于Linux系统初学者的实验记录。
参考书籍《Linux就该这么学》
实验环境
VmwareWorkStation 17——虚拟机软件
RedHatEnterpriseLinux[RHEL]8——红帽操作系统
备注 为了解决在多样复杂的设备之间解决传输文件问题文件传输协议FTP应运而生。
FTP是一种在互联网中进行文件传输的协议基于客户端/服务器模式默认使用20、21端口其中端口20用于数据传输端口21用于接受客户端发出的相关FTP命令与参数。
FTP服务普遍部署于内网中具有容易搭建、方便管理的特点。
FTP服务器是按照FTP协议在互联网上提供文件存储和访问服务的主机FTP客户端则是向服务器发送连接请求以建立数据传输链路的主机。
FTP协议有两种工作模式:
1.主动模式FTP服务器主动向客户端发起连接请求
2.被动模式FTP服务器等待客户端发起连接请求默认工作模式
FTP、HTTP、Telnet等协议的数据都是使用明文进行传输的。
为了满足以密文方式传输文件的需求发明了vsftpd服务程序。
vsftpdvery secure ftp daemon非常安全的FTP守护进程是一款运行在Linux操作系统上的FTP服务程序。具有很高安全性、传输速度支持虚拟用户验证等其他FTP服务不具备的特定。 目录
前言
备注
正文 vsftp服务程序
实验1匿名访问模式
排错
实验2本地用户模式
实验3虚拟用户模式
Step1重新安装vsftpd服务。创建用关于进行FTP认证的用户数据库文件。
Step2使用db_load命令将原始明文信息转换成数据库文件
Step3创建vsftpd服务程序用于存储文件的根目录以及用于虚拟用户映射的系统本地用户。 Step4建立用于支持虚拟用户的PAM文件 Step5在vsftpd服务程序的主配置文件中通过pam_service_name参数将PAM认证文件名称修改为vsftpd.vu。 Step6为虚拟用户设置不同的权限。 Step7设置SELinux域允许策略然后使用虚拟用户模式登录FTP服务器。 总结 实验4TFTP简单文件传输协议 正文
准备
安装vsftpd服务程序。
dnf install vsftpd
iptables防火墙管理工具默认禁止了FTP协议的端口号需要清空iptables防火墙的默认策略。
iptables -F
iptables-save
再把FTP协议添加到firewalld服务的允许列表中
firewall-cmd --permanent --zonepublic --add-serviceftp
firewall-cmd --reload vsftp服务程序的主配置文件/etc/vsftpd/vsftpd.conf 现查看一下里面的有效参数 mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_bak
grep -v # /etc/vsftpd/vsftpd.conf_bak /etc/vsftpd/vsftpd.conf
cat /etc/vsftpd/vsftpd.conf anonymous_enableNO 是否允许用户匿名访问 local_enableYES 是否允许本地用户登录FTP write_enableYES local_umask022 dirmessage_enableYES xferlog_enableYES connect_from_port_20YES xferlog_std_formatYES listenNO 是否以独立运行的方式监听服务 listen_ipv6YES pam_service_namevsftpd userlist_enableYES 设置用户列表为“允许”还是“禁止”操作 vsftp服务程序
vsftp作为更加安全的文件传输协议服务程序允许用户以3种认证模式登录FTP服务器。 匿名开放模式 最不安全的一种认证模式 任何人都可以无须密码验证而直接登录到FTP服务器 本地用户模式 通过Linux系统本地的账户密码进行认证的模式相较于匿名开放模式更安全配置更容易。这种情况下一但账户信息被破解服务器会陷入危险。 虚拟用户模式 更安全的一种认证模式它需要为FTP服务单独建立用户数据库文件虚拟出用来进行密码验证的账户信息而这些账户信息在服务器系统中实际上是不存在的仅供FTP服务程序进行认证使用。 准备ftp是Linux系统中以命令行界面管理FTP传输服务的客户端工具。需手动下载。
dnf install ftp实验1匿名访问模式 匿名开放模式是最不安全的一种认证模式任何人都可可以无须密码验证而直接登录FTP服务器。
vsftpd服务程序默认关闭了匿名开放模式实验时将服务配置为开放权限
vim /etc/vsftpd/vsftpd.conf
anonymous_enableYES
local_enableYES
write_enableYES
local_umask022
anon_upload_enableYES
anon_mkdir_write_enableYES
anon_other_write_enableYES
dirmessage_enableYES
xferlog_enableYES
connect_from_port_20YES
xferlog_std_formatYES
listenNO
listen_ipv6YES
pam_service_namevsftpd
userlist_enableYESsystemctl restart vsftpd
systemctl enable vsftpd
现在可以在客户端远程来凝结FTP服务器了。
在vsftpd服务程序的匿名开放认证模式下账户统一为anonymous密码为空。
在连接FTP服务器后默认访问的是/var/ftp目录 拒绝创建文件夹——没有写权限
排错 1.查看修改目录权限
ls -ld /var/ftp/pub 只有root管理员才有写入权限下面修改目录所有者身份为系统账户ftp。
chown -R ftp /var/ftp/pub
此时报错信息由“Permission denied变成”Create directory operation failed
2.考虑SELinux服务
查看于FTP相关的SELinux域策略
getsebool -a | grep ftp setsebool -P ftpd_full_accesson 现在就具有了写权限
实验2本地用户模式
本地模式相对更安全配置起来较简单。
umask参数
一般称为“权限掩码”或“权限补码”能够直接影响到新建文件的权限值。
默认权限-umask实际权限
mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_bak
grep -v # /etc/vsftpd/vsftpd.conf_bak /etc/vsftpd/vsftpd.conf
vim /etc/vsftpd/vsftpd.conf
anonymous_enableNO
local_enableYES
write_enableYES
local_umask022
dirmessage_enableYES
xferlog_enableYES
connect_from_port_20YES
xferlog_std_formatYES
listenNO
listen_ipv6YES
pam_service_namevsftpd
userlist_enableYESsystemctl restart vsftpd
systemctl enable vsftpd 此时不允许本地用户root登录 这是因为vsftpd服务程序所在的目录中默认存放着两个名为“用户名单”的文件
ftpusers和user_list vim /etc/vsftpd/user_listvim /etc/vsftpd/ftpusers实验3虚拟用户模式 虚拟用户模式是最安全的一种模式专门创建出一个账号来登录FTP传输服务的。
而且这个账号不能用于以SSH方式登录服务器。
Step1重新安装vsftpd服务。创建用关于进行FTP认证的用户数据库文件。
分别创建两个用户zhangsan和lisi密码均为redhat
重头开始
安装ftp守护进程vsftpd和ftp命令行界面管理工具ftp。
dnf install vsftpd
dnf install ftp
iptables -F
iptables-save
firewall-cmd --permanent --zonepublic --add-serviceftp
firewall-cmd --reload
mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_bak
grep -v # /etc/vsftpd/vsftpd.conf_bak /etc/vsftpd/vsftpd.conf
创建的文件中奇数行是用户偶数行为密码。
cd /etc/vsftpd
vim vuser.list Step2使用db_load命令将原始明文信息转换成数据库文件
db_load -T -t hash -f vuser.list vuser.db
chmod 600 vuser.db
rm -f vuser.list Step3创建vsftpd服务程序用于存储文件的根目录以及用于虚拟用户映射的系统本地用户。
vsftpd服务用于存储文件的根目录是指当虚拟用户登陆后所访问的默认位置。
虚拟用户创建的文件的属性归属于这个系统本地用户从而避免Linux系统无法处理虚拟用户所创建文件的属性权限。
为了方便管理FTP服务器上的数据把这个系统本地用户的家目录设置为/var目录。
并且为了安全起见将这个系统本地用户设置不允许登录FTP服务器。
useradd -d /var/ftproot -s /sbin/nologin virtual
ls -ld /var/ftproot
chmod -Rf 755 /var/ftproot Step4建立用于支持虚拟用户的PAM文件
PAM可插拔认证模块是一种认证机制通过一些动态链接库和统一的API把系统提供的服务于认证方式分开使得系统管理员可以根据需求灵活调整服务程序的不同认证方式。
PAM是一组安全机制的模块系统管理员可以用来轻易地调整服务程序的认证方式而不必对应用程序进行任何修改。
新建一个用于虚拟用户认证的PAM文件vsftp.vu其中PAM文件内的“db”参数为使用db_load命令生成的账户密码数据库文件路径但不用写数据库文件的后缀
auth required pam_userdb.so db/etc/vsftpd/vuser
account required pam_userdb.so db/etc/vsftpd/vuserStep5在vsftpd服务程序的主配置文件中通过pam_service_name参数将PAM认证文件名称修改为vsftpd.vu。
PAM作为应用程序层与鉴别模块层的连接纽带可以让应用程序根据需求灵活地在自身插入所需的鉴别功能模块。当应用程序需要PAM认证时需要在应用程序中定义负责认证的PAM配置文件实现所需的认证功能。
vim /etc/vsftpd/vsftpd.confanonymous_enableNO
local_enableYES
write_enableYES
guest_enableYES
guest_usernamevirtual
allow_writeable_chrootYES
local_umask022
dirmessage_enableYES
xferlog_enableYES
connect_from_port_20YES
xferlog_std_formatYES
listenNO
listen_ipv6YES
pam_service_namevsftpd.vu
userlist_enableYESStep6为虚拟用户设置不同的权限。 虽然账户zhangsan和lisi都是用于vsftpd服务程序认证的虚拟账户但要实现对两人的区别对待
需要新建一个目录里面分别创建两个以zhangsan和lisi命名的文件在其中名为zhangsan的文件中写入允许的相关权限使用匿名用户的参数
mkdir /etc/vsftpd/vusers_dir/
cd /etc/vsftpd/vusers_dir/
touch lisi
vim zhangsan
anon_upload_enableYES
anon_mkdir_write_enableYES
anon_other_write_enableYES再次修改主配置文件通过添加user_config_dir参数来定义这两个虚拟用户不同权限的配置文件所存放的路径。
重启vsftpd服务程序并添加该服务到开机启动项。
vim /etc/vsftpd/vsftpd.conf
anonymous_enableNO
local_enableYES
write_enableYES
guest_enableYES
guest_usernamevirtual
allow_writeable_chrootYES
local_umask022
dirmessage_enableYES
xferlog_enableYES
connect_from_port_20YES
xferlog_std_formatYES
listenNO
listen_ipv6YES
pam_service_namevsftpd.vu
userlist_enableYES
user_config_dir/etc/vsftpd/vusers_dir
systemctl restart vsftpd
systemctl enable vsftpd Step7设置SELinux域允许策略然后使用虚拟用户模式登录FTP服务器。
setsebool -P ftpd_full_accesson实验成功
lisi只能登录没有其他权限
zhangsan不仅可以登录还可以创建、该名和删除文件 总结 实验过程难免报错检查配置的输入按照排错顺序逐步解决即可。
使用不同方式登录文件传输服务器后默认所在的位置
登录方式默认目录匿名公开/var/ftp本地用户 该用户的家目录 虚拟用户对应映射用户的家目录 实验4TFTP简单文件传输协议
简单文件传输协议Trivial File Transfer ProtocolTFTP是一种基于UDP协议在客户端和服务器之间进行简单文件传输的协议。
提供不复杂、开销不大的文件传输服务可将其当作FTP协议的简化版本。
TFTP的命令功能不如FTP服务强大甚至不能遍历目录在安全性上也弱与FTP服务。
由于TFTP在传输文件时采用的时UDP协议占用端口号
因此文件传输过程也不像FTP可靠。
因为TFTP不需要客户端的权限认证在传输琐碎不大的文件时效率更高。 现在体验
tftp-server是服务程序tftp是用于连接测试的客户端工具xinetd是管理服务
dnf install tftp-server tftp xinetd
在Linux系统中TFTP服务是使用xinutd服务程序来管理的。
xinetd服务可以用来管理多种轻量级的网络服务且具有强大日志功能。
想开启哪个服务。就编辑对应的xinetd配置文件的开关参数。
vim /etc/xinetd.d/tftp 根据示例文件/usr/share/doc/xinetd//sample.conf创建tftp对应的配置文件
service tftp
{socket_type dgramprotocol udpwait yesuser rootserver /usr/sbin/in.tftpdserver_args -s /var/lib/tftpbootdisable noper_source 11cps 100 2flags IPv4
}
systemctl restart tftp
systemctl enable tftp
systemctl restart xinetd
systemctl enable xinetd
firewall-cmd --zonepublic --permanent --add-port69/udp
firewall-cmd --reload实验成功
TFTP的根目录为/var/lib/tftpboot