Како користити Порт Кноцкинг на Линуку (и зашто не би требало)

Уклањање портова је начин да обезбедите сервер затварањем портова заштитног зида — чак и оних за које знате да ће се користити. Ти портови се отварају на захтев ако – и само ако – захтев за повезивање пружа тајно куцање.

Куцање порта је „тајно куцање“

Двадесетих година прошлог века, када забрана био у пуном јеку, ако сте хтели да уђете у а мирно, морали сте да знате тајно куцање и да га правилно куцате да бисте ушли унутра.

Лучко куцање је савремени еквивалент. Ако желите да људи имају приступ услугама на вашем рачунару, али не желите да отворе ваш заштитни зид на Интернету, можете да користите куцање порта. Омогућава вам да затворите портове на вашем заштитном зиду који омогућавају долазне везе и да се они аутоматски отворе када се направи унапред договорени образац покушаја повезивања. Редослед покушаја повезивања делује као тајно куцање. Још једно тајно куцање затвара луку.

Куцање у луку је нешто ново, али важно је знати да је то пример сигурност кроз таму, а тај концепт је суштински погрешан. Тајна приступа систему је безбедна јер је знају само они у одређеној групи. Али када се та тајна открије – било зато што је откривена, посматрана, нагађана или разрађена – ваша сигурност је неважећа. Боље вам је да обезбедите свој сервер на друге, јаче начине, као што је захтевање пријављивања на основу кључа за ССХ сервер.

Најробуснији приступи сајбер безбедности су вишеслојни, тако да би можда куцање портова требало да буде један од тих слојева. Што више слојева, то боље, зар не? Међутим, можете тврдити да куцање портова не доприноси много (ако ништа) правилно ојачаном, безбедном систему.

Сајбер-безбедност је огромна и компликована тема, али не би требало да користите куцање порта као једини вид одбране.

Инсталирање кноцкд

Да бисмо демонстрирали куцање порта, користићемо га за контролу порта 22, који је ССХ порт. Користићемо алат који се зове кноцкд. Користите апт-гет да инсталирате овај пакет на ваш систем ако користите Убунту или другу дистрибуцију засновану на Дебиан-у. У другим дистрибуцијама Линука, користите алатку за управљање пакетима ваше дистрибуције Линука.

Откуцајте следеће:

sudo apt-get install knockd

Вероватно већ имате иптаблес фиревалл инсталиран на вашем систему, али можда ћете морати да инсталирате иптаблес-персистент пакет. Он управља аутоматским учитавањем сачуваних иптабле правила.

Унесите следеће да бисте га инсталирали:

sudo apt-get install iptables-persistent

Када се појави екран за конфигурацију ИПВ4, притисните размакницу да бисте прихватили опцију „Да“.

Притисните размакницу да бисте прихватили

Поново притисните размакницу на екрану конфигурације ИПв6 да бисте прихватили опцију „Да“ и наставили даље.

Притисните размакницу да бисте прихватили

Следећа команда говори иптаблес-у да дозволи наставак успостављених и текућих веза. Сада ћемо издати још једну команду за затварање ССХ порта.

Ако је неко повезан преко ССХ-а када издамо ову команду, не желимо да буде прекинут:

sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

Ова команда додаје правило у заштитни зид, које каже:

  Како преуредити филтере редоследа који се појављују на Инстаграму

-О: Додајте правило табели правила заштитног зида. То јест, додајте га на дно.
ИНПУТ: Ово је правило о долазним везама.
-м цоннтрацк: Правила заштитног зида делују на мрежни саобраћај (пакете) који одговарају критеријумима у правилу. Параметар -м узрокује да иптаблес користи додатне модуле за подударање пакета—у овом случају, онај који се зове цоннтрацк ради са могућностима праћења мрежне везе кернела.
–цстате ЕСТАБЛИСХЕД,РЕЛАТЕД: Ово специфицира тип везе на који ће се правило применити, наиме ЕСТАБЛИСХЕД и РЕЛАТЕД везе. Успостављена веза је она која је већ у току. Повезана веза је она која је направљена због радње успостављене везе. Можда неко ко је повезан жели да преузме датотеку; то се може догодити преко нове везе коју је покренуо хост.
-ј ПРИХВАТИ: Ако се саобраћај подудара са правилом, скочите на циљ АЦЦЕПТ у заштитном зиду. Другим речима, саобраћај се прихвата и дозвољава да прође кроз заштитни зид.

Сада можемо издати наредбу за затварање порта:

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

Ова команда додаје правило у заштитни зид, које каже:

