第10章 使用Apache服务部署静态网站
- 10.5.3基于端口号
第1步:建立目录
第2步:编辑配置文件,监听端口号mkdir -p /home/wwwroot/6111 mkdir -p /home/wwwroot/6222 echo "port:6111" > /home/wwwroot/6111/index.html echo "port6222" > /home/wwwroot/6222/index.html
第3步:编辑配置文件,追加参数vim /etc/httpd/conf/httpd.conf 46 Listen 6111 47 Listen 6222
第4步:设置SElinuxvim /etc/httpd/conf/httpd.conf 134 <VirtualHost 192.168.10.10:6111> 135 DocumentRoot /home/wwwroot/6111 136 ServerName www.linuxprobe.com 137 <Directory /home/wwwroot/6111> 138 AllowOverride None 139 Require all granted 140 </Directory> 141 </VirtualHost> 142 <VirtualHost 192.168.10.10:6222> 143 DocumentRoot /home/wwwroot/6222 144 ServerName www.linuxcool.com 145 <Directory /home/wwwroot/6222> 146 AllowOverride None 147 Require all granted 148 </Directory> 149 </VirtualHost>
第5步:添加端口,验证,没问题semanage fcontext -a -t httpd_sys_content_t /home/wwwroot semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6111 semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6111/* semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6222 semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6222/* restorecon -Rv /home/wwwroot/ systemctl restart httpd //重启服务,会有报错 semanage port -l | grep http //端口未被允许
semanage port -a -t http_port_t -p tcp 6111 semanage port -a -t http_port_t -p tcp 6222 semanage port -l | grep http systemctl restart httpd
10.6 Apache的访问控制
第1步:建立子目录,输入内容
mkdir /var/www/html/server
echo "Successful" > /var/www/html/server/index.html
第2步:编辑httpd配置文件
vim /etc/httpd/conf/httpd.conf
161 <Directory "/var/www/html/server">
162 SetEnvIf User-Agent "Firefox" ff=1
163 Order allow,deny
164 Allow from env=ff
165 </Directory>
以上配置是只允许在firefox访问,其他的均不被允许
sysyemctl restart httpd
firefox //验证
第11章 使用Vsftpd服务传输文件
11.1文件传输协议
dnf install vsftpd //安装服务
iptables -F
iptables-save //清除防火墙并保存
firewall-cmd --permanent --zone=public --add-service=ftp
fire-cmd --reload //将FTP协议添加到firewall允许的列表内
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_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
11.2vsftpd服务程序
安装 dnf install ftp
- 11.2.1匿名模式
修改配置文件,
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
systemctl restart vsftpd //重启服务
systemctl enable vsftpd //加入启动项
ftp 192.168.10.10 //连接验证,此时登陆没问题,创建文件受限制
ls -ld /var/ftp/pub
chown -R ftp /var/ftp/pub //修改目录权限
ftp 192.168.10.10 //依旧创建文件报错
getsebool -a | grep ftp
setsebool -P ftpd_full_access=on //修改SElinux域策略
ftp 192.168.10.10 //验证都没问题
11.2.2本地用户模式
vim /etc/vsftpd/vsftpd.conf
1 anonymous_enable=NO
2 local_enable=YES
3 write_enable=YES
4 local_umask=022
5 dirmessage_enable=YES
6 xferlog_enable=YES
7 connect_from_port_20=YES
8 xferlog_std_format=YES
9 listen=NO
10 listen_ipv6=YES
11 pam_service_name=vsftpd
12 userlist_enable=YES
systemctl restart vsftpd
systemctl enable vsftpd
ftp 192.168.10.10 //登陆报错
cat /etc/vsftpd/user_list
cat /etc/vsftpd/ftpusers //将两个文件中root删掉
getsebool -a | grep ftp
setsebool -P ftpd_full_access=on //修改SElinux域策略
ftp 192.168.10.10 //验证都没问题
11.2.3虚拟用户模式
第1步:创建认证数据库,奇数行为账户名,偶数行为密码
vim /etc/vsftpd/vuser.list
zhangsan
redhat
lisi
redhat
db_load -T -t hash -f vuser.list //加密
chmod 600 vuser.db
rm -f vuser.list
第2步:创建映射目录
useradd -d /var/ftproot -s /sbin/nologin virtual
ls -ld /var/ftproot/
chmod -Rf 755 /var/ftproot/
第3步:建立用于支持虚拟用户的PAM文件
vim /etc/pam.d/vsftpd.vu
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser
第4步:编辑配置文件
vim /etc/vsftpd/vsftpd.conf
1 anonymous_enable=NO
2 local_enable=YES
3 write_enable=YES
4 guest_enable=YES
5 guest_username=virtual
6 allow_writeable_chroot=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
15 userlist_enable=YES
第5步:为不同用户设置不同权限
mkdir /etc/vsftpd/vusers_dir/
cd /etc/vsftpd/vusers_dir/
touch lisi
vim zhangsan
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
再次修改配置文件
vim /etc/vsftpd/vsftpd.conf //最后一行追加以下内容
16 user_config_dir=/etc/vsftpd/vusers_dir
systemctl restart vsftpd
systemctl enable vsftpd
第6步:设置SElinux域允许策略
getsebool -a | grep ftp
setsebool -P ftpd_full_access=on
登陆验证
11.3 TFTP简单文件传输协议TFTP
dnf install tftp-server tftp xinetd //安装服务
tftp-server是服务程序,tftp是用于连接测试的客户端工具,xinetd是管理服务
编辑配置文件(rhel8没有模板文件,以下是复制7过来的内容)
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
per_source = 11
cps = 100 2
flags = IPv4
}
systemctl restart xinetd
systemctl enable xinetd
firewall-cmd --zone=public --permanent --add-port=69/udp
firewall-cmd --reload
echo "i love linux" > /var/lib/tftpboot/readme.txt
tftp 192.168.10.10
tftp> get readme.txt
tftp> quit
ls //可查看有传输过来的内容
cat readme.txt