Firewall start: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
Строка 4: Строка 4:
iptables — это утилита командной строки, используемая для управления встроенным брандмауэром netfilter, доступным в ядре Linux, начиная с версии 2.4. Брандмауэр — это приложение, на котором происходит фильтрация сетевого трафика на основе заданных администратором правил.
iptables — это утилита командной строки, используемая для управления встроенным брандмауэром netfilter, доступным в ядре Linux, начиная с версии 2.4. Брандмауэр — это приложение, на котором происходит фильтрация сетевого трафика на основе заданных администратором правил.


==Схемы==
[[Image:iptables_start1.png|thumb|600px|Логика работы брандмауэра|center]][[Image:iptables_start2.png|thumb|600px|Уровни вложенности|center]]
==Синтаксис Iptables==
# iptables таблица команда цепочка критерии действие
===Таблицы===
===Команды===
===Цепочки===
===Критерии===
===Действие===
==Команды==
===Общие===
*Вывод всех активных правил:
# iptables -L
===Удаление===
====Удалить все правила====
# iptables -F
====Удалить конкретную цепочку====
# iptables -F INPUT
# iptables -F OUTPUT
# iptables -F FORWARD
====Удалить конкретное правило====
Если Вам нужно удалить конкретное правило из iptables, то сперва следует посмотреть, какие правила уже активны, при помощи команды:
# iptables -S
Пример вывода:
-P INPUT DROP
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
А потом уже удалить конкретную цепочку:
# iptables -D INPUT -p tcp --dport 80 -j ACCEPT
* -D - удалить правило
* -p - протокол
* --dport - порт назначения
* -j - Действие
===Сохранение===
====Как сохранять правила====
Если Вам нужно сохранить правило, воспользуйтесь командой:
# iptables-save > /etc/iptables.rules.v4
====Как восстанавливать правила====
Если Вам нужно восстановить правила, то примените команду:
# iptables-restore < /etc/iptables.rules.v4
{{Внимание|При этом использующиеся правила удалятся.}}
===Добавление===
====Запретить принимать любой трафик (a)====
# iptables --policy INPUT DROP
====Запретить принимать трафик с конкретного IP (b)====
# iptables -A INPUT -s 172.10.10.1 -j DROP
* -A - добавить новое правило
* -s - адрес-источник
* -j - действие
====Открыть порт (c)====
=====Открыть входящий порт=====
# iptables -A INPUT -p tcp --dport 80 -j ACCEPT (c)
* -A - добавить новое правило
* -p - протокол
* --dport - порт назначения
* -j - Действие
=====Открыть исходящий порт=====
# iptables -A OUTPUT -p tcp --dport 22 -j DROP
* -A - добавить новое правило
* -p - протокол
* --dport - порт назначения
* -j - действие
===Отмена===
====Разрешить принимать любой трафик (a)====
# iptables --policy INPUT ACCEPT
====Разрешить принимать трафик с конкретного IP (b)====
# iptables -A INPUT -s 172.10.10.1 -j ACCEPT
* -A - добавить новое правило
* -s - адрес-источник
* -j - действие
====Закрыть порт (c)====
=====Закрыть входящий порт=====
  # iptables -A INPUT -p tcp --dport 135 -j DROP (c)
* -A - добавить новое правило
* -p - протокол
* --dport - порт назначения
* -j - действие
=====Закрыть исходящий порт=====
Если Вы хотите заблокировать возможность подключаться по SSH с Вашего сервера к другому хосту или серверу, введите следующую команду:
# iptables -A OUTPUT -p tcp --dport 22 -j DROP
* -A - добавить новое правило
* -p - протокол
* --dport - порт назначения
* -j - действие
=====Блокировка ICMP (ping)=====
Если Вам нужно заблокировать запрос ICMP (ping) от и к Вашему серверу, введите следующие команды:
# iptables -A OUTPUT -p icmp --icmp-type 8 -j DROP
* -A - добавить новое правило
* -p - протокол
*--icmp-type - тип ICMP, а именно ping
* -j - действие
Чтобы заблокировать входящий ping-запрос, введите следующие команды в терминале:
# iptables -I INPUT -p icmp --icmp-type 8 -j DROP


