Astra linux firewall настройка

Настройка связки iptables и dnsmasq на Astra Linux «Смоленск»

Краткое руководство по настройке роутера в связке iptables + dnsmasq, а также проброс портов по IP-адресам машин в локальной сети на примере Astra Linux «Смоленск» 1.7.1. Также подойдёт для «Воронежа» и других редакций.

Исходные данные

Имеем на машине 2 сетевых интерфейса:

  • eth0 — для внешней сети 192.168.1.0/24
  • eth1 — для внутренней сети 192.168.100.0/24

Также у нас есть шлюз во внешней сети. Это маршрутизатор с IP-адресом 192.168.1.1

Наша задача — настроить доступ в Интернет для внутренней сети.

Открываем файл /etc/sysctl.conf

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

Теперь создадим правила iptables. Для этого создадим каталог /etc/firewall/ и файл /etc/firewall/iptables.sh

# mkdir /etc/firewall/ # touch /etc/firewall/iptables.sh
# nano /etc/firewall/iptables.sh

и в нём пропишем такой скрипт:

#!/bin/sh iptables -F iptables -t nat -A POSTROUTING -o eth+ -j MASQUERADE iptables -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -t filter -A INPUT -p icmp -j ACCEPT iptables -t filter -A INPUT -i lo -j ACCEPT iptables -t filter -A INPUT -i eth+ -j ACCEPT iptables -t filter -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -t filter -A FORWARD -p icmp -j ACCEPT iptables -t filter -A FORWARD -i lo -j ACCEPT iptables -t filter -A FORWARD -i eth+ -j ACCEPT iptables -t filter -A FORWARD -o eth+ -j ACCEPT iptables -t filter -A INPUT -j REJECT --reject-with icmp-host-prohibited iptables -t filter -A FORWARD -j REJECT --reject-with icmp-host-prohibited iptables-save > /etc/network/iptables
# chmod u+x /etc/firewall/iptables.sh

Теперь откроем файл /etc/network/interfaces

# nano /etc/network/interfaces

и в самом конце пропишем строчку:

Также создадим файл /etc/network/iptables

Теперь вернёмся к файлу /etc/firewall/iptables.sh — запускаем скрипт

Правила файрволла активируются и пропишутся в /etc/network/iptables. В дальнейшем, при перезагрузке системы, система будет тянуть правила из него.

После установки система сама запустит службу dnsmasq и добавит её в автозагрузку. Это можно проверить командой:

Loaded: loaded Active: active (running)

После этого открываем файл /etc/dnsmasq.conf

и в нём пропишем такой конфиг:

domain-needed bogus-priv interface=eth1 resolv-file=/etc/resolv.conf dhcp-range=192.168.100.131,192.168.100.180,24h cache-size=150

Перезапускаем службу dnsmasq

# systemctl restart dnsmasq

Теперь роутер должен работать и машины в сети получать ip-адреса и dns.

При необходимости в пробросе портов по IP-адресам для доступа из внешней сети нужно снова открыть скрипт /etc/firewall/iptables.sh

# nano /etc/firewall/iptables.sh
iptables -t nat -A POSTROUTING -o eth+ -j MASQUERADE
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 1234 -j DNAT --to-destination 192.168.100.111:1234 iptables -t nat -A PREROUTING -i eth0 -p udp --dport 5678 -j DNAT --to-destination 192.168.100.112:5678
iptables -t filter -A INPUT -i eth+ -j ACCEPT
iptables -t filter -A INPUT -p tcp -m state --state NEW -m tcp --dport 1234 -j ACCEPT iptables -t filter -A INPUT -p tcp -m state --state NEW -m udp --dport 5678 -j ACCEPT
  • 1234 и 5678 — номера портов
  • tcp и udp — протоколы
  • 192.168.100.111 и 192.168.100.112 — ip-адреса машин в локальной (внутренней) сети
Читайте также:  Linux mint with kodi

Затем снова запускаем скрипт /etc/firewall/iptables.sh

чтобы изменения вступили в силу.

Новые правила заново перечитаются и запишутся в файл /etc/network/iptables, а уже из этого файла при перезагрузке сервера будут автоматически запускаться эти правила.

Похожие посты:

Источник

Настройка встроенного фаервола

1. Как с помощью встроенного фаервола закрыть для всего доступ, а потом открыть сетевой доступ только для конкретного приложения?

