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

Yustas

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

2. С помощью чего можно отслеживать сетевые атаки: подмену MAC, сканирование портов и тд. и т.п.?
 
Сообщения
512
#2
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
Сообщения
1 003
#3
*в сторону*
Алекс Юстасу...

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

Yustas

New member
Сообщения
19
#4

Yustas

New member
Сообщения
19
#5
А в платной версии дистрибутива нет GUI-утилиты, которая совмещает оба моих требования?
 

oko

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

Yustas

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

А что есть "создание группы в iptables"? Собственные цепочки фильтрации/обработки/трансляции?
Нашёл вот такое:

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
Сообщения
1 003
#8
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-сервера на канале) и т.п. он тоже не защищал ни разу...
 
Сообщения
512
#9
Целевая задача:
Найти замену 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
Можно еще антивирус Dr.Web купить. Недорого и в Astra Orel без проблем ставиться в отличие от Касперского. Я пока пробную версию использую. На днях купить собираюсь. Нормально поставилась и работает. А у Касперского только для бизнеса есть и дорогие и там как то не очень еще понятно.
 

Yustas

New member
Сообщения
19
#10
Можно еще антивирус Dr.Web купить. Недорого и в Astra Orel без проблем ставиться в отличие от Касперского. Я пока пробную версию использую. На днях купить собираюсь. Нормально поставилась и работает. А у Касперского только для бизнеса есть и дорогие и там как то не очень еще понятно.
В описании версии под linux не нашёл фаервола, он только под windows.
 

Yustas

New member
Сообщения
19
#11
1.
1. Для приложений не получится.
Так о какой безопастности можно говорить, если я не могу контролировать доступ в сеть приложений?
2.
Другой способ контроля трафика кроме netfilter есть? Может что то на уровне системных вызовов функий ядра по работе с сокетами, перехват этих функций(отдельный софт, подобный Snort/Surricata/)?
3. Возможно ли получить список приложений в системе, которым нужен доступ в сеть?
4.
5. С MiTM и подменой DNS средствами netfilter вы почти ничего не сделаете
Да, понимаю. Понял, что смотреть в сторону Snort/Surricata.
5. Создал тему, но никто не отвечает https://forum.astralinux.ru/threads/3972/, можете посмотреть? Нигде не могу найти подробного описания netstat-а.
Хочу понять, как полностью закрыть все порты.
 
Последнее редактирование:

oko

New member
Сообщения
1 003
#12
to Yustas
1. Не ставить и не юзать подозрительный или левый софт? Технически, "белый список" приложений в текущие времена уже не является гарантом, более того может создать ложное чувство защищенности. Положим, вам нужно юзать тот же Chrome - вы даете ему разрешение на "выход" по http/https (80/TCP, 443/TCP) - он в рамках разрешенного выхода гонит не только ваши запросы, но и телеметрию и черт знает что еще. И все в рамках установленных правил. Так что да, только "нужный уровень доверия" в используемом софте спасут отца русской безопасности, ага...
2. netfilter - подсистема ядра (пожалуй, самая шустрая из всех Unix- и BSD- подобных операционных систем). Вообще, вам сюда для начала, а затем сюда для изучения связки iptables+cgroups. Но это, imho, несколько велосипедненько...
3. Которым нужен или которые хотят? И по каким портам и адресам хотят? Посмотрите в сторону утилиты ss или выхлопа lsof -i...
4. Тащем-та Snort/Surricata с пассивным MiTM тоже мало что сделают. Хотите защиту от MiTM? Арендуйте VPS в неизвестной зоне и киньте туда VPN или tunnel-proxy от себя. Теперь нарушителю придется MiTMить VPSку. А если заморочиться и сделать динамический выбор из нескольких VPS на каждое новое соединение, то...
5. Вас же в Гугле/Яндексе не забанили? Да и man netstat никто не отменял. Но если коротко, то Local Address - адрес и порт, открытый на этой машине (на которой выхлоп netstat), причем запись 0.0.0.0 означает "применительно к любому IP-адресу, назначенному любому интерфейсу этой машины". А Foreign Address - адрес и порт удаленной машины, причем 0.0.0.0:* означает, что удаленная машина еще не подключилась, но само подключение разрешено для машины с любым удаленным адресом и портом-источником. Аналогично по ipv6...

