LinuxForum.Fans
Тема

Проблема с default policy в правилах iptable

Автор: waldi 5 сообщений 2487 просмотров
#120604

Делаю отладку правил iptable на сервере debian, к которому имею физический доступ
Содержание файла /etc/iptables.up.rules буквально следующее
*filter
-A INPUT -p tcp --dport 80 -j ACCEPT
-A OUTPUT -p tcp --sport 80 -j ACCEPT
COMMIT
Инет есть. Мой сервер работает
Команда "iptables -L" выдает

Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:www

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp spt:www

В доках пишут, что закрыть остальной трафик можно добавив две строчки правил по умолчанию
-P INPUT DROP
-P OUTPUT DROP
в файл /etc/iptables.up.rules, т е сделать содержимое этого файла буквально таким
*filter
-A INPUT -p tcp --dport 80 -j ACCEPT
-A OUTPUT -p tcp --sport 80 -j ACCEPT
-P INPUT DROP
-P OUTPUT DROP
COMMIT
Я это сделал
Но, как только я подаю следующую команду в командной строчке
/sbin/iptables-restore < /etc/iptables.up.rules
мой сервер сразу зависает, зависает crontab, настроенный на затирание правил с интервалом 5мин, и даже зависает системное время, короче только reset помогает возродить сервер

В доках пишут, что правила по умолчанию надо ставить обязательно
Если пакет, последовательно прошедший все цепочки, не удовлетворит ни одному критерию, то к нему будут применены правила по умолчанию , и вообще-то такой пакет надо отклонять для пущей защиты
Но почему такой простой вариант правил iptables подвешивает сервер, подскажите, полжалуйста!!!
Что делаю неправильно?

#120614

-P INPUT DROP
-P OUTPUT DROP
на фига?
открой на lo и не будет зависать.

#120635
waldi написал:
-P INPUT DROP
-P OUTPUT DROP
COMMIT
Я это сделал
Но, как только я подаю следующую команду в командной строчке
/sbin/iptables-restore < /etc/iptables.up.rules
мой сервер сразу зависает, зависает crontab, настроенный на затирание правил с интервалом 5мин, и даже зависает системное время, короче только reset помогает возродить сервер

дык ещё-бы! вы подропали ВСЮ сеть. А в Linux ВСЁ через сеть. В том числе и Х-сервер. Естественно клава/мыш/монитор стали ВНЕЗАПНО недоступными (вы пишете "зависли". но они работают).

Правила DROP должны быть В НАЧАЛЕ скрипта, а после него нужно разрешить прохождение всех нужных пакетов (и только их).

#120647
drBatty написал:

дык ещё-бы! вы подропали ВСЮ сеть. А в Linux ВСЁ через сеть. В том числе и Х-сервер. Естественно клава/мыш/монитор стали ВНЕЗАПНО недоступными (вы пишете "зависли". но они работают).

Правила DROP должны быть В НАЧАЛЕ скрипта, а после него нужно разрешить прохождение всех нужных пакетов (и только их).

Так ведь я пробовал и так

*filter
-P INPUT DROP
-P OUTPUT DROP
-A INPUT -p tcp --dport 80 -j ACCEPT
-A OUTPUT -p tcp --sport 80 -j ACCEPT
COMMIT

Все равно висняк

#120649

Да, еще добавил для lo и для внутреннего eth1 , внешний у меня eth0. теперь висняка нет, но и интернета тоже нет
*filter
-P INPUT DROP
-P OUTPUT DROP
-A INPUT -i eth1 -j ACCEPT
-A OUTPUT -o eth1 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A INPUT -p tcp --dport 80 -j ACCEPT
-A OUTPUT -p tcp --sport 80 -j ACCEPT
COMMIT

Войдите или зарегистрируйтесь, чтобы ответить.