Блокировка интернета в МОС при помощи iptables: различия между версиями

Материал из IT в школе
Перейти к навигацииПерейти к поиску
Добавил правила, разрешающие фильтрацию соединения с этим же компьютером.
(Отсылка на статью Avahi)
(Добавил правила, разрешающие фильтрацию соединения с этим же компьютером.)
Строка 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 udp --dport 22 -j ACCEPT
  -p icmp -j ACCEPT
  -p icmp -j ACCEPT
Здесь первая строка "-P DROP" указывает политику обработки пакетов "по умолчанию" - входящие пакеты будут сброшены. Затем идёт набор правил, заканчивающихся действием "-j ACCEPT". Пакеты, удовлетворяющие этим правилам, будут приняты. Во второй строчке задаётся правило для принятия всех пакетов уже установленных соединений. В третьей и четвёртой строках - правила для входящих пакетов, отправленных по протоколам tcp и udp (опции -p tcp и -p udp) на порт 22 (опция --dport 22 задаёт порт назначения (destination) пакета). Пятая строка разрешает пакеты по протоколу icmp, то есть ping-запросы.
Здесь первая строка "-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-адресов. В строках 4 и 5 откроем все исходящие соединения на порты 53 для того, чтобы работала служба DNS.
Здесь всё аналогично, в третьей строке разрешаем пакеты, отправляемые на этот же компьютер. В четвёртой строке мы разрешаем все исходящие пакеты на адрес 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 udp --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) используют подобные сетевые соединения и при их фильтрации они будут работать некорректно.
[[Категория:МОС]]

Навигация