Как да конфигурирате защитата на SSH Linux

Един от най -използваните протоколи на ниво сигурност за установяване на връзки в UNIX среди е протоколът SSH (Secure Shell), който ни предлага поредица от функционалности и специални характеристики за защита на данните и направените връзки.

SSH е протокол, който е разработен, съсредоточен върху сигурността на комуникациите между две системи чрез модела клиент / сървър и благодарение на който потребителите могат да се свързват отдалечено с хост.
Една от основните характеристики на SSH е, че криптира сесията на връзката, което предотвратява всеки потребител да получи некриптирани пароли.

Видове защитаКогато използваме SSH протокол, ще имаме следните видове защита:

  • След като първоначалната връзка е установена, клиентът може да провери дали се свързва към същия сървър, към който преди това е бил свързан
  • Клиентът изпраща информацията за удостоверяване до сървъра чрез 128-битово криптиране
  • Всички данни, изпратени и получени по време на сесията, се прехвърлят чрез 128-битово криптиране, което затруднява декриптирането и четенето
  • Клиентът има възможност да препраща X11 приложения от сървъра, това е техника, наречена X11 препращане, която осигурява сигурно средство за използване на графични приложения през локална или външна мрежа.

Сега в операционните системи Linux намираме конфигурационния файл на SSH в пътя / etc / ssh / ssh_config и благодарение на този файл ще бъде възможно да се изпълнят всички мерки за сигурност за SSH връзки.

Увеличете

За системите macOS този файл се намира в / private / etc / ssh / ssh_config пътя и има символична връзка към / etc / ssh / ssh_config за целите на съвместимостта.

