Intereting Posts
Отключенные записи fstab, отображаемые в открытых диалогах GTK В команде «top» Linux есть ли способ отслеживать значения? Каталог «не найден» в HP-UX для точки монтирования NFS Два маршрута к одной и той же сети через разные интерфейсы Как «забыть» учетные данные пользователя после входа в общий ресурс Windows (samba) systemd с таймером как пользователь «Обеспечить сеть» в скрипте gentoo init не работает, как я думал Почему nullglob влияет на завершение вкладок? Рекомендуется использовать param.sched_priority в Linux FIFO при создании streamа? Есть ли истина в философии, которую вы должны синхронизировать; синхронизации; синхронизации; синхронизировать? Как запустить XTerm с подсказкой внизу? ssh не работает в сети, подключенной через TCP / IP Как Unix «fsck» отличается от Windows «chkdsk»? Преобразование абсолютной символической ссылки в относительную символическую ссылку с помощью простой команды Linux Запуск сверху вместо getty

Понимание скрипта оболочки iptables

СИТУАЦИЯ:

Недавно я нашел следующий сценарий оболочки, который работает с iptables, чтобы заблокировать весь доступ в Интернет к / из операционной системы Linux, за исключением открытых терминалов, которые были в группе с именем internet :

КОД:

Это может показаться сложным, но это просто. Сначала создайте группу «Интернет» следующим образом:

  sudo groupadd internet 

Затем сохраните это в скрипте:

  #!/bin/sh # Firewall apps - only allow apps run from "internet" group to run # clear previous rules sudo iptables -F # accept packets for internet group sudo iptables -A OUTPUT -p tcp -m owner --gid-owner internet -j ACCEPT # also allow local connections sudo iptables -A OUTPUT -p tcp -d 127.0.0.1 -j ACCEPT sudo iptables -A OUTPUT -p tcp -d 192.168.0.1/24 -j ACCEPT # reject packets for other users sudo iptables -A OUTPUT -p tcp -j REJECT # open a shell with internet access sudo -g internet -s 

источник: https://plus.google.com/+TobyKurien/posts/YZhZJCZmGgm

ВОПРОС:

Является ли следующая интерпретация происходящих событий правильной?

  • sudo groupadd internet Создана группа под названием Интернет
  • sudo iptables -F Все текущие правила в iptables очищаются
  • sudo iptables -A OUTPUT -p tcp -m owner --gid-owner internet -j ACCEPT У меня возникают проблемы с этим … -A OUTPUT сообщает терминалу добавить / добавить правило, а затем в соответствии с документацией -p«Протокол правила или пакета для проверки» , поэтому -p tcp кажется, размещает правило, которое отражает только протокол tcp , но что, если я хочу посмотреть поток на youtube / twitch? Нужно ли указывать udp , и если да, то как бы включить его?

    Тогда есть -m (для соответствия). Я прочитал документацию, и я не уверен, что она делает. Прямо сейчас, я понятия не имею, что -m owner --gid-owner internet -j . Из комментариев # accept packets for internet group я понимаю, что делает код, но я хочу понять, что делает каждый элемент, чтобы перейти к такому выводу.

Ваша интерпретация верна.

Если вы хотите, чтобы все это также применимо к UDP-пакетам, вам нужно снова добавить один и тот же набор правил, но с -p udp вместо -p tcp . Или просто оставьте этот вариант и примените правила ко всем пакетам (хотя могут быть некоторые ошибки с ICMP-пакетами, поэтому, вероятно, безопаснее просто добавлять оба типа правил). Тем не менее, вам понадобится TCP в первую очередь для доступа, например, Youtube, поэтому даже если потоковая передача с Youtube будет использоваться UDP, вы не сможете смотреть поток, потому что вы никогда не забеременеете.

Опция -m выбирает, какой тип совпадения использовать. Вы можете сопоставлять множество разных критериев, и есть даже расширения для iptables ( man iptables-extensions ) с даже соответствующими модулями. Здесь -m owner выбирает совпадение по собственному --gid-owner пакетов, а --gid-owner указывает на соответствие собственности группы. Таким образом, оба варианта вместе означают «это правило применяется только к пакетам, которые отправляются от кого-то в групповом internet ».

Параметр -j (первоначально «прыжок») указывает, что делать, когда правило совпадает. Вы можете перейти к другой цепочке, или вы можете ACCEPT (прекратить обработку правил и отправить этот пакет), или вы можете REJECT (прекратить обработку правил и проигнорировать этот пакет).

Следующие два правила разрешают пакеты ( ACCEPT ) для специальных адресатов ( -d ), независимо от того, в какой группе находится приложение отправки, а последнее правило отменяет все пакеты ( REJECT ), которые не соответствуют предыдущим правилам. Так что это последнее правило делает фактическую блокировку.

Есть много учебных пособий для iptables в Интернете, google и выберите один из них, если вы хотите узнать больше деталей. Некоторые случайные ссылки, которые я нашел полезными в прошлом: