Linux за българи: Форуми

Сигурност => Системна Сигурност => Темата е започната от: growchie в Nov 20, 2018, 14:13



Титла: Смисъл от блокиране на сканирането на портовете
Публикувано от: growchie в Nov 20, 2018, 14:13
Почвам да се чудя има ли изобщо смисъл да блокирам порт сканирането при положение, че публичните ми портове така и така трябва да са отворени, а останалите са на дроп. Напълнило се е с всякакви ботове и ми се струва, че е пилеене на ресурс да се опитвам да изследвам и блокирам всеки по отделно и да поддържам списъци вместо да го оставям да си фейват заявките му.
Ако имате някакви други съображения защо би трябвало да блокирам сканирането на общо основание ще ми е интересно да чуя.


Титла: Re: Смисъл от блокиране на сканирането на портовете
Публикувано от: makeme в Nov 20, 2018, 14:51
Ми презумпцията е, че щом някой сканира портове не ти мисли доброто :)
Смисъл, автоматичните атаки на ботовете, които обикалят нета са последващи на бота, който е минал преди това с порт скана.

Примерно:
Имаш вдигнат уебсървър на порт 80. Да, той е отворен и видим, но бота не знае това преди да го сканира. След като го сканира те слага в списъка с ИП-та, които имат уеб сървър. От там другият бот, който е за дупчене на CMSи минава и се пробва.
И така за всеки сървис на стандартен порт, за който има уязвимости.

Иначе, да, прав си. Ако нямаш от какво да се притесняваш и знаеш, че всичко ти е защитено, няма смисъл. Все пак обаче това си е още едно на защита, а в днешно време не е зле да имаш много.


Титла: Re: Смисъл от блокиране на сканирането на портовете
Публикувано от: 4096bits в Nov 20, 2018, 15:40
Както казва и @makeme, трябва да имаш защита на всяко едно ниво, на което можеш да я осигуриш. В днешно време нищо не е достатъчно.


Титла: Re: Смисъл от блокиране на сканирането на портовете
Публикувано от: Acho в Nov 20, 2018, 15:42
Да си си "вързал гащите" дето се казва. И да си пуснал само това, което наистина ти трябва да се достъпва "отвънка".


Титла: Re: Смисъл от блокиране на сканирането на портовете
Публикувано от: growchie в Nov 21, 2018, 09:27
Абе и аз така бях решил, но като тръгнах да го реализирам с iptables осъзнах, че ще трябва да поддържам едни списъци, които са видими през /proc/net/xt_recent и като гледам как потенциално биха набъбнали започнах да се притеснявам. На практика като хвана бот трябва да го набутам в един несортиран списък и да започна в началото на инпут веригата да проверявам ВСЯКА нова входяща връзка дали не идва от блокирано айпи. Другото нещо което забелязах, е че файла не се чисти, а просто към айпи-то се добавя сигнатурата за последния пакет и от там се определя и кога за последно е имало връзка от дадения хост.
Нещото от което се опасявам, че след 2-3 месеца списъкът може да набъбне доста и да имам да проверявам в тлъста база всеки път преди да разреша връзка. В действителност, нямам си представа как са реализирани алгоритмите в модула и какво пърформънс пенълти ще се натрупа след известно време. Може и изобщо да не е някакъв проблем.


Титла: Re: Смисъл от блокиране на сканирането на портовете
Публикувано от: nslave в Nov 21, 2018, 10:05
Мисля, че ще ти бъде полезно да използваш ipsets. Твърдението е, че е подходящо за големи списъци и когато има притеснения относно производителността.

Edit: Сега се зачетох и поддържа и timeout на записите. Това мисля, че ще ти помогне до някаква степен с това списъка да остане сравнително малък.


Титла: Re: Смисъл от блокиране на сканирането на портовете
Публикувано от: growchie в Nov 21, 2018, 11:27
Мисля, че ще ти бъде полезно да използваш ipsets. Твърдението е, че е подходящо за големи списъци и когато има притеснения относно производителността.

Edit: Сега се зачетох и поддържа и timeout на записите. Това мисля, че ще ти помогне до някаква степен с това списъка да остане сравнително малък.

Мерси, ще го погледна това.


Титла: Re: Смисъл от блокиране на сканирането на портовете
Публикувано от: n00b в Nov 21, 2018, 12:39
Няма да правиш списъци със портовете които да дропиш. Ще направиш списък със портове които ще отвориш - и всичко останало е на дроп.

Примерно така са Амазон и Гогол на облачните услуги. Казваш искам да ми се отворят за ВХОДЯЩИ заявки порт X, Y и Z. Всичко останали под ножа. И е добра стратегия.

Представи си пуснеш за малко един MySQL за да тестваш нещо. И му бутнеш слаба парола. Така младежите ще му се изредят да почукат първо, и после да брутфорснат.

