Apache - разрешить прокси, заблокировать прямой вызов порта

У меня есть 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?

1 ответ

Если у вас есть туннели и 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

должно сработать

Другие вопросы по тегам