我的同事在我们的一台测试服务器上安装了Jenkins。当我访问服务器ip和端口8080时,Jenkins运行的是99.999.999.999:8080
我想将Jenkins应用程序锁定到外部世界,并且只能从内部IP地址获得它。
因此,我在apache中设置了一个VirtualHost,如下所示:
<VirtualHost *:80>
ServerName jenkins.mytestserver.com
ErrorLog logs/jenkins.mytestserver.com-error_log
CustomLog logs/jenkins.mytestserver.com-access_log common
#ProxyPass /usr/share/tomcat6/webapps/ ajp://127.0.0.1:8080/usr/share/tomcat6/webapps/
#ProxyPassReverse /usr/share/tomcat6/webapps/ ajp://127.0.0.1:8080/usr/share/tomcat6/webapps/
#ProxyRequests Off
ProxyPass / http://localhost:8080/ nocanon
ProxyPassReverse / http://localhost:8080/
ProxyRequests Off
ProxyPreserveHost On
<Location />
order deny,allow
deny from all
Allow from 11.111.111.111
</Location>
</VirtualHost>Vhost工作,我可以通过jenkins.mytestserver.com访问jenkins,并将其从外部世界封锁。
我如何阻止外界通过99.999.999.999:8080访问它?
我有一种感觉,我这样做上面的ReverseProxy是不对的,因为它只是将请求传递给http://localhost:8080/,这与http://99.999.999.999:8080一样。
我引用了以下文档:
https://wiki.jenkins-ci.org/display/JENKINS/Apache+frontend+for+security
https://www.mulesoft.com/tcat/tomcat-connectors (我认为我的问题的答案在这个文档中,但我想不出答案)。
任何帮助都很感激。
你好,斯蒂芬
发布于 2015-05-13 16:01:15
一种使用iptable来阻塞流量的简单方法
IPTables如何是一个很好的方法
如何阻止的基本思想是
sudo iptables -A INPUT -s 192.168.x.x -p tcp --dport 8080 -j ACCEPT到您的所有网络sudo iptables -A INPUT -p tcp --dport 8080 -j REJECT以拒绝所有其他网络
发布于 2015-05-14 17:11:06
由于您将apache的流量代理到http://localhost:8080/,所以可以在tomcat 连接器中配置它应该绑定到address=127.0.0.1,而不是默认的行为,即绑定到所有接口。
这样,进入jenkins服务的唯一途径就是通过代理(当然,除非您从运行jenkins的同一台机器连接)。
如果您也希望在配置中包括SSL,那么您也可以使用proxyPass,但是对于监听443的端口,也可以将您的SSL配置放在apache中(并从端口80重定向到443)。
https://serverfault.com/questions/691773
复制相似问题