Образовательный проект «SnakeProject» Михаила Козлова

Навигация

⇒ FreeBSD and Nix ⇐

CISCO

Voice(Asterisk\Cisco)

Microsoft

Powershell

Python

SQL\T-SQL

Общая

WEB Разработка

ORACLE SQL \ JAVA

Мото

Стрельба, пневматика, оружие

Саморазвитие и психология


Iptables в Linux


Iptables в Linux


Давно не работал с iptables, решил освежить знания
Оговорка, ввиду врожденной лени писать описание таблиц и действий не стал
Честно сдул отсюда: https://losst.ru/nastrojka-iptables-dlya-chajnikov
Автору отдельное спасибо, упоминайте источники тех, материал кого использовали


Очень кратко рассмотрим основы бранмауэра iptables

Он встроен в ядро Linux и имеет 3 основные цепочки правил:
INPUT — обрабатывает входящие пакеты
FORWARD — обрабатывает транзитные соединения
OUTPUT — обрабатывает  исходящие пакеты

Две дополнительные цепочки:
PREROUTING — обрабатывает пакеты перед обработкой iptables
POSTROUTING — обрабатывает все проходящие пакеты после прохождения цепочки FORWARD

5 таблиц (используются для различных действий над пакетами):
RAW — используется для работы с "сырыми" пакетами(еще не прошедшими обработку)
MANGLE — используется для модификации пакетов
NAT — используется для NAT(когда сервер используетс в качестве маршрутизатора)
FILTER — основная таблица фильтрации пакетов

Возможные варианты действий:
ACCEPT — разрешить прохождение пакета далее по цепочке
DROP — отбросить пакет
REJECT — отбросить пакет, отправить сообщени отправителю об отклонении пакета
LOG — записать запись о пакете в файл лога

Основные действия:
-A — добавить правило в цепочку
-С — проверить все правила
-D — удалить правило
-I — вставить правило с нужным номером
-L — вывести все правила в текущей цепочке
-S — вывести все правила
-F — очистить все правила
-N — создать цепочку
-X — удалить цепочку
-P — установить действие по умолчанию

Дополнительные опции:
-p — указать протокол, один из tcp, udp, udplite, icmp, icmpv6,esp, ah, sctp, mh
-s — указать ip адрес устройства-отправителя пакета
-d — указать ip адрес получателя
-i — входной сетевой интерфейс
-o — исходящий сетевой интерфейс
-j — выбрать действие, если правило подошло

Общий формат правила:
iptables -t <таблица> <действие> <цепочка> <доп_опции>


Установка (варианты для Centos и Debian):
yum install iptables
apt install iptables


Вывести список правил можно так(примеры):
iptables -L
iptables -L INPUT

Очистить (примеры):
iptables -F input
iptables -F
iptables -t nat -F
iptables -t mangle -F


Правила(Политики по умолчанию) по умолчанию(примеры):
iptables -p INPUT DROP
iptables -p OUTPUT ACCEPT
iptables -p FORWARD ACCEPT

iptables --policy INPUT DROP
iptables --policy OUTPUT ACCEPT
iptables --policy FORWARD ACCEPT


Пример блокировки определенного ip (входящие и исходящие):
iptables -A INPUT -s 1.1.1.1 -j DROP
iptables -A OUTPUT -s 1.1.1.1 -j DROP

Пример блокировки подсети:
iptables -A INPUT -s 1.1.1.0/24 -j DROP
iptables -A INPUT -s 1.1.1.0/255.255.255.0 -j DROP

Блокировка определенного протокола(ssh) для этой сети:
iptables -A INPUT -p tcp --dport ssh -s 1.1.1.0/24 -j DROP

Примеры вывода првил с номерами, количеством пакетов и байт, ip адресов:
iptables -L 
iptables -L INPUT -v
iptables -L INPUT -v --line-numbers
iptables -L INPUT -v -n

Удаление правила (8 - номер правила из вывода iptables -L INPUT -v --line-numbers):
iptables -A INPUT -s 1.1.1.0/24 -j DROP
iptables -L INPUT -v --line-numbers
8 0 0 DROP tcp -- any any 1.1.1.0/24 anywhere tcp dpt:ssh
iptables -D INPUT 8


Пример из моей статьи про Apache:

Очищаем правила:
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X

Разрешаем уже установленные соединения:
iptables -A INPUT --match state --state ESTABLISHED,RELATED -j ACCEPT
Лупбэк интерфейс:
iptables --append INPUT -i lo -j ACCEPT
Пинги:
iptables -A INPUT --protocol icmp --icmp-type any -j ACCEPT
ПРотокол ssh:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

Разрешаем подключения на порты apache:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
Разрешаем подключения на порт mysql:
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

Политика по умолчанию:
iptables --policy INPUT DROP

Сохраним правила:
iptables-save > /root/IPTables.rules
service iptables save

 


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

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

Контакты Группа ВК Сборник материалов по Cisco, Asterisk, Windows Server, Python и Django, SQL и T-SQL, FreeBSD и LinuxКод обмена баннерами Видео к IT статьям на YoutubeВидео на другие темы Смотреть
Мои друзья: Советы, помощь, инструменты для сис.админа, статическая и динамическая маршрутизация, FreeBSD

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

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





Поддержать автора и проект