Когато редактираме този файл, трябва да имаме предвид следното.

  • Празните редове и редовете, започващи с '#', са коментари
  • Всеки ред започва с ключова дума, последвана от аргумент (и)
  • Опциите за конфигуриране могат да бъдат разделени с празни полета или незадължителни заготовки и знак =
  • Аргументите могат да бъдат заключени в двойни кавички ("), за да се посочат аргументи, които съдържат интервали

1. Как да редактирате файла ssh_config на Linux


За да редактираме този файл, за да установим правилни стойности, трябва да изпълним следното с редактор:
 sudo nano / etc / ssh / ssh_config
Ще видим следното:

Увеличете

Файлът ssh_config е организиран от хостове и там всеки хост съдържа специфични настройки за този конкретен хост, там можем да използваме заместващи знаци като * за съвпадение на множество имена на хостове с едно изявление.
Някои от параметрите, които можем да използваме в този файл са:

ДомакинОграничете изявленията, които са само за хостове, които съответстват на един от шаблоните, дадени след ключовата дума.
СъвпадаОграничете изявленията да се прилагат само за хостове, които отговарят на определени критерии
АдресСемействоУказва кое семейство адреси да се използва при свързване, валидни аргументи са: any, inet, inet6.
BatchModeС тази стойност заявката за парола ще бъде деактивирана, като по този начин ще се избегне случайно блокиране в заявката за парола
BindAddressУказва използването на адреса, посочен на локалното устройство, като адрес на източника на връзка.
ChallengeResponseAuthenticationПоказва дали да се използва удостоверяване при предизвикателство-отговор. Това е предимно наследен метод и е заменен от KbdInteractiveAuthentication
CheckHostIPКажете на ssh допълнително да провери IP адреса на хоста във файла known_hosts.
ШифърОтнася се за криптирането, което ще се използва за криптиране на сесията в протокол версия 1.
ШифриУказва разрешените шифри за версия 2 на протокола в ред на предпочитания.

След това ще видим някои практически съвети за подобряване на сигурността на SSH връзки към Linux и по този начин получаване на най -добрата производителност на достъпа.

2. Как да заключите Linux SSH файлове


Първата стъпка преди редактирането на файла е да се уверите, че и файлът ssh_config, и файлът sshd_config имат собственика и потребителя, конфигурирани като root, това е защото той е супер потребителят на Linux и никой по -добър от този не е собственик.

За целта изпълняваме следното:

 sudo chown root: root / etc / ssh / sshd_config sudo chmod og-rwx / etc / ssh / sshd_config

3. Как да потвърдите SSH протокол версия 2 Linux


Версия 2 на SSH има подобрен алгоритъм за обмен на ключове, който не е уязвим за дупката за сигурност във версия 1, като по този начин подобрява общата сигурност на връзките, така че е идеално да се потвърди, че новият протокол 2 се използва вместо в протокол 1 и за това трябва да потвърдим следния ред във файла ssh_config:
 Протокол 2

Увеличете

Там също можем да конфигурираме протокола имплицитно чрез Ciphers, който автоматично ще настрои Protocol на 2, за да използва съвременни Ciphers, за това ние потвърждаваме следния ред точно под линията на протокола:

 Шифри aes128-ctr, aes192-ctr, aes256-ctr

4. Как да деактивирате празни пароли SSH Linux


Важно е да се потвърди, че всеки SSH акаунт трябва да използва парола при влизане, блокирайки празни пароли, които биха позволили лесен достъп, причиняващ рискове за сигурността в системата, за да потвърдим това, ще използваме следния ред или, ако не съществува, ние ще го добави, като постави символа #:
 PermitEmptyPasswords не

Увеличете

5. Как да деактивирате коренното влизане на SSH Linux


Чрез предотвратяване на влизане на root потребител ще бъде възможно да се заключат конкретни акаунти и да се забрани тяхното използване в цялата система, опциите за PermitRootLogin включват „да“, „без парола“, „само принудителни команди“ или „не“. По подразбиране е "да". За да спрем напълно влизането в root, ще използваме следния ред:
 PermitRootLogin не

Увеличете

6. Как да настроите нов Linux SSH порт


По подразбиране портът, определен за SSH, е 22, така че нападателите да знаят със сигурност през кой порт ще имат достъп, за да извършат атаките си, така че добър метод за защита е да промените този порт по подразбиране и да посочите само оторизирани потребители.

За целта трябва да намерим реда Port и да добавим следния синтаксис:

 Порт XXXXX

Увеличете

7. Как да ограничите достъпа до SSH Linux


В случай, че достъпът до SSH сървъра се състои от няколко потребители, е възможно да се приложат определени ограничения чрез създаване на групи, където тези потребители са включени, това е възможно чрез добавяне на ключови думи като:
 AllowUsers (Разрешаване на потребителски достъп) AllowGroups (Разрешаване на групов достъп) DenyUsers (Ограничаване на потребителския достъп) DenyGroups (Ограничаване на групов достъп)
Например, можем да изпълним следното в конфигурационния файл:
 AllowUsers Solvetic тестове DenyGroups тест

8. Как да актуализирате SSH Linux гратисно време


По подразбиране времето, през което потребителят може да остане неактивен без влизане, е две минути, за да се предотврати неоторизирани връзки към системата, този път може да се редактира в реда LoginGraceTime, увеличавайки или намалявайки това време:
 ВходGraceTime 1м

Увеличете

9. Как да създадете псевдоним на SSH Linux


В рамките на SSH конфигурациите е възможно да се посочи псевдоним, който позволява да се свържете с конкретен сървър чрез порт и дефинирани потребители, например, можем да добавим следното:
 Host dev HostName dev.solvetic.com Порт 3333 Потребител Solvetic
В този конкретен случай трябва да имаме достъп, както следва:
 ssh [email protected] -p 3333

10. Удостоверяване със защитени ключове SSH Linux


ssh ще бъде много по -сигурен и полезен, когато се използва с двойки публични / частни ключове за удостоверяване, вместо да използва пароли. Файлът ssh_config може да декларира конкретен ключ за конкретен хост, използвайки ключа IdentityFile, в този случай бихме въвели следното:
 Host dev HostName dev.solvetic.com Порт 3333 Solvetic IdentityFile на потребителя ~ / .ssh / dev.solvetic.key
В този случай връзката ще бъде както следва:
 ssh -i ~ / .ssh / dev.solvetic.key [email protected] -p 3333
Някои допълнителни параметри са:

КомпресияТам можем да използваме стойности като да или не, за да активираме деактивирането на компресията за хост.
LogLevelПозволява да се определи нивото на детайлност в регистрационните файлове за ssh клиента, опциите са QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG1, DEBUG2 и DEBUG3.
StrictHostKeyCheckingЗадайте предпочитание за добавяне на хостове към файла known_hosts.

По този начин имаме различни възможности за подобряване на сигурността и SSH свързаността в Linux.

wave wave wave wave wave