2. С помощью чего можно отслеживать сетевые атаки: подмену MAC, сканирование портов и тд. и т.п.?

Iskatel_znaniy

New member

1. Как с помощью встроенного фаервола закрыть для всего доступ, а потом открыть сетевой доступ только для конкретного приложения?

2. С помощью чего можно отслеживать сетевые атаки: подмену MAC, сканирование портов и тд. и т.п.?

Например можно открыть доступ вот такой командой sudo ufw allow from 192.168.0.2 to any port 22 для конкретного ip адреса для конкретного порта. Нужно просто узнать номер порта Вашего приложения и свой ip адрес. Вместо порта можно наверное указать и приложение. Потом в gufw в правилах посмотреть что получилось. Открытые порты можно смотреть, например, с помощью графической программы Zenmap. Есть так же команда netstat -ltupn А вообще вопрос интересный и надеюсь кто нибудь что нибудь подскажет еще интересное. Так же в fly-admin-dm нужно снять галочку с «Разрешить удаленные сессии». Можно так же с помощью программы Ksystemlog просматривать журналы, например, журнал авторизации. Так же можно смотреть историю команд history , посещения lastlog и время пребывания пользователя last имя пользователя . В gufw можно входящие запретить а исходящие разрешить. Просто сделать профиль «Дом». Так же с помощью, например, программки lynis посмотреть уязвимости в системе.

Вложения

oko

New member

*в сторону*
Алекс Юстасу.

to Yustas
netfilter (и его обертки-интерпретаторы в виде UFW и iptables) в AstraLinux вообще не умеет в приложения, ибо он не «брандмауэр». Зато умеет в L4/L5-протоколы, IP- и MAC-адреса и слегка в L7-уровень. Достаточно ли будет этого для вашего случая — не мне решать, ага.
Что до атак, то приведенные вами приколы решаются в зависимости от контекста. Тут бы следует подтянуть тезаурус на предмет «компьютерных атак» вообще и тех же IDS (СОВ) Snort/Surricata, которые можно поставить на AstraLinux в частности.

Yustas

New member

Юстас — Алексу
*Пить будешь?*

Нашёл вариант с iptables + создание группы.
Насчёт атак хотелось бы проще.

Yustas

New member

oko

New member

to Yustas
AstraLinux CommonEdition — устаревшая ветка, доступная для домашнего пользования. Special Edition — собственно, основной (платный и сертифицированный) продукт. Но в обеих ветках одна и та же GUI-утилита UFW для встроенного межсетевого экрана netfilter.
Как раз Snort/Surricata (не входят в состав ALCE/ALSE по дефолту) и предназначены для обнаружения вторжений (атак) на базе сигнатурного анализа трафика.
А что есть «создание группы в iptables»? Собственные цепочки фильтрации/обработки/трансляции? И что все-таки понималось под целевой задачей?

Читайте также:  Команда посмотреть все диски линукс

Yustas

New member

Целевая задача:
Найти замену Outpost Firewall.
Более подробно:
1. Закрыть досутуп для всех приложений.
2. Открыть досутуп только для необходимых.
3. Закрыть все порты.
4. Запретиь пинг и сканирование портов.
5. Сделаться невидимым в сети.
6. При попытке MITM, подмены DNS, и т.д. и т.п. получать уведомление.

iptables -P OUTPUT -j DROP
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -m owner —gid-owner internet -j ACCEPT
iptables -A OUTPUT -m state —state ESTABLISHED,RELATED -j ACCEPT
iptalbes -A OUTPUT -p tcp -j REJECT —reject-with tcp-reset
sg internet-c firefox

oko

New member

