Вместо того, чтобы вводить правила вручную, вы можете использовать их, iptables
чтобы добавить правила в соответствующие цепочки и затем сохранить их. Это позволит вам отлаживать правила в реальном времени, подтверждая, что они правильные, а не добавлять их в файл, как вы, кажется, делаете.
Чтобы открыть порт 80, я делаю это:
$ sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
$ sudo /etc/init.d/iptables save
Последняя команда сохранит добавленные правила. Это правило, которое я бы использовал, чтобы открыть порт для веб-трафика.
Почему ваше правило вызывает проблемы
Если вы заметили правило, которое вы пытаетесь использовать:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
Имеет цепочку под названием «RH-Firewall-1-INPUT». Если у вас нет этой цепочки или ссылки из INPUT
цепочки на эту цепочку, то это правило никогда не будет доступно. Это правило может быть таким:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
Или ваша INPUT
цепочка должна ссылаться на эту цепочку RH-Firewall-1-INPUT
с помощью правила вроде этого:
$ sudo iptables --list
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0
....
ПРИМЕЧАНИЕ: вы можете увидеть, какие цепочки у вас есть с этой командой:
$ sudo iptables -L| grep Chain
Chain INPUT (policy ACCEPT)
Chain FORWARD (policy ACCEPT)
Chain OUTPUT (policy ACCEPT)
...
Также, возможно, потребуется изменить состояния, чтобы разрешить существующие соединения.
-A INPUT -m state --state NEW,ESTABLISHED -m tcp -p tcp --dport 80 -j ACCEPT
Также, когда вы используете -A
переключатель, вы добавляете правило в цепочку INPUT
. Если перед ним есть другие правила, которые блокируют и / или мешают достижению этого правила, оно никогда не будет выполнено. Таким образом, вы можете захотеть переместить его в начало, вставив, а не добавив, например так:
-I INPUT -m state --state NEW,ESTABLISHED -m tcp -p tcp --dport 80 -j ACCEPT
Использование GUI
Брандмауэры могут быть сложными животными. Таким образом, вы можете попробовать вместо этого TUI (TUI являются GUI для терминала).
$ sudo system-config-firewall-tui
Затем вы можете пройти через различные экраны настройки iptables
правил.
Ссылки
/etc/sysconfig/iptables
и добавить их. Ваши оригинальные записи должны быть в этом файле/etc/sysconfig/iptables.save
.Я недавно установил CentOS 6.5 как виртуальную машину по той же причине, чтобы использовать в качестве виртуального веб-сервера. Во всяком случае, я следовал этому очень подробному руководству из CentOS Wiki . Затем, согласно ответу @slm, я добавил к нему порт 80 и сохранил, используя
sudo /etc/init.d/iptables save
.iptables -L -v
имеет такой вывод:источник
Если вы хотите отредактировать настройки брандмауэра, но вы не знакомы с этим
iptables
, я предлагаю вам использовать этотsystem-config-firewall-tui
инструмент, если у вас нет X-сервера, или использоватьsystem-config-firewall
инструмент, который является инструментом GUI для него.источник