Мой коллега установил Jenkins на один из наших тестовых серверов. Когда я получаю доступ к IP-адресу сервера и порту 8080, Jenkins работает, то есть 99.999.999.999:8080
Я хочу заблокировать приложение Jenkins для внешнего мира и сделать его доступным только с внутренних IP-адресов.
Итак, я установил VirtualHost в apache следующим образом:
<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 через jenkins.mytestserver.com, и он заблокирован от внешнего мира.
Как запретить внешнему миру доступ к нему через 99.999.999.999:8080?
Я чувствую, что способ, которым я сделал ReverseProxy выше, неверен, поскольку он просто передает запрос http: // локальный: 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 (Я думаю, что ответ на мой вопрос находится в этом документе, но я не могу его понять).
Любая помощь приветствуется.
С уважением, Стивен
Поскольку вы проксируете трафик с веб-сервера Apache на http://localhost:8080/
, вы можете настроить в Tomcat соединитель что это должно быть связано с address=127.0.0.1
вместо поведения по умолчанию, которое заключается в привязке ко всем интерфейсам.
Таким образом, единственный путь к вашей службе jenkins - через ваш прокси (если, конечно, вы не подключаетесь с той же машины, на которой запущены jenkins)
Если вы также хотите включить SSL в конфигурацию, вы также можете использовать proxyPass, но для порта, прослушивающего 443, и также поместить свою конфигурацию SSL в apache httpd (и иметь перенаправление с порта 80 на 443).
Простой способ заблокировать трафик с помощью iptables
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
отклонить все другие сети