iptables CentOS

Содержание
Введение
Проверить версию
-L: Проверить статус
-F: Очистить все правила
-save: Сохранить конфигурацию
-restore: Восстановить конфигурацию из файла
-A: Добавить правило
Разрешить доступ по ssh
Редактирование файла с конфигурацией
Похожие статьи

Введение

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

Для использования утилиты iptables требуются привилегии суперпользователя (root).

Проверить версию

Чтобы проверить статус iptablesd выполните

iptables -V

В новых дистрибутивах, например, Rocky или CentOS 8 результат будет содержать nf_tables

iptables v1.8.4 (nf_tables)

В старых дистрибутивах, например, CentOS 7 результат будет содержать legacy версию

iptables v1.4.21

Также изучить тип iptables можно с помощью

ls -al /usr/sbin/iptables

Пример для nft

lrwxrwxrwx. 1 root root 17 May 19 2021 /usr/sbin/iptables -> xtables-nft-multi

Пример для устаревшей (legacy) версии

lrwxrwxrwx. 1 root root 17 Oct Thu 2024 /usr/sbin/iptables -> xtables-multi

Проверить статус

Чтобы проверить статус iptables выполните

iptables -L

Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination

Результат выше получен при выключенном firewall который является надстройкой над iptables и добавляет большое количество нужных ему записей.

Выключить firewall можно командой systemctl stop firewalld. Подробнее здесь

Как удалить все существующие правила вы узнаете из следующего параграфа.

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

Чтобы удалить все правила iptables выполните

iptables -F

Теперь если выполнить iptables -L получится пустой список правил, который вы уже видели выше.

iptables -L

Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination

Перед тем как удалять текущую конфигурацию советую сохранить её в файл

Сохранить конфигурацию

Чтобы сохранить текущую конфигурацию iptables выполните

iptables-save > fwoff

fwoff означает firewall off - то есть такая конфигурация, при которой мы не применяем никаких правил.

Восстановить конфигурацию

Чтобы восстановить конфигурацию iptables из файла выполните

iptables-restore < fwoff

РЕКЛАМА от Яндекса. Может быть недоступна в вашем регионе

Конец рекламы. Если там пусто считайте это рекламой моей телеги

Добавить правило

Чтобы добавить к текущей конфигурации iptables новое правило выполните

iptables -A

Например чтобы добавить правило на входящий трафик на локальный интерфейс выполните

iptables -A INPUT -i lo -j ACCEPT

Использована команда

--append -A chain Append to chain

C опциями:

[!] --in-interface -i input name[+] network interface name ([+] for wildcard) --jump -j target target for rule (may load target extension)

Проверить результат

iptables -L

Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- anywhere anywhere Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination

Явно задать разрешение на получение ответного трафика

iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

--match -m match extended match (may load extension)

conntrack означает connection tracker - этот модуль пришёл на смену модулю state начиная с версии ядра 3.7 подробнее - здесь

Определить версию своего ядра можно командой uname -r подробнее здесь

iptables -L

Chain INPUT (policy ACCEPT) Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- anywhere anywhere ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination

РЕКЛАМА хостинга Beget, которым я пользуюсь более десяти лет

Изображение баннера

Конец рекламы хостинга Beget, который я всем рекомендую.

Разрешить доступ по ssh

Чтобы разрешить доступ по ssh

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -L

Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- anywhere anywhere ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED ACCEPT tcp -- anywhere anywhere tcp dpt:ssh Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination

Конфиграцию с созданными правилами можно сохранить в файл

iptables-save > fwon

Запретить всё что не разрешено

Если созданы какие-либо разрешающие правила от них нет толку пока нет запрещающих.

Чтобы запретить всё, кроме того что явно разрешено выполните

iptables -A INPUT -j DROP

Либо внесите измнения в файл конфигурации вручную и загрузите iptables из него - как это сделать вы узнаете в следующем парагарафе.

Редактирование файла с конфигурацией

С помощью iptables-save и iptables-restore можно сохранять и восстанавливать конфигурации.

Выглядят файлы с конфигурацией следующим оригинальным образом

vi fwoff

# Generated by iptables-save v1.4.21 on Thu Oct 10 12:50:16 2024 *filter :INPUT ACCEPT [336:29428] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [579:44284] COMMIT # Completed on Thu Oct 10 12:50:16 2024

В эти файлы можно вносить изменения. Перед этим желательно восстановить конфигурацию из какого-то другого файла.

iptables-restore < fwoff
vi fwon

# Generated by iptables-save v1.4.21 on Thu Oct 10 12:50:16 2024 *filter :INPUT ACCEPT [1:169] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [1060:80724] -A INPUT -i lo -j ACCEPT -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -j DROP COMMIT # Completed on Thu Oct 10 12:50:16 2024

Последнее правило запрещает всё что не разрешено явно.

iptables -L

Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- anywhere anywhere ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED ACCEPT tcp -- anywhere anywhere tcp dpt:ssh DROP all -- anywhere anywhere Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination

Похожие статьи
Настройка сети в CentOS
Создать новый интерфейс
CentOS
Компьютерные сети
ip
hostname
DNS
route: Маршруты
Firewall
netstat
iftop: Мониторинг сети
nethogs: Мониторинг сети
tc: Контроль за трафиком
iperf: Измерение скорости сети
uuidgen: uuid для сетевого интерфейса
SCP: обмен файлами;
SSH: удалённый доступ
Сокеты в C

Поиск по сайту

Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых

Перейти на канал

@aofeed

Задать вопрос в Телеграм-группе

@aofeedchat

Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящую по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: