【Ovirt 笔记】限制和允许特定 IP 访问系统配置
2018-10-08 本文已影响7人
58bc06151329
分析整理的版本为 Ovirt 3.4.5 版本。
- 通过修改 apache 的 /etc/httpd/conf.d/z-ovirt-engine-proxy.conf 配置文件进行配置。
apache 2.2
白名单
- </LocationMatch> 标签后 </IfModule> 标签前增加以下内容。
<LocationMatch ^/svmms($|/)>
Order Deny,Allow
Deny from all
Allow from <允许的 IP 地址和 IP 段>
ProxyPassMatch ajp://127.0.0.1:8702 timeout=3600 retry=5
<IfModule deflate_module>
AddOutputFilterByType DEFLATE text/javascript text/css text/html text/xml text/json application/xml application/json application/x-yaml
</IfModule>
</LocationMatch>
<LocationMatch ^/svmms/webadmin/userAutoLogin>
Order Allow,Deny
Allow from all
ProxyPassMatch ajp://127.0.0.1:8702 timeout=3600 retry=5
<IfModule deflate_module>
AddOutputFilterByType DEFLATE text/javascript text/css text/html text/xml text/json application/xml application/json application/x-yaml
</IfModule>
</LocationMatch>
- 其中 <允许的 IP 地址和 IP 段> 需要替换为特定的 IP 地址或者 IP 段。
- 多个 IP 地址或者 IP 段用空格隔开,例如。
- IP 地址和 IP 段也可以一起使用。
# 允许的特定 IP 段
Allow from 10 172.20 192.168.2
# 允许的特定 IP
Allow from 192.168.1.100 192.168.1.101
黑名单
- </LocationMatch> 标签后 </IfModule> 标签前增加以下内容。
<LocationMatch ^/svmms($|/)>
Order Allow,Deny
Allow from all
Deny from <不允许的 IP 地址和 IP 段>
ProxyPassMatch ajp://127.0.0.1:8702 timeout=3600 retry=5
<IfModule deflate_module>
AddOutputFilterByType DEFLATE text/javascript text/css text/html text/xml text/json application/xml application/json application/x-yaml
</IfModule>
</LocationMatch>
<LocationMatch ^/svmms/webadmin/userAutoLogin>
Order Allow,Deny
Allow from all
ProxyPassMatch ajp://127.0.0.1:8702 timeout=3600 retry=5
<IfModule deflate_module>
AddOutputFilterByType DEFLATE text/javascript text/css text/html text/xml text/json application/xml application/json application/x-yaml
</IfModule>
</LocationMatch>
- 其中 <不允许的 IP 地址和 IP 段> 需要替换为特定的 IP 地址或者 IP 段。
- 多个 IP 地址或者 IP 段用空格隔开,例如。
- IP 地址和 IP 段也可以一起使用。
# 不允许的特定 IP 段
Deny from 10 172.20 192.168.2
# 不允许的特定 IP
Deny from 192.168.1.100 192.168.1.101
apache 2.4
白名单
- </LocationMatch> 标签后 </IfModule> 标签前增加以下内容。
<LocationMatch ^/svmms($|/)>
<RequireAll>
Require ip <允许的 IP 地址和 IP 段>
</RequireAll>
ProxyPassMatch ajp://127.0.0.1:8702 timeout=3600 retry=5
<IfModule deflate_module>
AddOutputFilterByType DEFLATE text/javascript text/css text/html text/xml text/json application/xml application/json application/x-yaml
</IfModule>
</LocationMatch>
<LocationMatch ^/svmms/webadmin/userAutoLogin>
<RequireAll>
Require all granted
</RequireAll>
ProxyPassMatch ajp://127.0.0.1:8702 timeout=3600 retry=5
<IfModule deflate_module>
AddOutputFilterByType DEFLATE text/javascript text/css text/html text/xml text/json application/xml application/json application/x-yaml
</IfModule>
</LocationMatch>
- 其中 <允许的 IP 地址和 IP 段> 需要替换为特定的 IP 地址或者 IP 段。
- 多个 IP 地址或者 IP 段用空格隔开,例如。
- IP 地址和 IP 段也可以一起使用。
# 允许的特定 IP 段
Require ip 10 172.20 192.168.2
# 允许的特定 IP
Require ip 192.168.1.100 192.168.1.101
黑名单
- </LocationMatch> 标签后 </IfModule> 标签前增加以下内容。
<LocationMatch ^/svmms($|/)>
<RequireAll>
Require all granted
Require not ip <不允许的 IP 地址和 IP 段>
</RequireAll>
ProxyPassMatch ajp://127.0.0.1:8702 timeout=3600 retry=5
<IfModule deflate_module>
AddOutputFilterByType DEFLATE text/javascript text/css text/html text/xml text/json application/xml application/json application/x-yaml
</IfModule>
</LocationMatch>
<LocationMatch ^/svmms/webadmin/userAutoLogin>
<RequireAll>
Require all granted
</RequireAll>
ProxyPassMatch ajp://127.0.0.1:8702 timeout=3600 retry=5
<IfModule deflate_module>
AddOutputFilterByType DEFLATE text/javascript text/css text/html text/xml text/json application/xml application/json application/x-yaml
</IfModule>
</LocationMatch>
- 其中 <不允许的 IP 地址和 IP 段> 需要替换为特定的 IP 地址或者 IP 段。
- 多个 IP 地址或者 IP 段用空格隔开,例如。
- IP 地址和 IP 段也可以一起使用。
# 不允许的特定 IP 段
Require not ip 10 172.20 192.168.2
# 不允许的特定 IP
Require not ip 192.168.1.100 192.168.1.101
注意
- 配置完成后需要执行 service httpd restart 命令使得最新的配置生效。
- 配置成功生效,显示如下。
[root@localhost conf.d]# service httpd restart
Redirecting to /bin/systemctl restart httpd.service
- 配置因为有语法错误而失败,显示如下。
[root@localhost conf.d]# service httpd restart
Redirecting to /bin/systemctl restart httpd.service
Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.
- 配置有错误,可以通过 service httpd status 命令查看语法错误位置。
[root@localhost conf.d]# service httpd status
Redirecting to /bin/systemctl status httpd.service
httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since 二 2018-09-25 18:13:06 CST; 38s ago
Docs: man:httpd(8)
man:apachectl(8)
Process: 28174 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=1/FAILURE)
Process: 8499 ExecReload=/usr/sbin/httpd $OPTIONS -k graceful (code=exited, status=0/SUCCESS)
Process: 28172 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
Main PID: 28172 (code=exited, status=1/FAILURE)
9月 25 18:13:06 localhost.localdomain systemd[1]: Starting The Apache HTTP Server...
9月 25 18:13:06 localhost.localdomain httpd[28172]: httpd: Syntax error on line 353 of /etc/httpd/conf/httpd.conf: Syntax error on line 36 of /etc/httpd/conf.d/z-ovirt-engine-proxy.conf: Expected </RequireAll1> but saw </RequireAll>
9月 25 18:13:06 localhost.localdomain systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
9月 25 18:13:06 localhost.localdomain kill[28174]: kill: cannot find process ""
9月 25 18:13:06 localhost.localdomain systemd[1]: httpd.service: control process exited, code=exited status=1
9月 25 18:13:06 localhost.localdomain systemd[1]: Failed to start The Apache HTTP Server.
9月 25 18:13:06 localhost.localdomain systemd[1]: Unit httpd.service entered failed state.
9月 25 18:13:06 localhost.localdomain systemd[1]: httpd.service failed.