Установите систему centos 6.3 на Parallels
и я пытаюсь открыть порт 80, чтобы он был доступен извне
попробовал решение gui из этого Почта и это работает, но мне нужно сделать это из сценария.
Пытался это сделать:
sudo /sbin/iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
sudo /sbin/iptables-save
sudo /sbin/service iptables restart
Это создает точно такие же записи iptables, что и инструмент GUI, за исключением того, что он не работает:
$ telnet xx.xxx.xx.xx 80
Trying xx.xxx.xx.xx...
telnet: connect to address xx.xxx.xx.xx: Connection refused
telnet: Unable to connect to remote host
ОБНОВИТЬ:
$ netstat -ntlp
(No info could be read for "-p": geteuid()=500 but you should be root.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:37439 0.0.0.0:* LISTEN -
tcp 0 0 :::111 :::* LISTEN -
tcp 0 0 :::22 :::* LISTEN -
tcp 0 0 ::1:631 :::* LISTEN -
tcp 0 0 :::60472 :::* LISTEN -
$ sudo cat /etc/sysconfig/iptables
# Generated by iptables-save v1.4.7 on Wed Dec 12 18:04:25 2012
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [5:640]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Wed Dec 12 18:04:25 2012
Я бы сказал, что ваше правило находится в конце вашего списка INPUT iptables. Попробуй это iptables -I INPUT 5 -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
а затем запустить service iptables save
. Буква A в вашей команде добавляет правило к текущему списку INPUT. Это после правила, которое может иметь явный REJECT. I в моей команде помещает правило в позицию строки, в данном случае строку 5. Что должно быть ПЕРЕД правилом отклонения по умолчанию. Правила в IPTABLES работают сверху вниз, и если правило совпадает, брандмауэр применяет правило к соединению. Я использую это -iptables-rules-examples- действительно полезно
Команда service iptables restart
не сохраняйте текущие правила iptables.
Выполнить service iptables save
перед перезапуском.
Соответствие правил идет сверху вниз. Таким образом, iptables выполняет действия при первом совпадении. У тебя есть:
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
1-е правило не имеет никаких условий, поэтому нет пакетов, которые могли бы достичь 2-го правила.