ssh

Как да защитим SSH сървъра в Ubuntu 20.04 от Basic към Advanced

Как да защитим SSH сървъра в Ubuntu 20.04 от Basic към Advanced
Подобно на всички други сървъри, SSH сървърът също е склонен към неоторизирани опити за достъп. Следователно, когато пожелаете да използвате SSH сървър, трябва първо да помислите за неговото осигуряване, за да се спасите от нежелана ситуация в дългосрочен план. По принцип терминът „осигуряване на сървър” е известен също като „закаляване на сървър.”Това може да стане чрез предприемане на множество мерки. Тези мерки зависят от нивото на сигурност, от което се нуждаете.

Мерките за осигуряване на SSH сървъра варират от основни до разширени и както казахме по-рано, можете да ги вземете според нивото на сигурност, от което се нуждаете. Можете да пропуснете някоя от предписаните мерки, ако имате достатъчно знания за последиците и ако сте в добра позиция да се справите с тях. Също така никога не можем да кажем, че една стъпка ще осигури 100% сигурност или определена стъпка е по-добра от другата.

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

Метод за осигуряване на SSH сървъра в Ubuntu 20.04:

Всички SSH конфигурации се съхраняват в неговия / etc / ssh / sshd_config файл. Този файл се счита за много важен за нормалното функциониране на вашия SSH сървър. Ето защо, преди да правите промени в този файл, силно се препоръчва да създадете резервно копие на този файл, като изпълните следната команда във вашия терминал:

sudo cp / etc / ssh / sshd_config / etc / ssh / sshd_config.бак


Ако тази команда бъде изпълнена успешно, няма да ви бъдат представени никакви резултати, както е показано на изображението по-долу:

След създаване на резервно копие на този файл, тази стъпка не е задължителна и се извършва, ако искате да проверите всички опции, които в момента са разрешени в този конфигурационен файл. Можете да го проверите, като изпълните следната команда във вашия терминал:

sudo sshd -T


Понастоящем активираните опции на SSH конфигурационния файл са показани на изображението по-долу. Можете да превъртите този списък надолу, за да видите всички опции.

Сега можете да започнете да защитавате вашия SSH сървър, докато преминавате от основните стъпки към разширените стъпки в Ubuntu 20.04.

Основни стъпки за осигуряване на SSH сървъра в Ubuntu 20.04:

Основните стъпки за осигуряване на SSH сървър в Ubuntu 20.04 са както следва:

Стъпка 1: Отваряне на SSH конфигурационния файл:

Можете да отворите SSH конфигурационния файл, като изпълните командата, посочена по-долу във вашия терминал:

sudo nano / etc / ssh / sshd_config


SSH конфигурационният файл е показан на следното изображение:

Стъпка 2: Деактивиране на удостоверяване на базата на парола:

Вместо да използват пароли за удостоверяване, SSH ключовете се считат за по-сигурни. Следователно, ако сте генерирали SSH ключовете за удостоверяване, тогава трябва да деактивирате удостоверяването въз основа на парола. За това трябва да намерите променливата „PasswordAuthentication“, да я коментирате и да зададете нейната стойност на „не“, както е подчертано на изображението, показано по-долу:

Стъпка # 3: Отхвърляне / отказ на празни пароли:

Понякога потребителите намират за изключително удобно да създават празни пароли, за да се спасят от запаметяването на сложни пароли. Тази практика може да се окаже вредна за сигурността на вашия SSH сървър. Следователно трябва да отхвърлите всички опити за удостоверяване с празни пароли. За това трябва да намерите променливата „PermitEmptyPasswords“ и просто да я коментирате, тъй като стойността й вече е зададена на „не“ по подразбиране, както е подчертано на следващото изображение:

Стъпка # 4: Забрана за вход в root:

Трябва строго да забраните влизанията на root, за да защитите всеки нарушител да получи достъп до вашия сървър на ниво root. Можете да направите това, като намерите променливата „PermitRootLogin“, коментирате я и зададете нейната стойност на „не“, както е подчертано на изображението, показано по-долу:

Стъпка # 5: Използване на SSH протокол 2:

SSH сървърът може да работи с два различни протокола, т.е.д., Протокол 1 и Протокол 2. Протокол 2 реализира по-разширени функции за защита, поради което е за предпочитане пред Протокол 1. Протокол 1 обаче е протоколът по подразбиране за SSH и той не е изрично споменат в конфигурационния файл на SSH. Следователно, ако искате да работите с протокол 2 вместо с протокол 1, тогава трябва изрично да добавите реда „Протокол 2“ към вашия SSH конфигурационен файл, както е подчертано на следното изображение:

Стъпка # 6: Задаване на времето за изчакване на сесията:

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

Това време за изчакване може да се зададе чрез намиране на променливата „ClientAliveInterval“, да се коментира и да се присвои всяка стойност (в секунди) по ваш избор. В нашия случай сме му присвоили стойността „300 секунди“ или „5 минути“. Това означава, че ако потребителят стои далеч от SSH сървъра за „300 секунди“, тогава той автоматично ще излезе, както е подчертано на изображението, показано по-долу:

