Роутер и проброс портов на Astra Linux «Смоленск»
Наша задача — настроить доступ в Интернет для внутренней сети.
Для этого в первую очередь открываем файл настроек сетевых интерфейсов /etc/network/interfaces
# nano /etc/network/interfaces
и зададим конфигурацию для внутренней сети:
auto eth1 iface eth1 inet static address 192.168.100.1 netmask 255.255.255.0 network 192.168.100.0 broadcast 192.168.100.255
Затем откроем файл /etc/sysctl.conf
и в нём раскомментируем строку:
После этого проверим статус запуска ufw
по умолчанию он будет отключён, поэтому включим его
Зададим правила файрволла по умолчанию
# ufw default deny incoming # ufw default allow outgoing # ufw default allow routed # ufw reload
Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), allow (routed) New profiles: skip To Action From -- ------ ---- 22/tcp ALLOW IN Anywhere Anywhere on eth1 ALLOW IN Anywhere 22/tcp (v6) ALLOW IN Anywhere (v6) Anywhere (v6) on eth1 ALLOW IN Anywhere (v6)
Далее переходим к файлу с правилами /etc/ufw/before.rules
в самом конце добавим строчки:
*nat :POSTROUTING ACCEPT [0:0] -A POSTROUTING -s 192.168.100.0/24 -o eth0 -j MASQUERADE COMMIT
После этого перезапустим ufw методом отключения и включения
Теперь установим службу DNS и DHCP-серверов dnsmasq
скорее всего, после установки она будет активна.
Затем откроем файл конфигурации dnsmasq
и в самом конце файла пропишем такие строки:
domain-needed bogus-priv interface=eth1 resolv-file=/etc/resolv.conf dhcp-range=192.168.100.101,192.168.100.200,24h cache-size=150
Перезагрузим службу dnsmasq
# systemctl restart dnsmasq
и все изменения должны примениться.
Для проброса портов на машины в локальной сети необходимо открыть файл конфигурации правил
*nat :POSTROUTING ACCEPT [0:0]
-A PREROUTING -i eth0 -p tcp --dport 1234 -j DNAT --to-destination 192.168.100.11:1234 -A PREROUTING -i eth0 -p udp --dport 5678 -j DNAT --to-destination 192.168.100.12:5678
Далее запустим команды ufw для проброса этих портов
# ufw allow proto tcp from any to 192.168.100.11 port 1234 # ufw allow proto udp from any to 192.168.100.12 port 5678
и перезагрузим службу ufw
В итоге последний раздел файла /etc/ufw/before.rules должен выглядеть примерно так:
*nat :POSTROUTING ACCEPT [0:0] -A PREROUTING -i eth0 -p tcp --dport 1234 -j DNAT --to-destination 192.168.100.11:1234 -A PREROUTING -i eth0 -p udp --dport 5678 -j DNAT --to-destination 192.168.100.12:5678 -A POSTROUTING -s 192.168.100.0/24 -o eth0 -j MASQUERADE COMMIT
Готово! Теперь машина с ОС Astra Linux полноценно работает в режиме шлюза и маршрутизатора.
Похожие посты:
Настройка встроенного фаервола
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 сессии не поддерживает). Грубо говоря, если добавлено такое правило, то на каждый разрешенный входящий (цепочка filter — INPUT) пакет netfilter будет автоматически добавлять разрешение исходящего (цепочка filter — OUTPUT) трафика. И, если у вас не сервер с работающим приложением, доступ к которому нужен извне, то вам такое (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 не получится.
ЗЫ Outpost Firewall был когда-то хорош. Но от MiTM на канале, от перехвата и манипуляции с DNS (или внедрения ложного DNS-сервера на канале) и т.п. он тоже не защищал ни разу.
Настройка сети в Astra Linux «Смоленск»
Краткое руководство по настройке сетевого интерфейса и доступа по протоколу SSH, а также установке необходимых сетевых утилит в консольной версии ОС специального назначения Astra Linux Special Edition «Смоленск» версий 1.6 и 1.7.1
Для развёртывания серверов в консольной версии данной ОС в первую очередь необходимо настроить сетевой интерфейс. Для этого при входе в консоль необходимо выставить Integrity Level (уровень целостности) 63. В версии 1.6 он устанавливается принудительно, а в версии 1.7.1 его можно отключить, но в целях безопасности разработчики не рекомендуют его отключать.
Открываем файл /etc/network/interfaces
# sudo nano /etc/network/interfaces
и в конце файла дописываем параметры сети, например:
# Ethernet network interface auto eth0 iface eth0 inet static address 192.168.1.35 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.1
Затем создадим файл /etc/resolv.conf
и прописываем адреса DNS-серверов, например:
После этого запускаем сетевой интерфейс eth0
Проверяем, применились ли изменения
и пропингуем что-нибудь, например yandex.ru
Если всё прописано правильно, то в консоли должны отображаться ответы.
Что касается сетевых утилит, то в версии 1.7.1 они устанавливаются автоматически. В версии 1.6 их можно выбрать при установке, отметив чекбокс на пункте Средства работы в сети
Если по каким-то причинам они не были установлены, тогда вставляем установочный диск или монтируем ISO-образ установочного диска в /mnt/cdrom/
# mount /home/user/iso/smolensk_image.iso /mnt/cdrom
и устанавливаем пакет net-tools
# sudo apt install net-tools
После установки пакета нам будут доступны различные сетевые утилиты, такие как ifconfig, netstat и другие.
Для использования утилит для работы с DNS типа nslookup и host устанавливаем пакет dnsutils
# sudo apt install dnsutils
Также, если по каким-либо не были установлены Средства удалённого доступа SSH, необходимо установить соответствующие пакеты
# sudo apt install openssh-server openssh-client ssh
В версии 1.6 пакет ssh необходимо установить в любом случае
Проверяем состояние запуска службы
Если она активна, значит всё установилось правильно. Теперь к машине можно подключаться с помощью ssh-клиентов.
Далее нам необходимо включить файрволл UFW. Для этого проверим статус запуска
Он должен показать статус inactive.
Для разрешения подключения по SSH включаем соответствующее правило
Теперь файрволл должен запуститься и загружаться вместе с системой.
Проверяем. Для этого перезагрузим систему. В версии 1.7.1 скомандуем
а в версии 1.6 запускаем команду
и ждём минуту, когда система начнёт перезагружаться.
После перезагрузки всё должно нормально работать.