Как да защитите SSH сървър в Ubuntu 14.04
SSH (Secure Socket Shell) е интерфейс и протокол за командния ред за сигурно получаване на достъп до отдалечен Linux сървър. Той осигурява сигурна и криптирана комуникация по мрежата и позволява данните да се обменят по сигурен канал между два сървъра. Той се използва широко от системните администратори за дистанционно управление на уеб и други типове сървъри. В тази статия ще ви покажем как можете да защитите SSH сървъра си.
Забележка : този урок предполага, че SSH сървърът работи с Ubuntu 14.04, а клиентската машина е Linux.
Първи стъпки - инсталирайте SSH
Първо, трябва да актуализирате системата си и да инсталирате необходимите пакети в системата си.
За да актуализирате системата и да инсталирате SSH сървъра на сървърната машина, изпълнете следната команда:
sudo apt-get актуализация sudo apt-get инсталирате openssh-сървър
За да инсталирате SSH клиент на клиентската машина, изпълнете следната команда:
sudo apt-get инсталирате openssh-клиент
Конфигурирайте SSH за влизане без парола
Има два различни метода за влизане в SSH сървър: едната е автентификация на базата на парола, а другата е удостоверяване на базата на ключове. Удостоверяването на паролите е много лесен за използване и пляскане метод. Използването на удостоверяване чрез парола е много несигурно, особено ако потребителят използва слаба парола. От друга страна, клавишите SSH осигуряват лесен и сигурен начин за влизане в отдалечен сървър и този метод се препоръчва за всички потребители.
На клиентската ви машина генерирайте SSH ключове със следната команда:
cd ~ / .ssh ssh-keygen -t rsa
Просто натиснете клавиша Enter при всяко натискане. Това създава два файла: id_rsa.pub (публичен ключ) и id_rsa (частен ключ).
Това ще изведе нещо, което прилича на следното:
На сървъра си създайте следната папка (ако тя не съществува):
mkdir -p ~ / .ssh /
Върнете се в клиентската машина, копирайте файла "id_rsa.pub" на сървъра си, като използвате следната команда:
scp -P "yourport" ~ / .ssh / id_rsa.pub потребителско име @ serverip: ~ / .ssh
Променете "yourport" на номера на порта, който SSH сървърът използвате (по подразбиране е 22) и "serverip" на IP адреса на сървъра.
На сървърната машина променете името на файла и разрешенията за инсталиране.
котка ~ / .ssh / id_rsa.pub >> ~ / .ssh / authorized_keys chmod 700.ssh chmod 600.ssh / authorized_keys rm .ssh / id_rsa.pub
За да проверите дали методът за удостоверяване на базата на ключове работи, опитайте да се свържете със сървъра си SSH от клиентската машина:
ssh -P "yourport" username @ serverip
Ако можете да се свържете без да въвеждате парола, тогава работи методът за удостоверяване на базата на ключове.
Secure SSH конфигурационен файл
Файлът "/ etc / ssh / sshd_config" е конфигурационният файл за SSH, който ви позволява да зададете различни опции за подобряване на сигурността на SSH сървър. Конфигурацията по подразбиране в конфигурационния файл е много несигурна, така че първо трябва да я редактирате и да зададете подходящи опции за подобряване на сигурността.
За да редактирате файла "/ etc / ssh / sshd_config", изпълнете
sudo nano / etc / ssh / sshd_config
Промяна на порт за слушане на SSH
По подразбиране SSH слуша в порт 22. Атакуващите използват пристанищни скенери, за да видят дали SSH услугата работи или не. Препоръчва се да промените портът по подразбиране.
За да промените портът по подразбиране на 2200, променете:
Порт 22
да се
Порт 2200
Използвайте протокол 2 само
Версия 1 на протокола съдържа уязвимости в сигурността. Протокол 2 е по подразбиране за Ubuntu.
Променете реда, показан по-долу:
Протокол 2
Ограничаване на достъпа на потребителите
Необходимо е да се позволи само конкретни потребители да влизат в SSH. Тя може да подобри вашата сигурност. По подразбиране тази опция не е налице в конфигурационния файл на SSH.
За да разрешите "user1" и "user2", добавете следния ред:
Позволява потребител user1 user2
За да отхвърлите "baduser1" и "baduser2", добавете следния ред:
DenyUsers baduser1 baduser2
Деактивиране на вход за root
Не е необходимо да влизате като root през ssh по мрежата. Нормалните потребители могат също да използват su
или sudo
да получат достъп до коренното ниво. Повечето нападатели ще се опитат да използват потребител на root, за да влязат в профила си. Това е голям риск за сигурността, затова се препоръчва да откажете root login.
За да деактивирате кодовото влизане, променете реда
PermitRootLogin без парола
да се
PermitRootLogin не
Скриване на последното влизане
Можете да скриете кой е влязъл последно, когато потребител се логва.
За тази цел променете реда
PrintLastLog да
да се
PrintLastLog no
Ограничете интерфейса, за да влезете
По подразбиране ssh ще се слуша на всички мрежови интерфейси. Ако искате да разрешите приемането на SSH връзка от конкретни IP адреси, можете да промените линията
#ListenAddress ::
да се
ListenAddress 192.168.1.20
Деактивиране на удостоверяването на паролата
Използването на удостоверяване чрез парола е голям риск за сигурността, ако потребителят използва слаба парола. Препоръчително е да използвате "ssh keys". Един "ssh ключ" може да съдържа над 600 произволни знака и е трудно да се счупи.
За тази цел променете реда
# PasswordAuthentication да
да се
PasswordAuthentication no
Деактивирайте файловете .rhosts
Файловете .rhosts определят кои потребители могат да имат достъп до r-командите (rsh, rcp, rlogin и т.н.) на локалната машина без парола. По подразбиране файлът .rhosts е деактивиран; ако не, променете линиите, както е показано по-долу.
IgnoreRhosts да RhostsAuthentication не RSAAuthentication да
Деактивирайте удостоверяването на базата на хост
Определянето на автентичността на хоста на SSH е по-сигурна от удостоверяването .rhosts. Въпреки това, не се препоръчва домакините да се доверяват един на друг. По подразбиране тази опция е деактивирана.
Ако не, променете реда, показан по-долу.
HostbasedAuthentication no
Задайте график за влизане в гратис за влизане
"LoginGraceTime" определя колко дълго след заявка за връзка сървърът ще изчака, преди да прекъснете връзката. Препоръчва се да се намали до 60 секунди.
За тази цел променете реда
LoginGraceTime 120
да се
LoginGraceTime 60
Задайте максимални връзки за стартиране
Настройването на подходящ максимален брой съпътстващи връзки към SSH демона може да бъде полезно срещу атака на груба сила.
За тази цел променете реда
#MaxStartups 10:30:60
да се
MaxStartups 2
Деактивиране на препращането
Технологията за препращане на портове се използва от нападателите за тунелиране на мрежови връзки през SSH сесия за влизане в системите. Препоръчваме да деактивирате тази опция.
За тази цел променете реда
X11Предоставяне да
да се
X11 Предоставяне не
Регистрирайте повече информация
По подразбиране SSH регистрира всичко. Ако искате да влезете в повече информация като неуспешни опити за влизане. можете да промените стойността на това на "VERBOSE".
За тази цел променете реда
LogLevel INFO
да се
LogLevel VERBOSE
Деактивирайте празни пароли
Необходимо е да откажете на потребителите с празни пароли на сървъра си. По подразбиране PermitEmptyPasswords
е деактивиран в Ubuntu.
Ако не, променете реда, показан по-долу.
PermitEmptyPasswords не
Задайте интервал от време на изчакване
По подразбиране тези опции не са налични в конфигурационния файл по подразбиране за SSH. Препоръчва се да се настрои подходящо време за изчакване, за да се избегне сешоара без наблюдение.
За това добавете следните редове.
ClientAliveInterval 300 ClientAliveCountMax 0
Строг режим
Това ще попречи на използването на несигурна домашна директория и разрешения за файлови ключове. По подразбиране тази опция е активирана.
Ако не, променете следния ред.
StrictModes да
Сега запазете и излезте от файла / etc / ssh / sshd_config и рестартирайте SSH сървъра.
sudo услуга ssh рестартиране
Защитете SSH, като използвате TCP обвивки
TCP обвивката осигурява контрол на достъпа на базата на хост до мрежови услуги, използвани за филтриране на мрежов достъп до Интернет. Редактирайте файла "/etc/hosts.allow", за да позволите SSH само от 192.168.1.2 и 172.16.23.12.
sudo nano /etc/hosts.allow
Добавете следния ред:
sshd: 192.168.1.2 172.16.23.12
Защитете SSH посредством iptables
По подразбиране SSH сървърът трябва да приема само връзки от вашата локална мрежа или други отдалечени обекти. Препоръчва се да се разреши само достъп до специфични IP адреси за достъп до SSH и блокиране на достъпа до SSH до неразрешени IP адреси.
За да позволите SSH връзки само от 192.168.1.2 изпълнете следната команда:
sudo iptables -A INPUT -p tcp -m състояние -съдържание НОВО - източник 192.168.1.2 --dport 2200 -j ACCEPT
Деактивирайте връзката SSH от всички други хостове, като изпълните следната команда:
sudo iptables -А ВЪВЕЖДАНЕ -p tcp -dport 2200 -j DROP
Сега запомнете новите си правила, като използвате следната команда:
sudo iptables-save> /etc/iptables/rules.v4
заключение
Горепосочените указания са много мощни техники за осигуряване на SSH сървъра ви. Тази публикация обхваща цялата информация, която повечето потребители ще имат нужда от SSH сървър. Ако имате някакви въпроси, можете да коментирате по-долу.
Референция: SSH ubuntu