apache
apache安装
yum install httpd
systemctl restart httpd
systemctl enable httpd (加如开机启动项)
配置文件/etc/httpd/conf/httpd.conf
网站的登录用户为apache
apache为其他用户,如果没有读权限是无法加载网页信息
通过apache分享文件
在/var/www/html下建立一个文件夹
由于有执行权限,所以apache用户可以进入该文件夹
拷贝文件到此文件夹
猜一猜,这两个文件能分享吗?
很显然,passwd文件能分享,而shadow不能,因为他对其他用户没有读权限!
当给他加上读权限时:
成功读取!
那在配置文件中哪个选项是管文件分享的呢?
把Indexes删除就不会共享了
重启apache,从新访问,就不能共享了!
apache白名单和黑名单
没有就自己添加,这只对这个标签表示的目录文件有限!
这两句意思为:先允许再拒绝,允许所有人访问。
我改下:
我主机地址:172.21.204.107
kali地址:172.21.230.72
表示:允许172.21.230.72访问,其他都拒绝!
重启后主机访问:只能访问apache的默认内容
kali访问:正常访问!
同样可以对网段进行设置:
表示允许172.21网段访问,其他拒绝!
同样可以反过来进行操作:
重启Http
拒绝:172.21.230.72,其他允许!
主机访问:正常!
kali访问:失败!
修改默认文件存放目录
默认位置:/var/www/html
修改:vim /etc/http/conf/httpd.conf
(119行) DocumentRoot “/var/www/html” --> 修改指定位置
(124) <Directory “/var/www/html” --> 修改指定位置
设置用户都有独立的网站
vim /etc/httpd/conf.d/userdir.conf
UserDir disabled —> UserDir public_html 这样用户就可以在自己的家目录里新建一个目录为public_html的文件来存放网站html
-
su - xiaoming #切换用户
-
mkdir public_html&&cd public_html
-
vim a.html
最后设置 setcebool -P httpd_enable_homedirs=on
对网站进行密码登录操作
vim /etc/httpd/conf.d/userdir.conf
htpasswd -c /etc/httpd/passwd(密码文件) linuxprobe(用户名) 生成该用户网站的密码文件
使用多个IP来定义网站
vim /etc/httpd/conf.d/userdir.conf
113 <VirtualHost 192.168.10.10> 定义哪个IP的网站
114 DocumentRoot /home/wwwroot/10 定义这个IP的网站存放路径
115 ServerName www.linuxprobe.com 定义域名
116 <Directory /home/wwwroot/10 > 设定权限
117 AllowOverride None 禁止伪协议
118 Require all granted 所有人都可以访问
119 </Directory> 结束权限标志
120 </VirtualHost> 结束定义标志
设置SE上下文权限(限制网站权限)
vim /etc/selinux/config
设置
SELINUX=enforcing
设置这个目的是为了防止黑客拿到网站权限以后肆意破环(限定权限)
可以使用getenforce命令获得当前SELinux服务的运行模式:
-
enforcing:强制启用安全策略模式,将拦截服务的不合法请求。
-
permissive:遇到服务越权访问时,只发出警告而不强制拦截。
-
disabled:对于越权的行为不警告也不拦截。
具体设置
setenforce 1
ls -Zd /var/www/html
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html
ls -Zd /home/wwwroot
drwxrwxrwx. root root unconfined_u:object_r:home_root_t:s0 /home/wwwroot
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/*
对网站进行域名设置
- vim /etc/hosts
按照这种格式写 IP 域名 域名 ......
192.168.10.10 www.linuxprobe.com bbs.linuxprobe.com tech.linuxprobe.com
- 然后创建网站目录
[root@linuxprobe ~]# mkdir -p /home/wwwroot/www
[root@linuxprobe ~]# mkdir -p /home/wwwroot/bbs
[root@linuxprobe ~]# mkdir -p /home/wwwroot/tech
[root@linuxprobe ~]# echo "WWW.linuxprobe.com" > /home/wwwroot/www/index.html
[root@linuxprobe ~]# echo "BBS.linuxprobe.com" > /home/wwwroot/bbs/index.html
[root@linuxprobe ~]# echo "TECH.linuxprobe.com" > /home/wwwroot/tech/index.html
- 修改网站配置信息
vim /etc/httpd/conf/httpd.conf
===========================================
113 <VirtualHost 192.168.10.10>
114 DocumentRoot "/home/wwwroot/www"
115 ServerName "www.linuxprobe.com"
116 <Directory "/home/wwwroot/www">
117 AllowOverride None
118 Require all granted
119 </directory>
120 </VirtualHost>
=============================================
121 <VirtualHost 192.168.10.10>
122 DocumentRoot "/home/wwwroot/bbs"
123 ServerName "bbs.linuxprobe.com"
124 <Directory "/home/wwwroot/bbs">
125 AllowOverride None
126 Require all granted
127 </Directory>
128 </VirtualHost>
=============================================
129 <VirtualHost 192.168.10.10>
130 DocumentRoot "/home/wwwroot/tech"
131 ServerName "tech.linuxprobe.com"
132 <Directory "/home/wwwroot/tech">
133 AllowOverride None
134 Require all granted
135 </directory>
136 </VirtualHost>
- 如果设置SE安全则需要进行设置
[root@linuxprobe ~]# ls -Zd /var/www/html
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html
[root@linuxprobe ~]# ls -Zd /home/wwwroot
drwxrwxrwx. root root unconfined_u:object_r:home_root_t:s0 /home/wwwroot
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/www
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/www/*
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/bbs
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/bbs/*
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/tech
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/tech/*
[root@linuxprobe ~]# restorecon -Rv /home/wwwroot/
使用端口号进行网站设置
vim /etc/httpd/conf/httpd.conf
43 Listen 6111 #设置监听端口号
44 Listen 6222
======================================
113 <VirtualHost 192.168.10.10:6111>
114 DocumentRoot "/home/wwwroot/6111" #对应这个端口号的网站目录路径(前提已经创建好了)
115 ServerName www.linuxprobe.com
116 <Directory "/home/wwwroot/6111">
117 AllowOverride None
118 Require all granted
119 </Directory>
120 </VirtualHost>
======================================
121 <VirtualHost 192.168.10.10:6222>
122 DocumentRoot "/home/wwwroot/6222"
123 ServerName bbs.linuxprobe.com
124 <Directory "/home/wwwroot/6222">
125 AllowOverride None
126 Require all granted
127 </Directory>
128 </VirtualHost>
然后设置SE
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6111
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6111/*
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6222
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6222/*
[root@linuxprobe ~]# restorecon -Rv /home/wwwroot/
然后再设置SE对端口号的支持
semanage port -l | grep http #先查看支持没如果支持了就不用再设置了
===========进行设置
[root@linuxprobe ~]# semanage port -a -t http_port_t -p tcp 6111
[root@linuxprobe ~]# semanage port -a -t http_port_t -p tcp 6222
# -a 设置添加
# -t 端口号