==Источники==
==Источники==

Версия от 14:55, 25 сентября 2023

Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.
Примечание: Обратите внимание, что это не официальная документация, а попытка начинающего админа объяснить материал начинающим админам.

Сетевой экран Iptables

iptables — это утилита командной строки, используемая для управления встроенным брандмауэром netfilter, доступным в ядре Linux, начиная с версии 2.4. Брандмауэр — это приложение, на котором происходит фильтрация сетевого трафика на основе заданных администратором правил.

Схемы

Логика работы брандмауэра
Уровни вложенности

Синтаксис Iptables

# iptables таблица команда цепочка критерии действие

Таблицы

Команды

Цепочки

Критерии

Действие

Команды

Общие

  • Вывод всех активных правил:
# iptables -L

Удаление

Удалить все правила

# iptables -F

Удалить конкретную цепочку

# iptables -F INPUT

# iptables -F OUTPUT

# iptables -F FORWARD

Удалить конкретное правило

Если Вам нужно удалить конкретное правило из iptables, то сперва следует посмотреть, какие правила уже активны, при помощи команды:

# iptables -S

Пример вывода:

-P INPUT DROP
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

А потом уже удалить конкретную цепочку:

# iptables -D INPUT -p tcp --dport 80 -j ACCEPT
  • -D - удалить правило
  • -p - протокол
  • --dport - порт назначения
  • -j - Действие

Сохранение

Как сохранять правила

Если Вам нужно сохранить правило, воспользуйтесь командой:

# iptables-save > /etc/iptables.rules.v4

Как восстанавливать правила

Если Вам нужно восстановить правила, то примените команду:

# iptables-restore < /etc/iptables.rules.v4


Внимание: При этом использующиеся правила удалятся.

Добавление

Запретить принимать любой трафик (a)

# iptables --policy INPUT DROP

Запретить принимать трафик с конкретного IP (b)

# iptables -A INPUT -s 172.10.10.1 -j DROP
  • -A - добавить новое правило
  • -s - адрес-источник
  • -j - действие

Открыть порт (c)

Открыть входящий порт
# iptables -A INPUT -p tcp --dport 80 -j ACCEPT (c)
  • -A - добавить новое правило
  • -p - протокол
  • --dport - порт назначения
  • -j - Действие
Открыть исходящий порт
# iptables -A OUTPUT -p tcp --dport 22 -j DROP
  • -A - добавить новое правило
  • -p - протокол
  • --dport - порт назначения
  • -j - действие

Отмена

Разрешить принимать любой трафик (a)

# iptables --policy INPUT ACCEPT

Разрешить принимать трафик с конкретного IP (b)

# iptables -A INPUT -s 172.10.10.1 -j ACCEPT
  • -A - добавить новое правило
  • -s - адрес-источник
  • -j - действие

Закрыть порт (c)

Закрыть входящий порт
 # iptables -A INPUT -p tcp --dport 135 -j DROP (c)
  • -A - добавить новое правило
  • -p - протокол
  • --dport - порт назначения
  • -j - действие
Закрыть исходящий порт

Если Вы хотите заблокировать возможность подключаться по SSH с Вашего сервера к другому хосту или серверу, введите следующую команду:

# iptables -A OUTPUT -p tcp --dport 22 -j DROP
  • -A - добавить новое правило
  • -p - протокол
  • --dport - порт назначения
  • -j - действие
Блокировка ICMP (ping)

Если Вам нужно заблокировать запрос ICMP (ping) от и к Вашему серверу, введите следующие команды:

# iptables -A OUTPUT -p icmp --icmp-type 8 -j DROP
  • -A - добавить новое правило
  • -p - протокол
  • --icmp-type - тип ICMP, а именно ping
  • -j - действие

Чтобы заблокировать входящий ping-запрос, введите следующие команды в терминале:

# iptables -I INPUT -p icmp --icmp-type 8 -j DROP

Источники