Я установил CentOS 6, но я могу открыть Apache2 снаружи, только отключив брандмауэр.
Может ли кто-нибудь подсказать мне, как я могу открыть apache2 снаружи, не отключая брандмауэр?
ОБНОВИТЬ:
Моя конфигурация iptables следующая:
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-I FORWARD -m physdev --physdev-is-bridged -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
COMMIT
Эта машина имеет IP-адрес 192.168.59.142, и мне нужно получить к нему доступ через apache через другую машину в моей сети.
ОБНОВЛЕНИЕ2:
Решение состоит в том, чтобы добавить это правило в "/ etc / sysconfig / iptables", а затем перезапустить iptables.
-I INPUT -d 192.168.59.142 -p tcp --dport 80 -j ACCEPT
Это должно работать
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
в -I
вставит новое правило в начало таблицы. С помощью -A
он будет добавлен в конец таблицы, и ваше общее правило REJECT будет иметь приоритет, поскольку iptables работает сверху вниз по правилам, и первое, которое соответствует правилам, побеждает.
Если посмотреть на опубликованную вами конфигурацию, вы переместили
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
выше
-A INPUT -j REJECT --reject-with icmp-host-prohibited
это тоже сработает. Перезагрузите брандмауэр с помощью
sudo /sbin/service iptables restart
В качестве альтернативы CentOS также имеет инструмент настройки system-config-firewall
, что позволяет очень легко открыть порт для веб-сервера.
В интерфейсе ncurses выберите «Настроить» и установите флажок «WWW (HTTP)».
В моей системе CentOS 6.4 он добавил следующее правило: /etc/sysconfig/iptables
:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
Решение состоит в том, чтобы добавить это правило в "/ etc / sysconfig / iptables", а затем перезапустить iptables.
-I INPUT -d 192.168.59.142 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT