Apache-2.2

將 Jenkins 鎖定在 8080 埠

  • May 14, 2015

我的同事在我們的一台測試伺服器上安裝了 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(我認為我的問題的答案在這個文件中,但我無法弄清楚)。

任何幫助表示讚賞。

問候,斯蒂芬

使用 iptables 阻止流量的簡單方法

IPTables How TO是一個相當不錯的方法

如何阻止的基本思想是

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以拒絕所有其他網路

由於您將來自 apache 網路伺服器的流量代理到http://localhost:8080/,因此您可以在 tomcat連接器中配置它應該綁定到的,address=127.0.0.1而不是綁定到所有介面的預設行為。

這樣,進入您的詹金斯服務的唯一途徑是通過您的代理(當然,除非您從執行詹金斯的同一台機器連接)

如果您也想在配置中包含 SSL,那麼您也可以使用 proxyPass,但對於偵聽 443 的埠,並將您的 SSL 配置也放入 apache httpd(並從埠 80 重定向到 443)。

引用自:https://serverfault.com/questions/691773