-О: Додајте правило табели правила заштитног зида, тј. додајте га на дно.
ИНПУТ: Ово правило се односи на долазне везе.
-п тцп: Ово правило се примењује на саобраћај који користи протокол за контролу преноса.
–дпорт 22: Ово правило се посебно примењује на ТЦП саобраћај који циља порт 22 (ССХ порт).
-ј ОДБАЦИ: Ако се саобраћај поклапа са правилом, скочите на циљ ОДБАЦИ у заштитном зиду. Дакле, ако је саобраћај одбијен, није дозвољен кроз заштитни зид.

Морамо покренути нетфилтер-персистент демон. То можемо учинити са овом командом:

sudo systemctl start netfilter-persistent

Желимо да нетфилтер-персистент прође циклус чувања и поновног учитавања, тако да учитава и контролише иптабле правила.

Откуцајте следеће команде:

sudo netfilter-persistent save

sudo netfilter-persistent reload

Сада сте инсталирали услужне програме, а ССХ порт је затворен (надамо се, без прекидања ничије везе). Сада је време да конфигуришете тајно куцање.

Конфигурисање кноцкд

Постоје две датотеке које уређујете да бисте конфигурисали кноцкд. Прва је следећа кноцкд конфигурациона датотека:

sudo gedit /etc/knockd.conf

Гедит едитор се отвара са учитаном конфигурационом датотеком кноцкд.

Уредићемо ову датотеку у складу са нашим потребама. Секције које нас занимају су „опенССХ“ и „цлосеССХ“. У сваком одељку су следећа четири уноса:

секвенца: Редослед портова који неко мора да приступи да би отворио или затворио порт 22. Подразумевани портови су 7000, 8000 и 9000 да би га отворили и 9000, 8000 и 7000 да би га затворили. Можете их променити или додати још портова на листу. За наше потребе, ми ћемо се држати подразумеваних вредности.
сек_тимеоут: Временски период у коме неко мора да приступи портовима да би покренуо њихово отварање или затварање.
команда: Команда која се шаље заштитном зиду иптаблес када се покрене акција отварања или затварања. Ове команде или додају правило у заштитни зид (да се отвори порт) или га уклони (да затвори порт).
тцпфлагс: Тип пакета који сваки порт мора да прими у тајном низу. СИН (синхронизација) пакет је први у а ТЦП захтев за повезивање, под називом а тросмерно руковање.

  Најбољи е-читачи за љубитеље књига

Одељак „опенССХ“ се може прочитати као „захтев за ТЦП везу мора да се упути на портове 7000, 8000 и 9000 — тим редоследом и у року од 5 секунди — да би команда за отварање порта 22 била послата заштитном зиду.“

Одељак „цлосеССХ“ се може прочитати као „захтев за ТЦП везу мора да се упути на портове 9000, 8000 и 7000 — тим редоследом и у року од 5 секунди — да би команда за затварање порта 22 била послата заштитном зиду.“

Правила заштитног зида

Уноси „команде“ у одељцима опенССХ и цлосеССХ остају исти, осим једног параметра. Овако су састављени:

-О: Додајте правило на дно листе правила заштитног зида (за опенССХ команду).
-Д: Избришите команду са листе правила заштитног зида (за команду цлосеССХ).
ИНПУТ: Ово правило се односи на долазни мрежни саобраћај.
-с %ИП%: ИП адреса уређаја који захтева везу.
-п: Мрежни протокол; у овом случају, то је ТЦП.
–дпорт: Одредишни порт; у нашем примеру, то је порт 22.
-ј АЦЦЕПТ: Скок на циљ прихватања унутар заштитног зида. Другим речима, пустите пакет да прође кроз остала правила без реаговања на њега.

Кноцкд уређује конфигурациони фајл

Измене које ћемо извршити у датотеци су истакнуте црвеном бојом испод:

Продужујемо „сек_тимеоут“ на 15 секунди. Ово је великодушно, али ако неко ручно покреће захтеве за повезивање, можда ће му требати оволико времена.

У одељку „опенССХ“ мењамо опцију -А (додати) у команди у -И (убаци). Ова команда умеће ново правило заштитног зида на врх листе правила заштитног зида. Ако оставите опцију -А, она додаје листу правила заштитног зида и ставља је на дно.

Долазни саобраћај се тестира у односу на свако правило заштитног зида на листи одозго надоле. Већ имамо правило које затвара порт 22. Дакле, ако се долазни саобраћај тестира у односу на то правило пре него што види правило које дозвољава саобраћај, веза се одбија; ако прво види ово ново правило, веза је дозвољена.

