Вопрос 22
Каждое правило -- это строка, содержащая в себе критерии определяющие, подпадает ли пакет под заданное правило, и действие, которое необходимо выполнить в случае выполнения критерия. В общем виде правила записываются примерно так:
iptables [-t table] command [match] [target/jump]
Если в правило не включается спецификатор [-t table], то по умолчанию предполагается использование таблицы filter, если же предполагается использование другой таблицы, то это требуется указать явно.
Таблицы и цепочки
В iptables существуют 3 таблицы: filter - Используется для фильтрации входящего, транзитного и исходящего трафика, имеет 3 цепочки INPUT - сюда попадает все входящие пакеты FORWARD - сюда попадают пакеты предназначенные другой машине в сети OUTPUT - все исходящие пакеты Над пакетамми проходящими в таблице filter можно делать следующие действия: DROP - блокировать пакет ACCEPT - разрешить(пропустить далее) пакет. Это таблица используется по умолчанию. nat - Используется для трансляции сетевых адресов(NAT) PREROUTING - используется для DNAT(трансляция адреса назначения) POSTROUTING - тут происходит SNAT(Изменение Сетевого Адреса Отправителя) OUTPUT - Все исходящие из этой цепочки пакеты Действия, используемые в этой цепочке: DNAT - как уже упоминалось, используется для трансляции адреса назначения, использую это действие, мы можем пробросить порт, либо целую машину в другую сеть. SNAT - изменяет исходные адреса пакетов, используется для того, чтобы машины в локальной сети имели доступ в интернет(в случае если наш компьютер - роутер) MASQUERADE - по сути тоже самое, что и SNAT, только считается что больше нагружает систему. Если у вас выделенный ip - динамический, то нужно использовать именно его, если не хотите каждый раз переписывать правила SNAT. mangle - Таблица для изменения заголовков пакетов. Имеет цепочки: PREROUTING, FORWARD, OUTPUT, POSTROUTING. У всех цепочек роль одна - вносить изменения в заголовок пакета на различных стадиях движения этого пакета через цепочки iptables. Над этими пакетами можно проводить действия TOS, TTL, MARK.
С точки зрения iptables трафик бывает 3х типов: Входящий Транзитный Исходящий
После прохождения nat(PREROUTING), основываясь на записях в mangle(PREROUTING) и nat(PREROUTING), ядро принимает решение какой будет трафик, входящим или транзитным. Если трафик оказался транзитным, то идем в цепочку mangle(FORWARD), если входящим, то в mangle(INPUT). 1. Входящий трафик - данные, которые принимает приложение запущенное на компьютере 2. Исходящий трафик - трафик, который передает приложение через сеть 3. Транзитный трафик - трафик, который проходит через наш компьютер другим(в случае если наш компьютер работает как маршрутизатор)
Создание дополнительных цепочек с помощью команды -N.
iptables [-N chain]
TCP –rules – описывает какие порты могут быть доступны из Internet.
TCP порт с номером 21 является портом управления FTP соединениями. Порт 22 - это SSH, который намного более безопасен чем telnet на 23 порту. Если Вам вздумается предоставить доступ к командной оболочке (shell) кому бы то ни было из Интернет, то лучше конечно пользоваться SSH.
Порт 80 - это порт HTTP, другим словами - web сервер, уберите это правило, если у вас нет web сервера. HTTPS защищенный - 443 порт.
UDP –rules;
ICMP-rules;