Ако обаче си отворил примерно порт 23 и порт 80 само. MySQL-а ще остане скрит зад firewall правилата и даже никой отвън няма да го види, че е наличен.


Титла: Re: Смисъл от блокиране на сканирането на портовете
Публикувано от: growchie в Nov 21, 2018, 14:17
Да, аз така го правя, ама искам да блокирам и да съм информиран като някой малоумник реши да се тества да сканира надлъж и нашир. Сега ще тествам тия айпи сет-ове и ще пиша какво съм измислил.


Титла: Re: Смисъл от блокиране на сканирането на портовете
Публикувано от: nslave в Nov 21, 2018, 14:30
Определено ако няма специфично изискване да са отворени портовете, всеки сървър с директен излъз (пък и не само) към интернет, и според мен трябва да е с default policy на iptables - drop.

Има друго, не знам как действат точно сканиращите. Дали след като сканира, после идва от друг адрес да пробва exploit-и или пак от същият. Ако е така има потенциал да не хванеш нищо.. или поне нищо, което да има значение. С ipset като гледам обаче, можеш бързо да се затвориш по региони. Ако не очакваш трафик от Русия, Китай и подобни.. то съвсем спокойно може да ги отрежеш директно тях :D


Титла: Re: Смисъл от блокиране на сканирането на портовете
Публикувано от: growchie в Nov 21, 2018, 16:49
Целта ми е да блокирам сляпо сканиране на отворени портове. За сега това ми е идеята. Направих 4 сета:
ipset -N banned_hosts iphash
ipset -N second_strike_hosts iphash timeout 30
ipset -N first_strike_host iphash timeout 30
ipset -N retry_hosts hash:ip,port

Направих си верига SCAN_BLOCK която я апенднах към INPUT чейна:
iptables -A INPUT -p tcp -i enp17s10 -m multiport --destination-port 21,23,109,110,445,501,1000,1194,1200 -j SCAN_BLOCK
Примерно няколко портове които да са хем смесени стандартни върху които нямам услуги, хем нестандартни да подбера ако някой е решил да жъне наред.

SCAN_BLOCK веригата ми съдържа следното:

iptables -A SCAN_BLOCK -m set --match-set retry_host src,dst -j DROP
iptables -A SCAN_BLOCK -m set --set second_strike_hosts src -j SET --add-set banned_hosts src
iptables -A SCAN_BLOCK -m set --match-set first_strike_hosts src -j SET --add-set second_strike_hosts src
iptables -A SCAN_BLOCK -j SET --add-set first_strike_hosts src
iptables -A SCAN_BLOCK -j SET --add-set retry_host src,dst
iptables -A SCAN_BLOCK -j DROP

Надявам се че не съм объркал нещо копи/пействах от командния ред.
Идеята е следната, ако някой почне да шава по портовете попада съответно първо в първи списък, после във втори и накрая в перманентния бан. За да не попадне някой който просто ритрайва на порт се наложи да добавя още един временен списък където да пиша айпита и портове. за това са предпоследен и първи ред. Двата списъка за първи и втори страйк таймаутват за 30 секунди.
Перманентният не, както и тия дето жулят на един и същи порт безуспешно.

Това измислих на първо време, после ще оптимизирам. Трябва да измисля как да добавям айпита които пробват произволни глупости по уеб съръва да влизат в банлиста. командата е ясна ipset add нещо си там и айпито.


Титла: Re: Смисъл от блокиране на сканирането на портовете
Публикувано от: n00b в Nov 21, 2018, 18:11
Да - изглежда 6.

Но според мен лично е губене на време. По-добре направо си ги дропи и без да се занимаваш със анализи. За всичко останало има fail2ban.
Има и по-хардкор варианти на F2B дето направо се банва C-class range за по-удобно.


Титла: Re: Смисъл от блокиране на сканирането на портовете
Публикувано от: growchie в Nov 21, 2018, 18:57
Знам за fail2ban. Предпочитам нещата свързани с мрежовото филтриране да се случват в кернелспейс.
Иначе горе трябва да се добави и правило за дропване на пакетите идващи от баннатите хостове. Някъде в началото на инпут чейна и при желание във форвард.


Титла: Re: Смисъл от блокиране на сканирането на портовете
Публикувано от: Yasen6275 в Nov 21, 2018, 19:28
...Има и по-хардкор варианти на F2B дето направо се банва C-class range за по-удобно.
Което директно те прави уязвим от DoS атака със пакети с подменени адреси.


Титла: Re: Смисъл от блокиране на сканирането на портовете
Публикувано от: Acho в Nov 21, 2018, 20:07
А това дето ще се защитава домашна машина ли е ? Или некав фирмен сървър ?


Титла: Re: Смисъл от блокиране на сканирането на портовете
Публикувано от: growchie в Nov 21, 2018, 20:45
А това дето ще се защитава домашна машина ли е ? Или некав фирмен сървър ?
Машина в офис. В понеделник в логовете цъфна нещо което ме накара да се поразчовъркам по темата.