Стъпка # 7: Разрешаване на достъп на конкретни потребители до SSH сървъра:

SSH сървърът не е сървър, чийто достъп се изисква от всеки друг потребител. Следователно достъпът му трябва да бъде ограничен само до онези потребители, които действително се нуждаят от него. За да позволите на конкретни потребители достъп до SSH сървъра, трябва да добавите променлива с име „AllowUsers“ към SSH конфигурационния файл и след това да напишете имената на всички потребители, на които искате да разрешите достъп до SSH сървъра, разделени с интервал. В нашия случай искахме да позволим само на един потребител достъп до SSH сървъра. Ето защо сме добавили името му само както е подчертано на следното изображение:

Стъпка # 8: Ограничаване на броя опити за удостоверяване:

Всеки път, когато потребителят се опита да осъществи достъп до сървър и той не е в състояние да се удостовери за първи път, той се опитва да го направи отново. Потребителят продължава да прави тези опити, докато и освен ако не успее успешно да се удостовери, следователно получи достъп до SSH сървъра. Това се счита за силно несигурна практика, тъй като хакер може да стартира Brute Force Attack (атака, която многократно се опитва да отгатне парола, докато не бъде намерено правилното съвпадение). В резултат той ще може да получи достъп до вашия SSH сървър.

Ето защо е силно препоръчително да се ограничи броят на опитите за удостоверяване, за да се предотвратят атаки за отгатване на пароли. Стойността по подразбиране за опитите за удостоверяване на SSH сървъра е зададена на „6“. Можете обаче да го промените в зависимост от нивото на защита, което ви е необходимо. За това трябва да намерите променливите „MaxAuthTries“, да го коментирате и да зададете стойността му на произволно желано число. Искахме да ограничим опитите за удостоверяване до „3“, както е подчертано на изображението, показано по-долу:

Стъпка # 9: Стартиране на SSH сървъра в тестов режим:

Досега сме предприели всички основни стъпки, за да защитим нашия SSH сървър на Ubuntu 20.04. Все пак трябва да се уверим, че опциите, които току-що сме конфигурирали, работят правилно. За това първо ще запазим и затворим нашия конфигурационен файл. След това ще се опитаме да стартираме нашия SSH сървър в тестов режим. Ако тя работи успешно в тестов режим, това означава, че няма грешки във вашия конфигурационен файл. Можете да стартирате вашия SSH сървър в тестов режим, като изпълните следната команда във вашия терминал:

sudo sshd -t


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

Стъпка # 10: Презареждане на SSH сървъра с нови конфигурации:

Сега, когато SSH сървърът работи успешно в тестов режим, трябва да го презаредим, за да може да прочете новия конфигурационен файл, i.д., промените, които сме направили в SSH конфигурационния файл в стъпките, показани по-горе. За да презаредите SSH сървъра с нови конфигурации, трябва да изпълните следната команда във вашия терминал:

sudo service sshd reload


Ако вашият SSH сървър бъде рестартиран успешно, терминалът няма да покаже изход, както е показано на изображението по-долу:

Разширени стъпки за осигуряване на SSH сървъра в Ubuntu 20.04:

След като изпълните всички основни стъпки за осигуряване на SSH сървъра в Ubuntu 20.04, най-накрая можете да преминете към напредналите стъпки. Това е само стъпка напред, за да защитите вашия SSH сървър. Ако обаче възнамерявате да постигнете само умерено ниво на сигурност, описаните по-горе стъпки ще бъдат достатъчни. Но ако искате да отидете малко по-далеч, можете да следвате стъпките, обяснени по-долу:

Стъпка # 1: Отваряне на ~ /.ssh / дозволен_кейс файл:

Основните стъпки за осигуряване на SSH сървъра са реализирани в SSH конфигурационния файл. Това означава, че тези правила ще са добри за всички потребители, които ще се опитат да получат достъп до SSH сървъра. Това също така предполага, че основните стъпки представляват общ метод за защита на SSH сървъра. Ако обаче се опитаме да разгледаме принципа „Защита в дълбочина“, тогава ще осъзнаем, че трябва да защитим всеки отделен SSH ключ поотделно. Това може да стане чрез дефиниране на изрични параметри за сигурност за всеки отделен ключ. SSH ключовете се съхраняват в ~ /.ssh / дозволен_кип файл, така че първо ще отворим този файл, за да модифицираме параметрите за сигурност. Ще изпълним следната команда в терминала за достъп до ~ /.ssh / файл с разрешени ключове:

sudo nano ~ /.ssh / оторизирани_клавиши

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

Стъпка 2: Определяне на конкретни конфигурации за конкретни ключове:

За постигане на напреднало ниво на сигурност са налични следните пет опции:

