172
правки
Dkirienko (обсуждение | вклад) (Отсылка на статью Avahi) |
Dkirienko (обсуждение | вклад) (Добавил правила, разрешающие фильтрацию соединения с этим же компьютером.) |
||
Строка 1: | Строка 1: | ||
Строка 41: | Строка 37: | ||
-P DROP | -P DROP | ||
-m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT | -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT | ||
-s 127.0.0.1/8 -j ACCEPT | |||
-p tcp --dport 22 -j ACCEPT | -p tcp --dport 22 -j ACCEPT | ||
-p icmp -j ACCEPT | -p icmp -j ACCEPT | ||
Здесь первая строка "-P DROP" указывает политику обработки пакетов "по умолчанию" - входящие пакеты будут сброшены. Затем идёт набор правил, заканчивающихся действием "-j ACCEPT". Пакеты, удовлетворяющие этим правилам, будут приняты. Во второй строчке задаётся правило для принятия всех пакетов уже установленных соединений. В третьей | Здесь первая строка "-P DROP" указывает политику обработки пакетов "по умолчанию" - входящие пакеты будут сброшены. Затем идёт набор правил, заканчивающихся действием "-j ACCEPT". Пакеты, удовлетворяющие этим правилам, будут приняты. Во второй строчке задаётся правило для принятия всех пакетов уже установленных соединений. В третьей строке задано правило, разрешающее все пакеты, отправленные с этого же компьютера (опция -s задаёт источник (source) пакетов, с указанием адреса сети 127.0.0.1/8). Это разрешение нужно для корректной работы некоторых сред разработки (например, Wing IDE), которые взаимодействуют с отладчиком или интерпретатором посредством сетевых соединений. В четвёртой строке - правило для входящих пакетов, отправленных по протоколу tcp (опция -p tcp) на порт 22 (опция --dport 22 задаёт порт назначения (destination) пакета). Это правило мы оставим для возможности удалённого управления компьютером при помощи ssh. Пятая строка разрешает пакеты по протоколу icmp, то есть ping-запросы. | ||
Запишем в файл '''/etc/net/ifaces/default/fw/iptables/filter/OUTPUT''' следующий текст: | Запишем в файл '''/etc/net/ifaces/default/fw/iptables/filter/OUTPUT''' следующий текст: | ||
-P DROP | -P DROP | ||
-m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT | -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT | ||
-d 127.0.0.1/8 -j ACCEPT | |||
-d 194.58.88.173 -j ACCEPT | -d 194.58.88.173 -j ACCEPT | ||
-p tcp --dport 53 -j ACCEPT | -p tcp --dport 53 -j ACCEPT | ||
-p udp --dport 53 -j ACCEPT | -p udp --dport 53 -j ACCEPT | ||
Здесь всё аналогично, в третьей строке мы разрешаем все исходящие пакеты на адрес 194.58.88.173. При необходимости открыть доступ к другим адресам добавьте аналогичные строчки. Можно также открыть доступ целиком к некоторой сети, например, -d 10.0.0.0/8 откроет доступ к группе локальных IP-адресов. В строках | Здесь всё аналогично, в третьей строке разрешаем пакеты, отправляемые на этот же компьютер. В четвёртой строке мы разрешаем все исходящие пакеты на адрес 194.58.88.173 (опция -d задаёт адрес компьютера, на который отправляется пакет, или адрес сети). При необходимости открыть доступ к другим адресам добавьте аналогичные строчки. Можно также открыть доступ целиком к некоторой сети, например, -d 10.0.0.0/8 откроет доступ к группе локальных IP-адресов. В строках 5 и 6 откроем все исходящие соединения на порты 53 по протоколам tcp и udp для того, чтобы работала служба DNS. | ||
Если хочется реализовать блокировку по "чёрному списку", то есть заблокировать доступ к нескольким IP-адресам, оставив открытые все остальные, то можно это реализовать при помощи -P ACCEPT в качестве политики по умолчанию и действий -j DROP для тех адресов, которые нужно заблокировать. | Если хочется реализовать блокировку по "чёрному списку", то есть заблокировать доступ к нескольким IP-адресам, оставив открытые все остальные, то можно это реализовать при помощи -P ACCEPT в качестве политики по умолчанию и действий -j DROP для тех адресов, которые нужно заблокировать. | ||
Строка 70: | Строка 67: | ||
-P DROP | -P DROP | ||
-m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT | -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT | ||
-d 127.0.0.1/8 -j ACCEPT | |||
-p tcp --dport 22 -j ACCEPT | -p tcp --dport 22 -j ACCEPT | ||
-p icmp -j ACCEPT | -p icmp -j ACCEPT | ||
END1 | END1 | ||
Строка 79: | Строка 76: | ||
-P DROP | -P DROP | ||
-m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT | -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT | ||
-d 127.0.0.1/8 -j ACCEPT | |||
-d 194.58.88.173 -j ACCEPT | -d 194.58.88.173 -j ACCEPT | ||
-p tcp --dport 53 -j ACCEPT | -p tcp --dport 53 -j ACCEPT | ||
Строка 94: | Строка 92: | ||
Можно сделать командой | Можно сделать командой | ||
sed 's/^CONFIG_FW=.*/CONFIG_FW=no/' -i /etc/net/ifaces/default/options | sed 's/^CONFIG_FW=.*/CONFIG_FW=no/' -i /etc/net/ifaces/default/options | ||
Тогда у вас сохранятся файлы с цепочками INPUT и OUTPUT, и вы можете не меняя конфигурацию iptables просто включать или выключать работу iptables, меняя параметр CONFIG_FW в указанном файле. | Тогда у вас сохранятся файлы с цепочками INPUT и OUTPUT, и вы можете не меняя конфигурацию iptables просто включать или выключать работу iptables, меняя параметр CONFIG_FW в указанном файле. После применения изменений перезапустите компьютер (просто перезапустить сеть недостаточно, потому что перезапуск сети не отключает файрвол, а просто не настраивает его, поэтому сохраняются старые настройки). | ||
Второй способ. Не отключать фильтрацию как таковую, а просто очистить цепочки с правилами. Можно сделать командами | Второй способ. Не отключать фильтрацию как таковую, а просто очистить цепочки с правилами. Можно сделать командами | ||
echo -n > /etc/net/ifaces/default/fw/iptables/filter/INPUT | echo -n > /etc/net/ifaces/default/fw/iptables/filter/INPUT | ||
echo -n > /etc/net/ifaces/default/fw/iptables/filter/OUTPUT | echo -n > /etc/net/ifaces/default/fw/iptables/filter/OUTPUT | ||
В данном случае для применения новых правил достаточно просто перезапустить сеть командой systemctl restart network. | |||
===Известные проблемы=== | ===Известные проблемы=== | ||
Строка 108: | Строка 106: | ||
В любой момент вы можете проверить содержимое текущих правил iptables при помощи команды | В любой момент вы можете проверить содержимое текущих правил iptables при помощи команды | ||
# iptables-save | # iptables-save | ||
Также рекомендуется вписать правила, разрешающие соединения на этот же компьютер (для сетевых адресов 127.0.0.1/8), так как некоторые программы (например, Wing IDE) используют подобные сетевые соединения и при их фильтрации они будут работать некорректно. | |||
[[Категория:МОС]] |