Настроил проброс портов через iptables и ufw. Но есть кое-что, чего я не понимаю, я просто не могу заставить iptables перенаправить порт 443 на 8443 без разрешения порта 8443 на UFW.
Я хочу, чтобы порт 443 перенаправлялся на порт 8443, но я также хочу, чтобы порт 8443 был запрещен из-за пределов моей сети.
Итак, я могу перенаправить порт 443 на 8443 только в том случае, если я полностью разрешаю оба порта 443 и 8443 на UFW.
Это единственное правило, которое у меня есть в before.rules:
-A PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8443
Это моя конфигурация маршрутизации iptables (очень простая):
pkts bytes target prot opt in out source destination
0 0 REDIRECT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 redir ports 8443
Это мой статус UFW это работает:
To Action From
-- ------ ----
22 ALLOW Anywhere
443 ALLOW Anywhere
8443 ALLOW Anywhere // THIS IS WHAT BOTHERS ME
22 ALLOW Anywhere (v6)
443 ALLOW Anywhere (v6)
8443 ALLOW Anywhere (v6) // THIS IS WHAT BOTHERS ME
Вот как Я хочу защитить свой брандмауэр, но он не работает:
To Action From
-- ------ ----
22 ALLOW Anywhere
443 ALLOW Anywhere
22 ALLOW Anywhere (v6)
443 ALLOW Anywhere (v6)
Любые идеи? Заранее спасибо.
Вот решение, которое для меня должно быть способом переадресации портов по умолчанию, я действительно не понимаю, почему большинство людей используют iptables.
(1): если вы уже настроили переадресацию портов с помощью iptables / ufw или любого другого инструмента, удалите правила. в моем случае из /etc/ufw/before.rules
(2): запретить порт, который вы должны были открыть для пересылки. В моем случае 8443.
(3): мне пришлось установить xinetd в Ubuntu 12.04
#apt-get install xinetd
(4): создайте новую службу, которая будет перенаправлять порт:
vi /etc/xinetd.d/tomcat-https С этим содержимым:
service tomcat-https
{
disable = no
flags = REUSE
wait = no
user = root
socket_type = stream
protocol = tcp
port = 443
redirect = localhost 8443
log_on_success -= PID HOST DURATION EXIT
#per_source = UNLIMITED
#instances = UNLIMITED
}
(5): Добавьте службу в / etc / services
vi /etc/services
Эта строка:
https 443/tcp # http protocol over TLS/SSL
Должно получиться так:
https 443/tcp tomcat-https # http protocol over TLS/SSL
Наконец мне пришлось сделать полную перезагрузку. Вы можете попробовать перезапустить ufw, сеть и xinetd.
Вместо использования PREROUTING для перенаправления пакетов вы можете использовать rinetd
. Эта программа прослушивает данный порт, и когда кто-то подключается к нему, rinetd подключается к данному порту назначения и, по сути, передает трафик между ними через прокси. Если rinetd прослушивает порт 443 и перенаправляет соединения на порт 8443, вы можете разрешить соединения на 8443 с localhost и заблокировать все остальные.