Firewall start: различия между версиями
Нет описания правки |
|||
Строка 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
Сетевой экран 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