Когато имате сървър, който е публично достъпен, хакерите лесно могат да сканират вашия IP адрес и да проверяват за отворени портове (по-специално порт 22, който се използва за SSH) на вашия сървър. Един от начините да скриете сървъра си от хакери е удар. Knockd е сървър за порт-удар. Той следи целия трафик на Ethernet или други налични интерфейси, чакащи специални поредици от порт-хитове. Клиенти като telnet или Putty инициират пристанищни посещения, като изпращат TCP или пакет към порт на сървъра.

В тази статия ще разгледаме как можем да използваме knockd, за да скрием услугите, които се изпълняват на сървър на Linux.

Инсталирайте Knockd на Linux сървър

Knockd се предлага в повечето хранилища на дистрибуцията. На сървър, базиран на Debian / Ubuntu / Ubuntu, можете да използвате командата apt-get за инсталиране на knockd.

 sudo apt-get инсталирате нокаут 

За потребители на Fedora, CentOS или REHL можете да използвате командата yum :

 yum install knockd 

Инсталирайте и конфигурирайте Iptables

Ако нямате инсталирани Iptables на сървъра си, инсталирайте го сега.

 sudo apt-get инсталирате iptables iptables-устойчиви 

Пакетът iptables-persistent поема автоматично зареждането на запазените iptables.

След това трябва да разрешите вече установени връзки, както и текущите сесии чрез iptables. Използвайте следната команда, за да постигнете тази задача:

 iptables -A INPUT -m conntrack -стойностна ESTABLISHED, СВЪРЗАНА -j ACCEPT 

След това трябва да блокирате всички входящи връзки към порт 22 SSH.

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

Сега нека да запазим правилата на защитната стена чрез следните команди:

 netfilter-устойчиви save netfilter-persistent reload 

Можете да продължите напред и да проверите дали наистина сте блокирали порт 22, като се свържете със сървъра си чрез компютъра си.

 ssh ми-сървър-ip 

Конфигуриране на Knockd

Сега е време да конфигурирате настройките по подразбиране. Той се намира в "/etc/knockd.conf". За да направите това, променете конфигурационния файл с нокаут, като използвате следната команда:

 cd / etc sudo leafpad knockd.conf 

За илюстрация, използвам редактора на листа. На сървъра си можете да използвате нано или Vi.

Екранната снимка показва нокаутирания конфигурационен файл.

  • Опции : Можете да намерите опции за конфигуриране на Knockd в това поле. Както можете да видите на екрана по-горе, той използва syslog за регистриране.
  • OpenSSH : Това поле е съставено от последователност, време за изчакване на последователност, команда и tcp флагове.
  • Последователност : Показва последователността на портовете, която клиентът може да използва като шаблон за иницииране на действие.
  • Последователност на последователността : Показва общо време, разпределено на Клиентите, за да завърши необходимата последователност на повреждане на портове.
  • Команда : Това е командата, която ще бъде изпълнена, след като кликващата последователност от клиента съответства на шаблона в полето за последователност.
  • TCP_FLAGS : Това е знамето, което трябва да бъде настроено на ударите, издавани от клиента. Ако флагът е бил неправилен, но ударният шаблон не е коригиран, действието няма да бъде задействано.

Забележка : Командата iptables в секцията OpenSSH в конфигурационния файл на Knockd използва опцията -A за да добави това правило до края на веригата INPUT. Това ще доведе до спадане на всички останали връзки.

За да го предотвратите, заменете го със следното по-долу:

 команда = / sbin / iptables -I INPUT 1 -s% IP% -p tcp -dport 22 -j ACCEPT 

Тази команда гарантира, че ще бъде добавено ново правило в горната част на веригата INPUT, за да се приемат ssh връзки.

Активиране и стартиране на услугата

Използвайте следната процедура, за да активирате услугата "knockd" в "/ etc / default / knock".

Променете стойността от 0 до 1, както е показано на екранната снимка.

 START_KNOCKD = 1 

След това запазете и затворете файла "/ etc / default / knockd".

След това можете да стартирате услугата "knockd", като използвате една от следните команди:

 стартиране на sudo услуга 

или

 sudo systemctl стартира нокаут 

Време е да прегледате своя Linux сървър

Сега е време да тествате вашия Linux SSH сървър. За да отворите порт 22 на определен IP адрес, използвайте следното на компютъра си. (Ще трябва да инсталирате и knockd на вашия компютър)

 knock -v my-server-ip 7000 8000 9000 

Трябва да замените "my-server-ip" с IP адреса на вашия сървър.

Вече можете да се свържете към порт 22 SSH, като използвате следната команда:

 ssh ми-сървър-ip 

След като приключите с каквото искате да направите чрез порт 22, можете да го затворите, като използвате следната команда:

 knock-v my-server-ip 9000 8000 7000 

заключение

С нокаут, вие сте сигурни, че вашият SSH сървър е защитен над безопасно от нападателите със сложни скенери. В допълнение, вие сте напълно отговорни за SSH сървъра си.