У меня есть VPS, который действует как прокси для ssh-туннелированных веб-серверов. Прямо сейчас вы можете позвонить: http://myserverdomain.com:1234 и вы подключаетесь к server1 http://myserverdomain.com:2345 и вы подключаетесь к server2
Я добавил конфигурацию apache со строками:
ProxyPass /server1 http://localhost:1234/
ProxyPassReverse /server1 http://localhost:1234/
И я могу получить доступ к этому серверу, позвонив http: // myserverdomain .com / server1 (Я должен изменить относительные URL-адреса, но это уже другая история)
Проблема в том, что я хотел бы заблокировать прямой вызов по номеру порта, чтобы никто не мог обнаружить все туннелированные веб-серверы, которые в настоящее время подключены, просто путем сканирования http://myserverdomain.com для открытых портов.
Я попытался настроить iptables с помощью iptables -A INPUT -p tcp --destination-port 1234 -j DROP
, но он также заблокировал мой прокси apache (если я правильно понял, это потому, что iptables работает на более низких уровня, чем сервер apache - поправьте меня, если я ошибаюсь).
Если да, то как я могу достичь своей цели - заблокировать порт от прямого вызова, но не перенаправления прокси-сервера apache?
Если у вас и туннели, и Apache на одной машине, просто используйте 127.0.0.1:1234 и 127.0.0.1:2345 для туннелей.
В противном случае, с iptables в машине, где у вас есть туннели:
iptables -I INPUT -p tcp --dport 1234 -J DROP
iptables -I INPUT -p tcp -s 127.0.0.1 -J ACCEPT
iptables -I INPUT -p tcp -s $APACHE_IP -J ACCEPT
должны работать
.