Титла: Re: Смисъл от блокиране на сканирането на портовете
Публикувано от: Yasen6275 в Nov 21, 2018, 21:34
Какво точно си видял, ако не е тайна?


Титла: Re: Смисъл от блокиране на сканирането на портовете
Публикувано от: growchie в Nov 21, 2018, 22:09
Връзки на порт на който аз и един познат си пускаме наши неща. Напълно случаен е, няма как да се налучка. Първо аз го видях в моите логове, после изгря и в логовете на познатия ми. Ще видя сега дали това айпи пак ще се появи.


Титла: Re: Смисъл от блокиране на сканирането на портовете
Публикувано от: jet в Nov 22, 2018, 02:11
На моя сървър така или иначе работи Апаче, съм си направил една пхп форма защитена с парола която отваря набор от портове (iptables в шел скрипт), като си свърша работата ги затварям с копчето. Логовете са чисти като сълза, да ме сканират колкото си искат (народът е казал - покрито мляко, котки не го лочат).
Почукването на портове също е добра стратегия, но когато си на чужда Уиндоус машина е тегаво.


Титла: Re: Смисъл от блокиране на сканирането на портовете
Публикувано от: growchie в Nov 22, 2018, 08:57
На моя сървър така или иначе работи Апаче, съм си направил една пхп форма защитена с парола която отваря набор от портове (iptables в шел скрипт), като си свърша работата ги затварям с копчето. Логовете са чисти като сълза, да ме сканират колкото си искат (народът е казал - покрито мляко, котки не го лочат).
Почукването на портове също е добра стратегия, но когато си на чужда Уиндоус машина е тегаво.

Това са добри практики, но със своите ограничения. Специално port knocking-а ми се струва непрактичен ако трябва постоянно да го извършваш от чужди клиентски машини. Освен това програмистите като цяло са мързеливо племе и изобщо не биха си направили труда да го имплементират програмно в софуера си.


Титла: Re: Смисъл от блокиране на сканирането на портовете
Публикувано от: Acho в Nov 22, 2018, 10:33
Калпазани са казваш. Хаххахааааааааааааа


Титла: Re: Смисъл от блокиране на сканирането на портовете
Публикувано от: n00b в Nov 22, 2018, 12:33
Това са добри практики, но със своите ограничения. Специално port knocking-а ми се струва непрактичен ако трябва постоянно да го извършваш от чужди клиентски машини. Освен това програмистите като цяло са мързеливо племе и изобщо не биха си направили труда да го имплементират програмно в софуера си.

Преди 2 месеца оправих един виртуализиран Виндовс. Неизвестно как някой е минал и го беше ударил като беше криптирал файловете.
От целия сървър трябваше само един файл - базаданни на MSSQL.

Интересното беше как са го ударили? През RDP!

Физическата машина беше отлично и търкаляше около 20тина виртуалки. Но само към една виртуалка имало пуснато RDP на нестандартен порт със потребител Administrator. И някой тъпо и упорито я брутфорснал. А причината била, че поддръжката от София трябвало да влиза и да прави това-онова.

Не знам какво си видял, но в днешно време може би е по-добре такива неща да ги търкаляш през VPN. Или през SSH ако е възможно.


Титла: Re: Смисъл от блокиране на сканирането на портовете
Публикувано от: growchie в Nov 22, 2018, 13:53
С тези крипто вируси "разкази от криптата" всеки може да разкаже...


Титла: Re: Смисъл от блокиране на сканирането на портовете
Публикувано от: remotexx в Nov 23, 2018, 04:26
С тези крипто вируси "разкази от криптата" всеки може да разкаже...
А някой може и да напишат ..нови  ;D


Титла: Re: Смисъл от блокиране на сканирането на портовете
Публикувано от: growchie в Nov 26, 2018, 11:58
Само от любопитство, някой знае ли как може да се реализира подобно нещо с nftables. Не съм запознат много с него и не знам какви са му предимствата пред iptables.


Титла: Re: Смисъл от блокиране на сканирането на портовете
Публикувано от: Yasen6275 в Nov 26, 2018, 22:20
Само от любопитство, някой знае ли как може да се реализира подобно нещо с nftables. Не съм запознат много с него и не знам какви са му предимствата пред iptables.
За кое от всичките неша обсъждани в темата питаш?


Титла: Re: Смисъл от блокиране на сканирането на портовете
Публикувано от: growchie в Nov 27, 2018, 15:04
ipsets+iptables


Титла: Re: Смисъл от блокиране на сканирането на портовете
Публикувано от: Yasen6275 в Nov 27, 2018, 16:40
Според викито на nftables нямаш начин да прехвърлиш ipset-ове към nftables автоматично. Но от това което съм гледал самия nftables има подобна функционалност.