Команда затварања уклања правило које је додао опенССХ из правила заштитног зида. ССХ саобраћајем се још једном управља према већ постојећем правилу „порт 22 је затворен“.

Након што извршите ове измене, сачувајте конфигурациону датотеку.

Кноцкд Цонтрол Филе Едитује

Контролна датотека кноцкд је сасвим једноставнија. Међутим, пре него што то уђемо и уредимо, морамо да знамо интерно име наше мрежне везе; да бисте га пронашли, откуцајте ову команду:

ip addr

Тхе

Веза коју ова машина користи за истраживање овог чланка назива се енп0с3. Забележите име своје везе.

Следећа команда уређује кноцкд контролну датотеку:

sudo gedit /etc/default/knockd

Ево кноцкд датотеке у гедит-у.

Неколико измена које треба да извршимо је истакнуто црвеном бојом:

Променили смо унос „СТАРТ_КНОЦКД=“ са 0 на 1.

  12 најбољих стабилизатора за паметне телефоне за стабилне и глатке снимке 🎥

Такође смо уклонили хеш # са почетка уноса „КНОЦКД_ОПТС=“ и заменили „етх1“ именом наше мрежне везе, енп0с3. Наравно, ако је ваша мрежна веза етх1, нећете је мењати.

Доказ је у пудингу

Време је да видимо да ли ово функционише. Покренућемо кноцкд демон са овом командом:

sudo systemctrl start knockd

Сада ћемо скочити на другу машину и покушати да се повежемо. Инсталирали смо кноцкд алат на том рачунару, такође, не зато што желимо да подесимо куцање порта, већ зато што пакет кноцкд обезбеђује још један алат који се зове кноцк. Користићемо ову машину да пуцамо у нашој тајној секвенци и да куцамо уместо нас.

Користите следећу команду да пошаљете свој тајни низ захтева за повезивање на портове на порту који обара хост рачунар са ИП адресом 192.168.4.24:

knock 192.168.4.24 7000 8000 9000 -d 500

Ово говори кноцк-у да циља рачунар на ИП адресу 192.168.4.24 и покрене захтев за повезивање на портове 7000, 8000 и 9000, заузврат, са -д (кашњењем) између њих 500 милисекунди.

Корисник по имену „даве“ затим шаље ССХ захтев на 192.168.4.24:

ssh [email protected]

Његова веза је прихваћена, он уноси своју лозинку и његова удаљена сесија почиње. Његов командни ред се мења са [email protected] до [email protected] Да би се одјавио са удаљеног рачунара, он куца:

exit

Његова командна линија се враћа на његов локални рачунар. Он још једном користи кноцк, и овог пута циља портове обрнутим редоследом да би затворио ССХ порт на удаљеном рачунару.

knock 192.168.4.24 9000 8000 7000 -d 500

Додуше, ово није била нарочито плодна удаљена сесија, али показује отварање и затварање порта путем куцања порта и уклапа се у један снимак екрана.

Дакле, како је ово изгледало са друге стране? Администратор система на хосту који обара порт користи следећу команду да види нове уносе који стижу у системски дневник:

tail -f /var/log/syslog

Видећете три опенССХ уноса. Они се подижу док је сваки порт циљан од стране услужног програма за даљинско куцање.
Када се испуне све три фазе секвенце окидача, унос који каже „ОТВОРИ СЕ СЕЗАМЕ,” је евидентиран
Шаље се команда за уметање правила у листу правила иптаблес. Дозвољава приступ преко ССХ-а на порту 22 са одређене ИП адресе рачунара који је дао исправан тајни ударац (192.168.4.23).
Корисник „даве“ се повезује само неколико секунди, а затим прекида везу.
Видећете три цлосеССХ уноса. Они се подижу пошто је сваки порт циљан од стране услужног програма за даљинско куцање—он говори хосту који куца порт да затвори порт 22.
Након што се активирају све три фазе, поново добијамо поруку „ОТВОРИ СЕСАМЕ“. Команда се шаље заштитном зиду да уклони правило. (Зашто не „ЗАТВОРИ СЕСАМЕ“ када се затвара лука? Ко зна?)

Сада једино правило на листи правила иптаблес-а у вези са портом 22 је оно које смо откуцали на почетку да бисмо затворили тај порт. Дакле, порт 22 је сада поново затворен.

Куцни га по глави

То је салонски трик за лупање. Третирајте то као диверзију и немојте то радити у стварном свету. Или, ако морате, немојте се ослањати на то као на једини облик сигурности.