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

Включение http-доступа через порт 80 для centos 6.3 с консоли

Установите систему 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-го правила.