to Yustas
1. Для приложений не получится. Повторюсь, netfilter (подсистема фильтрации в составе ядра Linux) и его командные интерпретаторы (iptables) или GUI-интерфейсы (UFW) не оперируют запущенными программами/приложениями. Раньше в iptables был параметр -m owner —pid-owner PID, где PID — номер процесса (потока), назначаемый каждому запущенному приложению (просмотр через ps ax | grep имя_приложения). Но позже его убрали, посчитав избыточным. Плюс, это порождало бы проблемы при отлавливании PID для комплексных приложений (тот же firefox создает дополнительный процесс для каждой открытой вкладки браузера).
2. Можно использовать вашу схему с группами или аналогичную схему с фейк-юзерами как тут (конец поста). Но у меня на Linux Mint это не заработало, в ALSE тоже. Беда (отказ в доступе) в запуске графических приложений (которым нужен доступ к X-Server) из-под фейк-юзера, когда X-сессия запущена моим штатным пользователем. С группами проблема примерно аналогичная. Возможно, в ALCE разграничений меньше, поэтому там схема с группами сработает — не проверял, ибо не пользуюсь.
3. Не делайте «OUTPUT -m state —state ESTABLISHED,RELATED» — это поддержка «сессии» (по умолчанию, netfilter сессии не поддерживает). Грубо говоря, если добавлено такое правило, то на каждый разрешенный входящий (цепочка filterINPUT) пакет netfilter будет автоматически добавлять разрешение исходящего (цепочка filterOUTPUT) трафика. И, если у вас не сервер с работающим приложением, доступ к которому нужен извне, то вам такое (ESTABLISHED,RELATED) не нужно.
4. Отбивка «-j REJECT —reject-with tcp-reset» не вяжется с желанием «невидимости». Потому что при любой опции REJECT netfilter будет отправлять адресату уведомление о блокированном пакете в рамках выбранного протокола. И в цепочке OUTPUT (исходящие от вашей машины) это тем более смысла не имеет. В наше неспокойное время куда проще делать тупо «-j DROP«. Опять-таки, если у вас не сервер, доступный извне и стремящийся уведомить удаленных пользователей о своей принципиальной доступности, но неправильном трафике, который они к нему шлют.
5. С MiTM и подменой DNS средствами netfilter вы почти ничего не сделаете. Можно, конечно, контролировать целостность и состояние каждого пакета, логировать их, натравливать на лог какое-либо средство высокоуровневого анализа, выявлять аномалии по меткам приходящих ответов (например, искажения TTL и других полей L2, L3, L4 уровней), но. MiTM тем и отличается, что при пассивном методе (перехват и анализ трафика) узнать о нем на стороне источника (ваша машина) фактически невозможно. Или мы говорим о другом MiTM (например, подмена SSL-сертификата провайдером или кем-то еще)?. Вариантов слишком много и, что печально, защититься от них полностью столь примитивными инструментами как netfilter/iptables не получится.

Читайте также:  Java for linux apt get

ЗЫ Outpost Firewall был когда-то хорош. Но от MiTM на канале, от перехвата и манипуляции с DNS (или внедрения ложного DNS-сервера на канале) и т.п. он тоже не защищал ни разу.

Источник

Astra linux firewall настройка

Источник: proglib.io

Источник: proglib.io Важным аспектом при работе с любой операционной системой является обеспечение безопасности. Astra Linux – российский дистрибутив Linux, изначально разработанный с учетом высоких требований к безопасности. В этой статье мы рассмотрим процесс установки Astra Linux, а также настройку SELinux и Firewall для максимальной защиты.

Установка Astra Linux

Для начала нам потребуется установить Astra Linux. После скачивания образа системы, его можно записать на загрузочный USB-накопитель с помощью команды dd:

sudo dd if=AstraLinux.iso of=/dev/sdx bs=4M && sync 

В этой команде if обозначает путь к образу Astra Linux, а of указывает на ваш USB-накопитель.

Настройка SELinux

После установки Astra Linux, следующим шагом будет настройка SELinux. SELinux – это модуль безопасности для ядра Linux, который позволяет управлять правами доступа к различным ресурсам.

Во-первых, убедитесь, что SELinux включен и работает в принудительном режиме, выполнив следующую команду:

Если SELinux выключен или работает в пермиссивном режиме, вам необходимо изменить его на принудительный режим, отредактировав файл /etc/selinux/config.

sudo nano /etc/selinux/config 

Измените параметр SELINUX= на enforcing.

Настройка Firewall

Следующим шагом в обеспечении безопасности является настройка firewall. В Astra Linux используется Netfilter, основной firewall Linux, управляемый с помощью утилиты iptables.

Следующая команда позволит вам открыть порт 22 для SSH:

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

Это позволит принимать входящие соединения на порт 22.

Следующая команда заблокирует все входящие соединения, которые не были инициированы и не относятся к уже установленным соединениям:

sudo iptables -P INPUT DROP 

Это обеспечивает высокий уровень защиты, ограничивая доступ к системе.

В заключении, Astra Linux предлагает мощные инструменты для обеспечения безопасности. Через надлежащую настройку SELinux и firewall можно обеспечить высокий уровень защиты для вашей системы.

Источник

Оцените статью
Adblock
detector