ЗЫ В спойлере Спойлеры почему-то не работают, поэтому ниже привел банальный пример iptables с закрытием любых внешних подключений и разрешением любых исходящих (с указанием конкретного интерфейса и конкретного ip-адреса, назначенного нашей машине). Сохранить, например, в /etc/iptables.rules и дергать при старте ОС командой /sbin/iptables-restore /etc/iptables.rules...

*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state INVALID -j DROP
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -o имя_интерфейса -s ip-адрес-на-интерфейсе -j ACCEPT
COMMIT
 
Последнее редактирование:

Yustas

New member
Сообщения
19
#13
1.
выхода гонит не только ваши запросы, но и телеметрию и черт знает что еще.
У меня несколько приложений, которые выходят в сеть, если начнут гнать что то не то, проще отследить.
2.
Но это, imho, несколько велосипедненько...
Почему? В чём недостаток?
3
Вас же в Гугле/Яндексе не забанили?
Не могу найти описание маски в Local Address [::]:domain, [::]:номер_порта, localhost:ipp, 0.0.0.0:domain.
В Foreign Address [::]:*.
 

oko

New member
Сообщения
1 003
#14
to Yustas
1. Оно-то да, но нет. Как будете отслеживать нештатную активность того же Chrome или иного приложения, которому нужен доступ вовне для выполнения ваших операций? Вы, используя браузер, лезете на нужный сайт, а браузер под шумок высылает серию пакетов небольшого объема на серверы "корпорации добра". Не камня в огород Google, но демонстрации принципа для. Логировать и парсить весь обмен на самой машине явно не вариант. Правильный вариант - промежуточный ваш собственный прокси-сервер (не на этой машине, а на следующем участке сети) с "белыми списками" и анализом нестандартных запросов в HTTP/FTP/etc-протоколах. Хотя это тоже не панацея. Короче, контролить сетевую активность правильнее не на самом защищаемом хосте, а на следующей ноде, которая через себя пропускает весь трафик хоста. Такой самостоятельный MiTM. Только софт этой следующей ноды тоже должен быть "доверенным", иначе вся концепция разваливается, ага...

2. Для утилитарной серверной машины, где набор софта (не версии, а именно набор) не меняется длительный срок - вариант. Для домашней, где софт меняется постоянно, imho, замучаетесь прописывать правила и решать сопутствующие баги, которые, уверяю, проявятся...

3. [::] - любой IPv6 адрес, localhost - петлевой интерфейс самой машины (127.0.0.0/8), domain и т.п. - семантическое обозначение номера сетевого порта с привязкой к стандартному размещению сервиса (типа, IPP = 631/TCP). Перечень стандартных привязок портов к обозначениям см. в /etc/services (там же можно поменять и тогда netstat, tcpdump и проч. будут обозначать их иначе)...

ЗЫ А если у вас на машине rootkit в ядре или, что хуже, в BIOS (UEFI) или в прошивке сетевой карты, то его активность любыми средствами хостовой ОС вообще никак не отследить...
 

Yustas

New member
Сообщения
19
#15
1.
localhost - петлевой интерфейс самой машины (127.0.0.0/8)
Если правильно понял, то для localhost:port доступны только для локального доступа(служебные порты), другой компьютер к ним не подключится.
Во всех остальных случаях возможно удалённое подключение?
2.
а браузер под шумок высылает серию пакетов небольшого объема на серверы "корпорации добра".
Открыть доступ только на нужные сайты, плюс, стараюсь не пользоваться софтом с поликой как у хрома. Вообще, неплохо бы было перехватывать данные до их шифрования и отправки, но это так, отклонился от вопроса.
3.
ЗЫ А если у вас на машине rootkit в ядре или, что хуже, в BIOS (UEFI) или в прошивке сетевой карты, то его активность любыми средствами хостовой ОС вообще никак не отследить...
Надеюсь в астре его нет). Сетевуха встроенная.
4. Затронули руткиты и прошивки, возник вопрос по Intel Management Engine Interface. Под линукс с этим можно бороться или контролировать?
 
