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

Помощь в открытии дополнительных портов - CentOS

Я пытаюсь открыть дополнительный исходящий порт на своем VPS (порт 5900).

Вот мой / etc / sysconfig / iptables:

# Generated by iptables-save v1.3.5 on Sun Jul 10 11:27:12 2011
*mangle
:PREROUTING ACCEPT [68:4952]
:INPUT ACCEPT [68:4952]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [60:7060]
:POSTROUTING ACCEPT [60:7060]
COMMIT
# Completed on Sun Jul 10 11:27:12 2011
# Generated by iptables-save v1.3.5 on Sun Jul 10 11:27:12 2011
*filter
:INPUT ACCEPT [68:4952]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [60:7060]
:RH-Firewall-1-INPUT - [0:0]
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 5900 -j ACCEPT 
COMMIT
# Completed on Sun Jul 10 11:27:12 2011
# Generated by iptables-save v1.3.5 on Sun Jul 10 11:27:12 2011
*nat
:PREROUTING ACCEPT [18:1080]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT
# Completed on Sun Jul 10 11:27:12 2011

Однако порт 5900 по-прежнему закрыт.

Кто-нибудь может мне в этом помочь? Спасибо.

Если это для VNC, а ваш VPS размещен на Amazon, обязательно откройте ограничения безопасности и в вашей группе безопасности Amazon (по умолчанию Amazon разрешает только порты 22 и 80).

Выходной порт обычно не заблокирован, поэтому, вероятно, на хосте, с которого установлено соединение, делать нечего.

Кроме того, правило брандмауэра для 5900 должно быть на получение хост (то есть ваш VPS), и я бы предположил, что он должен выглядеть примерно так;

-A INPUT -p tcp -m tcp -m state --dport 5800 --state NEW -j ACCEPT

НО с добавлением проверки того, что IP-адрес принадлежит вашей сети, а не Интернету в целом (открытие VNC для публики, вероятно, небезопасно).

Наконец, если в вашей организации также есть брандмауэр, вы можете проверить, предотвращает ли брандмауэр исходящее соединение на неавторизованных портах.

Политика вашей выходной цепочки - accept. В вашей конфигурации нет правил, запрещающих вывод на порт 5900.

Вы уверены, что что-то слушает на порту 5900?

пытаться

sudo lsof -l :5900

или

sudo netstat -an | grep LISTEN | grep 5900

чтобы увидеть, что (если есть) прикреплено.

Я предполагаю, что вы имеете в виду «входящий», а не «исходящий» порт 5900, потому что ваш исходящий порт правильно открыт по вашим текущим правилам.

Обычно я избавляюсь от цепочки RH-Firewall-1-INPUT и использую следующее:

*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]

# Allow traffic from the loopback interface
-A INPUT -i lo -j ACCEPT

# Allow ICMP traffic as it helps with connection diagnostics
-A INPUT -p icmp --icmp-type any -j ACCEPT

# Allow traffic from already existing connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Allow connections on port 5900
-A INPUT -p tcp --dport 5900 -m state --state NEW -j ACCEPT

COMMIT

Но если вы хотите максимально приблизиться к исходной конфигурации CentOS, вы можете попробовать следующее:

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]

-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT

-A RH-Firewall-1-INPUT -i lo -j ACCEPT

-A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type 255 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

-A RH-Firewall-1-INPUT -m tcp -p tcp --dport 22 -m state --state NEW -j ACCEPT
-A RH-Firewall-1-INPUT -m tcp -p tcp --dport 5900 -m state --state NEW -j ACCEPT

-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited

COMMIT

Проблема с вашим текущим набором правил заключается в том, что вы не отправляете весь входящий трафик в цепочку RH-Firewall-1-INPUT, что выполняется с помощью следующей строки:

-A INPUT -j RH-Firewall-1-INPUT

Также не забудьте перезагрузить свои правила с помощью перезапуск службы iptables.