Ssh server для простых смертных (безопасное использованию сервера OpenSSH)

Для начало вспомним наши конфигурационные файлы:
/etc/ssh/sshd_config — конфигурационный файл сервера OpenSSH
/etc/ssh/ssh_config — конфигурационный файл клиентской части OpenSSH
~/.ssh/ – конфигурационная директория пользователей ssh.
Расмотрим несколько советов по безопасному использованию сервера OpenSSH.
Открываем наш конфиг и смотрим:
$ nano /etc/ssh/sshd_config
1. SSH порт, используемый по умолчанию: : TCP 22 ssh server, меняем так как многие brute forcing заточен под 22 порт и по крайней мере введет в заблуждения «кул хацкеров»
# What ports, IPs and protocols we listen for
Port 2280

По умолчанию sshd принимает подключения на всех интерфейсах, если не требуется заходить на сервер «из вне», то можно ограничить его нужным нам IP адресам, (например 192.168.100.1).
Внимание: это указание ssh-демону, какой ip-адрес использовать для входящих соединений. Т.е. если твой сервер имеет два интерфейса:
– внешний (подключение в Интернет) — с реальным ip-адресом,
– внутренний (локальная сеть) — с приватным (например 192.168.100.1) и ты хочешь, чтоб по ssh к серверу можно было добраться только c хостов, находящихся в локальной сети — в конфиге указываешь ListenAdress — адрес на котором сервер принимает запросы на соединение. И этот параметр не имеет почти никакого отношения к ограничению доступа к серверу по протоколу ssh !
ListenAddress 192.168.100.1
Дополнительно через двоеточие можно указать и номер порта. В данном примере используется значение порта, заданное глобально параметром Port.
2. Используйте только протокол SSH 2
Protocol 2
3. Ограничение доступа ssh server суперпользователя
В большинстве дистрибутивов в целях безопасности доступ суперпользователю(root) по SSH закрыт (PermitRootLogin no), и при попытке зарегистрироваться под root получаем сообщение об ошибке. Для выполнения задач, требующих привилегий администратора, приходится заходить под обычным пользователем и использовать su или sudo. Красиво выйти из ситуации поможет директива Match. В качестве аргумента ей передается критерий отбора (User, Group, Host, Address), его значение и параметр, который нужно применить. Для примера разрешим подключение под root только с localhost и из локальной подсети 192.168.100.0/24:
PermitRootLogin no
Match Host 192.168.100.*,127.0.0.1
PermitRootLogin yes

или просто запрещаем региться под root’oм
PermitRootLogin no
4. Ограничение доступа пользователей ssh server через SSH
Будет полезно всем, кто заводит пользователей в системе например для mail или ftp и etc,во многих системах по умолчанию пользователям разрешено иметь доступ через SSH с использованием пароля или открытого ключа.AllowUsers (пользователи, которым разрешен доступ).
Для того, чтобы доступ в систему через SSH был разрешен только пользователям user1,user2 и тд:
AllowUsers user1 user2
так же возможно использовать и такую конструкцию с IP-адресом
AllowUsers *@192.168.2.*
Так же можно, наоборот, разрешить всем пользователям, но для определенных запретить:
DenyUsers user10 user20
5. Авторизация и подключения
LoginGraceTime 45
Параметр LoginGraceTime определяет, по истечению какого времени простаивающее подключение будет разорвано (в секундах), т.е : позволенный для регистрации промежуток времени, за который надо ввести пароль, значение по умолчанию 120 явно завышено, думаю что будет 45 сек будет достаточно.
MaxStartups 2:50:10
Количество параллельных не идентифицированных подключений к серверу контролируется при помощи MaxStartups. Запись параметра имеет форму «start:rate:full». В нашем случае она означает отключение с вероятностью 50% при наличии двух не идентифицированных связей, с линейным ростом вероятности до 100% при достижении 10.
Для тех у кого будет много подключений по SSH можно сконфигурировать время закрытия неработающей сессии:
ClientAliveInterval 300
ClientAliveCountMax 0

устанавливаем таймаут в секундах (300 секунд = 5 минутам). После того, как указанное время истечет, бездействующий пользователь будет отключен от системы
6. Отключение прослушивания IPv6 адресов ssh server
ИМХО IPv6 пока ни неактуальный (по крайней мере, для меня), поэтому предлагаю его отключить
По умолчанию sshd слушает как на IPv4 так и на IPv6 адресах. Для того что бы его отключить необходимо изменить параметр AddressFamily (если значение AddressFamily не указано в конфигурационном файле, то оно принимается равным any):
AddressFamily any # default (IPv4 и IPv6)
AddressFamily inet # IPv4 only
AddressFamily inet6 # IPv6 only

Ну и на последок так же можно добавьте предупреждающий баннер, расскоментируйте строчку, в sshd_config, либо указать иной путь к своему баннеру :
Banner /etc/issue

Также можно ограничить доступ к нужному сервису через hosts

Edit /etc/hosts.allow and add your subnet

sshd : 192.168.0.

Edit /etc/hosts.deny , and deny all

ALL : ALL

(c)linuxjournal

2016: Disable denial of service attack detection

Error 2025: The server has detected an attempted Denial-Of-Service attack from client \\[workstation], and has disconnected the connection.

Disable denial of service attack detection
Important These steps may increase your security risk. These steps may also make your computer or your network more vulnerable to attack by malicious users or by malicious software such as viruses. We recommend the process that this article describes to enable programs to operate as they are designed to, or to implement specific program capabilities. Before you make these changes, we recommend that you evaluate the risks that are associated with implementing this process in your particular environment. If you choose to implement this process, take any appropriate additional steps to help protect your system. We recommend that you use this process only if you really require this process.You can disable denial of service attack detection at the operating system level. By doing this, you prevent errors from being logged. To do this, follow these steps:

Click Start, click Run, type regedit in the Open box, and then click OK.
Locate and then click the following registry subkey:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManServer\Parameters
On the Edit menu, point to New, and then click DWORD Value.
Type DisableDos for the name of the DWORD value, and then press ENTER.
Right-click DisableDos, and then click Modify.
In the Value data box, type 1 to disable denial of service attack detection, and then click OK.

Note To enable denial of service attack detection, type 0 in the Value data box.
Quit Registry Editor.

How to fix hyper-v cannot be installed a hypervisor is already running

Enable-WindowsOptionalFeature –Online -FeatureName Microsoft-Hyper-V –All -NoRestart

The above command installs only the hypervisor but does not install the administration tools, if you want to manage the Hyper-V within the virtual machine you must install RSAT for Hyper-V to do this run the following command:

Install-WindowsFeature RSAT-Hyper-V-Tools -IncludeAllSubFeature

you want to create a cluster then you need to install the Cluster service, run:
Install-WindowsFeature RSAT-Clustering -IncludeAllSubFeature

you can install Multipath I/O to enable multiple paths to the storage, if this is your case follow:
Install-WindowsFeature Multipath-IO

Restart to finalize the virtual machine with the command:
Restart-Computer

Windows: отключаем Windows Update на Server 2016

Открываем консоль – cmd
Вводим sconfig
Выбираем пункт обновление Windows (по умолчанию 5)

Выбираем пункт 5
Выбираем М – обновление только вручную

Ждем сообщение системы, что все корректно отключилось

Posts navigation

1 2
Scroll to top