Сообщения
512
#16
У меня немного упрощенное понимание отличия Windows от Linux но я его сформулирую так: В Windows совершенствуют телеметрию и способы незаконного слежения, в Linux ее искореняют и вычищают. Разумеется имею ввиду добросовестных разработчиков а не каких то сомнительных дистрибутивов сделанных дядей Васей, который напихал туда невесть что.
 

oko

New member
Сообщения
1 003
#17
to Yustas
1. На localhost может подключиться только localhost. Само по себе "защищает" от подключений удаленных машин из других областей (вне localhost). Впрочем, есть методы, как эксплуатировать и такие ограничения, но это уже из области target-атак, так что для домашней машины или машины с невысокими критериями безопасности можете не париться...
2. Очень долгий разговор касательно защищенности в описанном вами случае. В свою очередь, если нужно перехватывать классическое HTTPS-соединение и фильтровать его "до" шифрования, то рекомендую погуглить в сторону собственного nix-роутера или OpenWRT-роутера с тем же Squid (прокси-сервер)...
3. Надежда, она, как говорится, последней умирает, ага...
4. Еще более долгий разговор. Программную часть IntelME можете "вырезать" и игнорировать на уровне ОС. Вот с аппаратной и ее возможностями на уровне UEFI - другой коленкор. А если добавить к этому Spectre/Meltdown, кучу микрокода в том же Intel TPM и т.д., и т.п., то становится несколько... мнэ... жутковато...
 

Yustas

New member
Сообщения
19
#18
1.
4. Еще более долгий разговор. Программную часть IntelME можете "вырезать" и игнорировать на уровне ОС. Вот с аппаратной и ее возможностями на уровне UEFI - другой коленкор. А если добавить к этому Spectre/Meltdown, кучу микрокода в том же Intel TPM и т.д., и т.п., то становится несколько... мнэ... жутковато...
Под винду это отдельная служба,а что с линуксом? Как определить работает IntelME у меня или нет?
2.
Под винду, не нравится svсhost.exe, ему нельзя закрыть доступ. Ваши мысли по этому поводу, может ли он жить своей жизнью?
3.

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

oko

New member
Сообщения
1 003
#19
to Yustas
1. Гугл в помощь. Там от версии к версии разные методы, для 11-й вроде Позитивы находили решение. С другой стороны, "фильтрация на следующей ноде" и от этого спасает (частично, ага)...
2. Так-то это группа процессов, куда очень любит лезть всякое ВПО. Контроль целостности, средства АВЗ и аналогичная фильтрация на следующей ноде дают некоторый уровень гарантий...
3. ARP-spoofing - это давняя тема и далеко не только единственный способ MiTM. Опять-таки, если между связкой "машина -> коммутатор -> шлюз с фильтрацией" (читай, на канальном уровне, т.е. L2) нельзя влезть, то попытки нарушителя манипулировать ARP-трафиком "за" шлюзом уже не принесут нужных результатов. Если, конечно, все корректно настроено...

ЗЫ Фильтровать ARP-трафик и netfilter/iptables может. Только не совсем его задача бороться со spoofing-атаками...
 
Последнее редактирование:

Yustas

New member
Сообщения
19
#20
У меня немного упрощенное понимание отличия Windows от Linux
А если добавить к этому Spectre/Meltdown, кучу микрокода в том же Intel TPM и т.д., и т.п., то становится несколько... мнэ... жутковато...
Прочитав эти сообщения, вспомнил царя Соломона - потому что во многой мудрости много печали; и кто умножает познания, умножает скорбь. Еккл. 1:17