21 Мониторинг сетевых соединений Фаервол
21 Мониторинг сетевых соединений. Фаервол¶
Основные команды:
Команда netstat
предоставляет информацию о сетевых соединениях, таблицах маршрутизации, интерфейсах и их статистике.
Пример использования:
**netstat -tuln**
-t
— показать только TCP-соединения.-u
— показать только UDP-соединения.-l
— показать прослушиваемые сокеты.-n
— отображать IP-адреса и порты в числовом формате.
Команда ss
(Socket Statistics) является более современной альтернативой netstat
и предоставляет аналогичную, но зачастую более подробную информацию о сетевых соединениях. (-t, -u … работает как в netstat
)
Пример использования:
**ss -tuln**
Команда lsof
(List Open Files) может использоваться для отображения открытых файлов, включая сетевые соединения.
Пример использования:
**lsof -i**
Отобразить все сетевые соединения.
Команда tcpdump
— это мощный анализатор пакетов, который захватывает и отображает сетевые пакеты, проходящие через интерфейсы сети. Пример использования:
**sudo tcpdump -i eth0**
i eth0
— указывает интерфейс, на котором нужно захватывать пакеты (например,eth0
).
Фаерволы используются для контроля входящего и исходящего сетевого трафика на основе предопределенных правил. В Linux наиболее часто используется iptables
и его более современная версия nftables
.
Основные команды и концепции:
iptables
— это инструмент для управления правилами фильтрации пакетов в Linux. Он предоставляет интерфейс для настройки таблиц, содержащих наборы правил для входящего, исходящего и пересылаемого трафика.
Просмотр текущих правил:
**sudo iptables -L**
Добавление правила для разрешения трафика на порт 80:
**sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT**
Блокировка трафика с определенного IP-адреса:
**sudo iptables -A INPUT -s 192.168.1.1 -j DROP**
Сохранение правил (они временные до перезагрузки):
**sudo iptables-save > /etc/iptables/rules.v4**
nftables
является более новым и гибким инструментом для настройки фаервола в Linux, предлагающим улучшения по сравнению с iptables
. Создание таблицы и цепочки:
**sudo nft add table inet filter
sudo nft add chain inet filter input { type filter hook input priority 0 \; }**
Добавление правила для разрешения трафика на порт 80:
**sudo nft add rule inet filter input tcp dport 80 accept**
Просмотр текущих правил:
**sudo nft list ruleset**
Основные подходы к созданию правил фаервола:
- Фильтрация по IP-адресам: Создание правил для разрешения или блокировки трафика от конкретных IP-адресов или сетей.
- Фильтрация по портам: Создание правил для разрешения или блокировки трафика на основе портов.
- Стейтлесс и стейтфул фильтрация: Создание правил на основе состояния соединений (например, ESTABLISHED для существующих соединений).