
, CC BY-SA
Во денешно време, поставувањето сервер на хостинг е прашање на неколку минути и неколку кликања на глувчето. Но, веднаш по лансирањето, тој се наоѓа во непријателска средина, бидејќи е отворен за целиот интернет како невина девојка во рокерска дискотека. Скенерите брзо ќе го најдат и ќе откријат илјадници автоматски скриптирани ботови кои ја пребаруваат мрежата во потрага по пропусти и неточни конфигурации. Има неколку работи што треба да ги направите веднаш по лансирањето за да обезбедите основна заштита.
содржина
Корисник кој не е корен
Првото нешто што треба да направите е да креирате корисник кој не е root. Поентата е дека корисникот root апсолутни привилегии во системот, и ако му дозволите далечинско администрирање, тогаш ќе завршите половина работа за хакерот, оставајќи му валидно корисничко име.
Затоа, треба да креирате друг корисник и да ја оневозможите далечинската администрација преку SSH за root.
Со командата се креира нов корисник useradd:
useradd [options] <username> Потоа за него се додава лозинка со командата passwd:
passwd <username> Конечно, овој корисник треба да се додаде во група која има право да извршува команди со зголемени привилегии sudo. Во зависност од дистрибуцијата на Linux, овие може да бидат различни групи. На пример, во CentOS и Red Hat се додава корисник во група wheel:
usermod -aG wheel <username> На Ubuntu се додава во групата sudo:
usermod -aG sudo <username>
Копчиња наместо SSH лозинки
Брутална сила или истекување на лозинка е стандарден вектор за напад, па затоа е подобро да се оневозможи автентикацијата на лозинка во SSH (безбедна школка) и наместо тоа да се користи автентикација на клучеви.
Постојат различни програми за имплементација на протоколот SSH, како на пр и , но најпопуларен е OpenSSH. Инсталирање на клиентот OpenSSH на Ubuntu:
sudo apt install openssh-clientИнсталација на сервер:
sudo apt install openssh-serverСтартување на SSH демонот (sshd) на сервер на Ubuntu:
sudo systemctl start sshdАвтоматски стартувајте го демонот на секое подигање:
sudo systemctl enable sshd Треба да се напомене дека делот на серверот OpenSSH го вклучува делот на клиентот. Тоа е, преку openssh-server можете да се поврзете со други сервери. Покрај тоа, од вашата клиентска машина можете да стартувате SSH тунел од далечински сервер до хост од трета страна, а потоа домаќинот од трета страна ќе смета дека оддалечениот сервер е извор на барања. Многу удобна функција за маскирање на вашиот систем. За повеќе детали, видете ја статијата. .
Обично нема смисла да се инсталира полноправен сервер на машината на клиентот со цел да се спречи можноста за далечинско поврзување со компјутерот (од безбедносни причини).
Значи, за вашиот нов корисник, прво треба да генерирате SSH клучеви на компјутерот од кој ќе пристапите до серверот:
ssh-keygen -t rsa Јавниот клуч е зачуван во датотека .pub и изгледа како низа од случајни знаци што започнува со ssh-rsa.
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ3GIJzTX7J6zsCrywcjAM/7Kq3O9ZIvDw2OFOSXAFVqilSFNkHlefm1iMtPeqsIBp2t9cbGUf55xNDULz/bD/4BCV43yZ5lh0cUYuXALg9NI29ui7PEGReXjSpNwUD6ceN/78YOK41KAcecq+SS0bJ4b4amKZIJG3JWm49NWvoo0hdM71sblF956IXY3cRLcTjPlQ84mChKL1X7+D645c7O4Z1N3KtL7l5nVKSG81ejkeZsGFzJFNqvr5DuHdDL5FAudW23me3BDmrM9ifUmt1a00mWci/1qUlaVFft085yvVq7KZbF2OP2NQACUkwfwh+iSTP username@hostname
Потоа, како root, креирајте директориум SSH на серверот во домашниот директориум на корисникот и додадете го јавниот клуч SSH во датотеката authorized_keysкористејќи текстуален уредувач како Vim:
mkdir -p /home/user_name/.ssh && touch /home/user_name/.ssh/authorized_keysvim /home/user_name/.ssh/authorized_keysКонечно, поставете ги точните дозволи за датотеката:
chmod 700 /home/user_name/.ssh && chmod 600 /home/user_name/.ssh/authorized_keysи сменете ја сопственоста на овој корисник:
chown -R username:username /home/username/.sshНа страната на клиентот, треба да ја наведете локацијата на тајниот клуч за автентикација:
ssh-add DIR_PATH/keylocationСега можете да се најавите на серверот под корисничкото име користејќи го овој клуч:
ssh [username]@hostnameПо овластувањето, можете да ја користите командата scp за да копирате датотеки, алатката за далечинско монтирање датотечен систем или директориуми.
Препорачливо е да направите неколку резервни копии од приватниот клуч, бидејќи ако ја оневозможите проверката на лозинката и ја изгубите, воопшто нема да имате начин да се најавите на вашиот сопствен сервер.
Како што споменавме погоре, во SSH треба да ја оневозможите автентикацијата за root (поради оваа причина создадовме нов корисник).
На CentOS/Red Hat ја наоѓаме линијата PermitRootLogin yes во конфигурациската датотека /etc/ssh/sshd_config и смени го:
PermitRootLogin no На Ubuntu додадете ја линијата PermitRootLogin no до конфигурациската датотека 10-my-sshd-settings.conf:
sudo echo "PermitRootLogin no" >> /etc/ssh/sshd_config.d/10-my-sshd-settings.confОткако ќе потврдите дека новиот корисник е автентициран со помош на неговиот клуч, можете да ја оневозможите проверката на лозинката за да го елиминирате ризикот од истекување на лозинката или брутална сила. Сега, за да пристапи до серверот, напаѓачот ќе треба да го добие приватниот клуч.
На CentOS/Red Hat ја наоѓаме линијата PasswordAuthentication yes во конфигурациската датотека /etc/ssh/sshd_config и променете го на следниов начин:
PasswordAuthentication no На Ubuntu додадете ја линијата PasswordAuthentication no да поднесе 10-my-sshd-settings.conf:
sudo echo "PasswordAuthentication no" >> /etc/ssh/sshd_config.d/10-my-sshd-settings.confЗа инструкции за тоа како да се овозможи двофакторна автентикација преку SSH, видете .
Заштитен ѕид
Заштитниот ѕид гарантира дека само сообраќајот на портите што директно ги дозволувате ќе оди на серверот. Ова заштитува од експлоатација на пристаништа кои се случајно овозможени од други услуги, што во голема мера ја намалува површината на нападот.
Пред да инсталирате заштитен ѕид, треба да бидете сигурни дека SSH е вклучен во списокот со исклучувања и нема да биде блокиран. Во спротивно, по стартувањето на заштитниот ѕид, нема да можеме да се поврземе со серверот.
Дистрибуцијата на Ubuntu доаѓа со некомплициран заштитен ѕид (), и со CentOS/Red Hat - .
Дозволување на SSH во заштитниот ѕид на Ubuntu:
sudo ufw allow ssh На CentOS/Red Hat ја користиме командата firewall-cmd:
sudo firewall-cmd --zone=public --add-service=ssh --permanentПо оваа постапка, можете да го стартувате заштитниот ѕид.
На CentOS/Red Hat ја стартуваме услугата systemd за заштитен ѕид:
sudo systemctl start firewalld
sudo systemctl enable firewalldНа Ubuntu ја користиме следнава команда:
sudo ufw enable
Неуспешно2Бан
Услуги ги анализира дневниците на серверот и го брои бројот на обиди за пристап од секоја IP адреса. Поставките ги одредуваат правилата за тоа колку обиди за пристап се дозволени во одреден интервал - по што оваа IP адреса е блокирана за одреден временски период. На пример, дозволуваме 5 неуспешни обиди за автентикација преку SSH во период од 2 часа, по што ја блокираме оваа IP адреса 12 часа.
Инсталирање на Fail2Ban на CentOS и Red Hat:
sudo yum install fail2banИнсталација на Ubuntu и Debian:
sudo apt install fail2banЛансира:
systemctl start fail2ban
systemctl enable fail2ban Програмата има две конфигурациски датотеки: /etc/fail2ban/fail2ban.conf и /etc/fail2ban/jail.conf. Ограничувањата за забрана се наведени во втората датотека.
Затворот за SSH е стандардно овозможен со стандардни поставки (5 обиди, интервал 10 минути, забрана за 10 минути).
[СТАНДУВАЊЕ] игнорирање наредба = бантам = 10 м време на пронаоѓање = 10 м максимум = 5
Покрај SSH, Fail2Ban може да заштити и други услуги на веб-серверот nginx или Apache.
Автоматски безбедносни ажурирања
Како што знаете, нови пропусти постојано се наоѓаат во сите програми. По објавувањето на информациите, експлоатирањата се додаваат во популарните пакети за експлоатација, кои нашироко ги користат хакерите и тинејџерите при скенирање на сите сервери по ред. Затоа, многу е важно да се инсталираат безбедносни ажурирања веднаш штом ќе станат достапни.
Серверите на Ubuntu имаат стандардно овозможени автоматски безбедносни ажурирања, така што не се потребни дополнителни чекори.
На CentOS/Red Hat треба да ја инсталирате апликацијата и вклучете го тајмерот:
sudo dnf upgrade
sudo dnf install dnf-automatic -y
sudo systemctl enable --now dnf-automatic.timerПроверка на тајмерот:
sudo systemctl status dnf-automatic.timer
Промена на стандардните порти
SSH беше развиен во 1995 година за да ги замени телнет (порта 23) и ftp (порта 21), така што авторот на програмата е Тату Илтонен , а беше одобрен од ИАНА.
Секако, сите напаѓачи знаат на која порта работи SSH - и ја скенираат заедно со другите стандардни порти за да ја дознаат верзијата на софтверот, да ги проверат стандардните лозинки за root итн.
Промената на стандардните порти - заматување - го намалува обемот на несаканиот сообраќај, големината на дневниците и оптоварувањето на серверот неколку пати, а исто така ја намалува и површината на нападот. Иако некои (безбедност преку затемнување). Причината е што оваа техника е спротивна на фундаменталното . Затоа, на пример, Националниот институт за стандарди и технологија на САД укажува на потребата за архитектура на отворен сервер: „Безбедноста на системот не треба да се потпира на тајноста на имплементацијата на неговите компоненти“, се вели во документот.
Теоретски, менувањето на стандардните порти е спротивно на практиките на отворената архитектура. Но, во пракса, обемот на злонамерниот сообраќај всушност се намалува, па ова е едноставна и ефикасна мерка.
Бројот на портата може да се конфигурира со промена на директивата Port 22 во конфигурациската датотека . Тоа е означено и со параметарот -p <port> в . SSH клиент и програми исто така го поддржува параметарот -p <port>.
Параметар -p <port> може да се користи за одредување на бројот на портата при поврзување со помош на командата ssh во Linux. ВО и scp се користи параметар -P <port> (голема P). Наведувањето од командната линија ја отфрла секоја вредност во конфигурациските датотеки.
Ако има многу сервери, скоро сите овие дејства за заштита на серверот Линукс може да се автоматизираат во скрипта. Но, ако има само еден сервер, тогаш подобро е рачно да го контролирате процесот.
За правата на рекламирање
Нарачајте и започнете со работа веднаш! која било конфигурација и со кој било оперативен систем во рок од една минута. Максималната конфигурација ќе ви овозможи да имате експлозија - 128 јадра на процесорот, 512 GB RAM, 4000 GB NVMe. Доста епско :)
Извор: www.habr.com
