Назад | Перейти на главную страницу

Не могу перенаправить порт 443 на 8443, не разрешая 8443 на ufw

Настроил проброс портов через 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 и заблокировать все остальные.