Данас је подизање сервера на хостингу ствар пар минута и неколико кликова мишем. Али одмах након лансирања, он се налази у непријатељском окружењу, јер је отворен за цео Интернет као невина девојка у рокерској дискотеци. Скенери ће га брзо пронаћи и открити хиљаде аутоматски скриптираних ботова који претражују мрежу тражећи рањивости и погрешне конфигурације. Постоји неколико ствари које треба да урадите одмах након покретања да бисте осигурали основну заштиту.
Први корак је да креирате не-роот корисника за себе. Поента је да корисник root апсолутне привилегије у систему, а ако му дозволите удаљену администрацију, онда ћете обавити пола посла за хакера, остављајући му важеће корисничко име.
Због тога морате да креирате другог корисника и да онемогућите удаљену администрацију преко ССХ за роот.
Наредбом се покреће нови корисник useradd:
useradd [options] <username>
Затим се за њега додаје лозинка са командом passwd:
passwd <username>
Коначно, овог корисника треба додати у групу која има право да извршава повишене команде sudo. У зависности од Линук дистрибуције, то могу бити различите групе. На пример, у ЦентОС-у и Ред Хат-у, корисник је додат у групу wheel:
usermod -aG wheel <username>
У Убунту-у се додаје у групу sudo:
usermod -aG sudo <username>
Кључеви уместо ССХ лозинки
Груба сила или цурење лозинке су стандардни вектор напада, тако да је најбоље да онемогућите аутентификацију лозинке у ССХ-у (Сецуре Схелл) и уместо тога користите проверу аутентичности кључем.
Постоје разни програми за имплементацију ССХ протокола, као нпр лсх и Дропбеар, али најпопуларнији је ОпенССХ. Инсталирање ОпенССХ клијента на Убунту:
sudo apt install openssh-client
Инсталација сервера:
sudo apt install openssh-server
Покретање ССХ демона (ссхд) на Убунту серверу:
sudo systemctl start sshd
Аутоматски покрените демон при сваком покретању:
sudo systemctl enable sshd
Треба напоменути да серверски део ОпенССХ-а укључује и клијентски део. То јест, кроз openssh-server можете се повезати са другим серверима. Штавише, са ваше клијентске машине можете покренути ССХ тунел од удаљеног сервера до хоста треће стране, а затим ће хост треће стране сматрати удаљени сервер извором захтева. Веома згодна функција за маскирање вашег система. За детаље погледајте чланак „Практични савети, примери и ССХ тунели“.
На клијентској машини обично нема смисла инсталирати пуноправни сервер како би се спречила могућност даљинског повезивања са рачунаром (из безбедносних разлога).
Дакле, за вашег новог корисника, прво морате да генеришете ССХ кључеве на рачунару са којег ћете приступити серверу:
ssh-keygen -t rsa
Јавни кључ се чува у датотеци .pub и изгледа као низ насумичних знакова који почиње са ssh-rsa.
Затим, испод роот-а, креирајте ССХ директоријум на серверу у корисничком кућном директоријуму и додајте ССХ јавни кључ у датотеку authorized_keys, користећи уређивач текста као што је Вим:
На страни клијента, потребно је да наведете локацију тајног кључа за аутентификацију:
ssh-add DIR_PATH/keylocation
Сада се можете пријавити на сервер под корисничким именом користећи овај кључ:
ssh [username]@hostname
Након ауторизације, можете користити команду сцп за копирање датотека, услужни програм ссхфс да даљински монтирате систем датотека или директоријуме.
Препоручљиво је да направите неколико резервних копија приватног кључа, јер ако онемогућите аутентификацију лозинке и изгубите је, онда уопште нећете имати начина да се пријавите на сопствени сервер.
Као што је горе поменуто, у ССХ-у морате да онемогућите аутентификацију за роот (ово је разлог зашто смо покренули новог корисника).
На ЦентОС/Ред Хат-у налазимо линију PermitRootLogin yes у конфигурационој датотеци /etc/ssh/sshd_config и промените га:
PermitRootLogin no
На Убунту додајте линију PermitRootLogin no у конфигурациони фајл 10-my-sshd-settings.conf:
Након што проверите да ли се нови корисник аутентификује својим кључем, можете да онемогућите аутентификацију лозинке да бисте елиминисали ризик од цурења лозинке или грубе силе. Сада, да би приступио серверу, нападач ће морати да добије приватни кључ.
На ЦентОС/Ред Хат-у налазимо линију PasswordAuthentication yes у конфигурационој датотеци /etc/ssh/sshd_config и промените га овако:
PasswordAuthentication no
На Убунту додајте линију PasswordAuthentication no да поднесе 10-my-sshd-settings.conf:
За упутства о омогућавању двофакторске аутентификације путем ССХ-а, погледајте овде.
Ватрени зид
Заштитни зид обезбеђује да само саобраћај на портовима који директно дозволите иде на сервер. Ово штити од експлоатације портова који су случајно омогућени другим сервисима, што у великој мери смањује површину напада.
Пре инсталирања заштитног зида, потребно је да се уверите да је ССХ укључен на листу искључења и да неће бити блокиран. У супротном, након покретања заштитног зида, нећемо моћи да се повежемо са сервером.
Убунту дистрибуција долази са некомпликованим заштитним зидом (уфв), и са ЦентОС/Ред Хат-ом - фиреваллд.
Сервис Фаил2Бан анализира логове на серверу и броји број покушаја приступа са сваке ИП адресе. Подешавања одређују правила колико је покушаја приступа дозвољено у одређеном интервалу - након чега се ова ИП адреса блокира на одређени временски период. На пример, дозволимо 5 неуспешних покушаја ССХ аутентификације у року од 2 сата, а затим блокирамо дату ИП адресу на 12 сати.
Поред ССХ-а, Фаил2Бан може заштитити и друге услуге на нгинк или Апацхе веб серверу.
Аутоматска безбедносна ажурирања
Као што знате, нове рањивости се стално налазе у свим програмима. Након објављивања информација, популарним пакетима експлоатације се додају експлоатације које масовно користе хакери и тинејџери када скенирају све сервере заредом. Због тога је веома важно да инсталирате безбедносна ажурирања чим се појаве.
Убунту Сервер има подразумевано омогућена аутоматска безбедносна ажурирања, тако да нису потребне додатне радње.
На ЦентОС/Ред Хат-у морате да инсталирате апликацију днф-аутоматиц и укључите тајмер:
ССХ је развијен 1995. да замени телнет (порт 23) и фтп (порт 21), па је аутор програма Тату Илтонен подразумевано изабран порт 22, а одобрила га је ИАНА.
Наравно, сви нападачи су свесни на ком порту ради ССХ - и скенирају га заједно са осталим стандардним портовима да би сазнали верзију софтвера, проверили стандардне роот лозинке и тако даље.
Промена стандардних портова – замагљивање – неколико пута смањује количину смећа саобраћаја, величину логова и оптерећење на серверу, а такође смањује површину напада. Иако неки критикују овај метод "заштите кроз мрачност" (безбедност кроз таму). Разлог је тај што је ова техника супротна основној архитектонска заштита. Стога, на пример, амерички национални институт за стандарде и технологију у „Водич за безбедност сервера“ указује на потребу за отвореном серверском архитектуром: „Безбедност система не треба да се ослања на тајност имплементације његових компоненти“, каже се у документу.
Теоретски, промена подразумеваних портова је против праксе отворене архитектуре. Али у пракси се количина злонамерног саобраћаја заправо смањује, тако да је ово једноставна и ефикасна мера.
Број порта се може конфигурисати променом директиве Port 22 у конфигурационој датотеци / етц / ссх / ссхд_цонфиг. Такође је назначено параметром -p <port> в ссхд. ССХ клијент и програми сфтп такође подржавају опцију -p <port>.
Параметар -p <port> може се користити за одређивање броја порта приликом повезивања са командом ssh у линуксу. ИН сфтп и scp параметар се користи -P <port> (велико П). Инструкције командне линије замењују било коју вредност у конфигурационим датотекама.
Ако постоји много сервера, скоро све ове радње за заштиту Линук сервера могу се аутоматизовати у скрипти. Али ако постоји само један сервер, онда је боље ручно контролисати процес.
О правима оглашавања
Наручите и почните одмах! Стварање ВДС-а било коју конфигурацију и са било којим оперативним системом у року од једног минута. Максимална конфигурација ће вам омогућити да изађете у потпуности - 128 ЦПУ језгара, 512 ГБ РАМ-а, 4000 ГБ НВМе. Епско 🙂