Проект «SnakeProject» Михаила Козлова

Навигация

⇒ FreeBSD and Nix ⇐

CISCO

Voice(Asterisk\Cisco)

Microsoft

Powershell

Python

SQL\T-SQL

Общая

WEB Разработка

ORACLE SQL \ JAVA

Мото


Основы понимания iptables


 

Основы понимания iptables


Очень кратко, с минимумом теории

iptables - утилита, с помощью которой мы управляем правилами сетевого фильтра Netfilter

Netfilter - компонент ядра Linux


Синтаксис iptables:
iptables [-t таблица] команда [критерий] [ -j цель]


Таблица filter имеет 3 основные цепочки INPUT, FORWARD, OUTPUT

Имеются дополнительные 2 таблицы:
nat - применяется при необходимости трансляции адресов и портов
mangle - применяется при необходимости внесения изменений в пакет

Цепочки - наборы правил, которые проверяются последовательно для сетевых пакетов

Политика (действие по умолчанию) применяется, если пакет не подходит ни под одно правило в цепочке
Применяется и в случае отсутствия правил вовсе
Не применяется, если пакет подошел хоть под одно правило цепочки


Основные команды:


Основные критерии:

 

Основные действия:


Логика прохождения и обработки сетевых пакетов в iptables (взято в яндекс картинках)

 

----------------------------------------------------------------------------------------------------------------------------------------------------------------

 


Пересылка пакетов через цепочку FORWARD (пакеты, не предназначенные локальной системе)

Включить возможность пересылки (транзитный трафик, обычно используется для сетевого шлюза):


Примеры работы с iptables (для работы потребуется sudo))

Вывести список действующих правил из всех цепочек:
iptables -L

Вывести список действующих правил из таблицы nat:
iptables -t nat -L

Установить политику по умолчанию таблицы FORWARD отбрасывать все пакеты:
iptables -P FORWARD DROP

Разрешить прохождение входящих пакетов по протоколу tcp на порт назначения 22:
iptables -A INPUT -p tcp --dport=22 -j ACCEPT

Разрешить выход исходящих пакетов по протоколу tcp с порта 22 на интерфейсе eth0:
iptables -A OUTPUT -o eth0 -p TCP --sport 22 -j ACCEPT

Запретим прохождение входящих пакетов по протоколу ICMP:
iptables -A INPUT -p icmp -j DROP


netfilter распознает 4 состояния сетевых пакетов (NEW, ESTABLISHED, RELATED, INVALID)

NEW - пакеты, устанавливающие новое соединение

ESTABLISHED - пакеты, принадлежащие установленному соединению

RELATED - пакеты, не принадлежащие установленному соединению 

Пакеты, являющиеся частью новых соединений, инициированые уже установленным ESTABLISHED соединением
Пример: FTP в активном режиме использует разные соединения для передачи данных, которые являются связанными

INVALID - пакеты, которые не могут быть идентифицированны
Пример: ICMP ошибки не принадлежащие существующим соединениям

Разрешить попадание на наш компьютер только тех TCP и UDP пакетов, которые запрошены локальными приложениями:
iptables -A INPUT -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p UDP -m state --state ESTABLISHED,RELATED -j ACCEPT


Сохранение правил iptables на примере Ubuntu Server 20.04

sudo apt-get install iptables-persistent

 

Сохранить правила iptables:

sudo netfilter-persistent save

 

Восстановить правила iptables:

sudo netfilter-persistent reload

 


Живые примеры простейших конфигураций iptables


Пример 1

Стандартный набор правил для простейшего вебсервера и доступ по SSH

/etc/rules.sh:

Проверяем:
bash -c "/etc/rules.sh"

sudo netfilter-persistent save

Перезагружаемся и проверяем:
sudo shutdown -r now


Пример 2

Стандартный набор правил для простейшего шлюза с двумя сетевыми картами для выхода в интернет

/etc/rules.sh:

Проверяем:
bash -c "/etc/rules.sh"

sudo netfilter-persistent save

Перезагружаемся и проверяем:

sudo shutdown -r now

 


Комментарии пользователей

Эту новость ещё не комментировалиНаписать комментарий
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!

Контакты для обмена ссылками между сайтами Видео к статьям на Youtube Сборник материалов по Cisco, Asterisk, Windows Server, Python и Django, SQL и T-SQL, FreeBSD и Linux Код обмена баннерами
Мои друзья: www.info-x.org - Информационный ресурс о ОС FreeBSD За сложными вещами простые действия Новости Ubuntu Linux Сообщество сисадминов Личный сайт skeletora Советы, помощь, инструменты для сис.админа, статическая и динамическая маршрутизация, FreeBSD

Рейтинг@Mail.ru
Рейтинг@Mail.ru Яндекс.Метрика

© Snakeproject.ru создан в 2013 году.
При копировании материала с сайта - оставьте ссылку.