Тези опции могат да бъдат написани преди всеки SSH ключ по ваш избор, за да бъдат достъпни за този конкретен ключ. Дори повече от една опция могат да бъдат конфигурирани за един SSH ключ. Например искате да деактивирате пренасочването на портове за даден конкретен ключ или, с други думи, искате да приложите пренасочване без портове за определен ключ, тогава синтаксисът ще бъде както следва:

без пренасочване на портове DesiredSSHKey

Тук, вместо DesiredSSHKey, ще имате действителен SSH ключ във вашия ~ /.ssh / файл с разрешени_клавиши. След като приложите тези опции за желаните от вас SSH ключове, ще трябва да запазите ~ /.ssh / дозволен_кип файл и го затворете. Доброто за този усъвършенстван метод е, че няма да изисква да презаредите вашия SSH сървър след извършване на тези модификации. По-скоро тези промени ще бъдат прочетени автоматично от вашия SSH сървър.

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

Някои допълнителни съвети за осигуряване на SSH сървъра в Ubuntu 20.04:

Освен всички основни и разширени стъпки, които сме предприели по-горе, има и някои допълнителни съвети, които могат да се окажат много добри за осигуряване на SSH сървъра в Ubuntu 20.04. Тези допълнителни съвети са разгледани по-долу:

Запазете данните си в криптиране:

Данните, които се намират на вашия SSH сървър, както и тези, които остават в транзит, трябва да бъдат криптирани и това също, със силен алгоритъм за криптиране. Това не само ще защити целостта и поверителността на вашите данни, но и ще предотврати компрометирането на сигурността на целия ви SSH сървър.

Поддържайте софтуера си актуален:

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

Уверете се, че SELinux е активиран:

SELinux е механизмът, който полага основите на сигурността в системите, базирани на Linux. Той работи чрез прилагане на задължителния контрол на достъпа (MAC). Той прилага този модел за контрол на достъпа, като дефинира правила за достъп в своята политика за сигурност. Този механизъм е активиран по подразбиране. Потребителите обаче имат право да променят тази настройка по всяко време. Това означава, че те могат да деактивират SELinux, когато пожелаят. Силно се препоръчва обаче винаги да поддържате активиран SELinux, за да може той да предотврати SSH сървъра от всички потенциални вреди.

Използвайте строги правила за парола:

Ако сте защитили вашия SSH сървър с пароли, тогава трябва да създадете силни политики за пароли. В идеалния случай паролите трябва да са повече от 8 знака. Те трябва да се сменят след определено време, да речем след всеки 2 месеца. Те не трябва да съдържат думи в речника; по-скоро те трябва да са комбинация от азбуки, цифри и специални знаци. По същия начин можете да определите някои други изключително строги мерки за вашите политики за пароли, за да сте сигурни, че те са достатъчно силни.

Наблюдавайте и поддържайте одитните дневници на вашия SSH сървър:

Ако нещо се обърка с вашия SSH сървър, първият ви помощник може да бъде регистрационните дневници. Следователно трябва да продължите да поддържате тези регистрационни файлове, за да можете да проследите първопричината за проблема. Освен това, ако продължавате да наблюдавате здравословното състояние и работата на вашия SSH сървър непрекъснато, това ще предотврати появата на всички основни проблеми на първо място.

Поддържайте редовно архивиране на вашите данни:

Не на последно място, винаги трябва да поддържате резервно копие на целия си SSH сървър. Правейки това, не само ще спестите вашите данни от повреда или изцяло загуба; по-скоро можете да използвате този сървър за архивиране винаги, когато основният ви сървър падне. Това също ще ограничи престоя на сървъра и ще осигури неговата наличност.

Заключение:

Като се погрижите за всички мерки, предписани в тази статия, можете лесно да защитите или втвърдите вашия SSH сървър в Ubuntu 20.04. Ако обаче сте от фона на информационната сигурност, тогава трябва да сте наясно с този факт, че няма нищо подобно на 100% сигурност. Всичко, което можем да получим, е обещанието за най-добри усилия и това най-добро усилие ще бъде сигурно само до момента, в който то също ще бъде нарушено. Ето защо дори след като предприемете всички тези мерки, не можете да кажете, че вашият SSH сървър е 100% защитен; по-скоро все още може да има такива уязвимости, за които никога не бихте могли да се сетите. За такива уязвимости може да се погрижим само ако следим внимателно нашия SSH сървър и продължаваме да го актуализираме, когато е необходимо.

Топ 5 продукти за ергономична компютърна мишка за Linux
Продължителната употреба на компютър причинява ли болка в китката или пръстите? Страдате ли от схванати стави и постоянно ли ви се налага да си ръкува...
Как да променяте настройките на мишката и тъчпада с помощта на Xinput в Linux
Повечето дистрибуции на Linux се доставят с библиотека “libinput” по подразбиране за обработка на входни събития в системата. Той може да обработва вх...
Пренастройте бутоните на мишката си по различен начин за различен софтуер с X-Mouse Button Control
Може би се нуждаете от инструмент, който може да промени контрола на мишката с всяко приложение, което използвате. Ако случаят е такъв, можете да изпр...