A.R.T., эти строки, начинающиеся с решетки - комментарии!!! Работает потому, что почти все закомментировано...
Рекомендую контролировать результат руками:
iptables -L -nxили если еще детальнее:
iptables -L -nvx --line-numbersIptables - это древовидные цепочки правил. Проверка правил для пакета выполняется строго последовательно. Терминирующие действия типа ACCEPT, REJECT, DROP и т.п. прекращают дальнейшую обработку правил для текущего пакета. Соотв., чтобы "запретить все, разрешить определенное" надо сперва разрешить "определенное", а потом "запретить все".
Например такое задание: 2 интерфейса: eth0 - локалка, без защиты; eth1 - инет, входящие на порты 80/tcp и 22/tcp, пинги запрещены (imho, бессмыслица запрещать пинги).
Считаем, что таблицы у нас пустые.
# Через таблицы идет и трафик локальной петли - его фильтровать не надо.
iptables -A INPUT -i lo -j ACCEPT
# Локалку пускаем без фильтров.
iptables -A INPUT -i eth0 -j ACCEPT
# Теперь инет. Т.к. других интерфейсов у нас нет, то указание "-i eth1" опускаю.
# Ограничиваем пинги и разрешаем прочие icmp.
# Сменить правило на DROP всегда не поздно, а для тестирования лучше видеть реакцию.
iptables -A INPUT -p icmp -m icmp --icmp-type ping -j REJECT --reject-with icmp-host-prohibited
iptables -A INPUT -p icmp -j ACCEPT
# Разрешаем пакеты для уже активных соединений.
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# Разрешаем создание соединений для портов 80/tcp и 22/tcp.
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
# Запрещаем "все остальное".
iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited
Ограничений на исходящие соединения не делаем (это сложнее и зачастую бесполезно).
Данный пример выполняется непосредственно в консоли (без всяких конфигов и служб).
Для очистки таблиц можно:
1. Воспользоваться побочным эффектом остановки "службы" iptables:
service iptables stop2. Очистить iptables напрямую:
iptables -F
iptables -X
iptables -t mangle -F
iptables -t mangle -X
iptables -t nat -F
iptables -t nat -X
В командах, где таблица не указывается явно, используется filter.
В конфиге /etc/sysconfig/iptables даны те же самые строки параметров iptables, только не указывается сама команда iptables и используемая таблица вынесена в заголовок блока.
Надеюсь стало яснее? Все таки хотелось бы чтобы было понимание. Т.к. рабочий пример я уже приводил, но что-то мешает его правильно применить.
Applying iptables firewall rules: Error occurred at line: 19
Не понятно, к чему это относится.
Try `iptables-restore -h' or 'iptables-restore --help' for more information.
Bad argument `.log-level'
А вот это ясно дает понять, что правила сделаны без приложения знаний. Ищи, где у тебя встречается строка ".log-level".