SSH — основной инструмент администрирования серверов. Однако стандартная конфигурация по умолчанию часто оставляет "дыры" в безопасности.
Чтобы минимизировать риск взлома, нужно:
- Отключить root-доступ
* запретить логин по паролю - Разрешить вход только по SSH-ключу
* перенести SSH на нестандартный порт 
Работа под root напрямую — крайне рискованна. Лучше использовать sudo, давая обычному пользователю ограниченные привилегии.
Создаём пользователя (если ещё не создан):
		Код:
	
	adduser yourname
usermod -aG sudo yourname
	Теперь пользователь
yourname может выполнять команды от root, вводя свой пароль:
		Код:
	
	sudo apt update
	sudo:
		Код:
	
	groups yourname
	Откройте конфигурацию:
		Код:
	
	sudo nano /etc/ssh/sshd_config
	Измените или добавьте строки:
		Код:
	
	PermitRootLogin no
PasswordAuthentication no
	После этого перезапустите SSH:
		Код:
	
	sudo systemctl restart sshd
	На локальной машине:
		Код:
	
	ssh-keygen -t ed25519 -C "[email protected]"
	По умолчанию ключи сохранятся в:
		Код:
	
	~/.ssh/id_ed25519 и ~/.ssh/id_ed25519.pub
	Добавляем ключ на сервер:
		Код:
	
	ssh-copy-id -i ~/.ssh/id_ed25519.pub [email protected]
	Или вручную:
		Код:
	
	cat ~/.ssh/id_ed25519.pub | ssh user@server "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
	Открываем тот же файл:
		Код:
	
	/etc/ssh/sshd_config
	И указываем нестандартный порт, например:
		Код:
	
	Port 2222
	Открываем его в фаерволе:
		Код:
	
	sudo ufw allow 2222/tcp
	После всех изменений:
		Код:
	
	sudo systemctl restart sshd
	Проверяем новое подключение:
		Код:
	
	ssh -p 2222 [email protected]
	Теперь ваш сервер:
- Не допускает вход под root
* Не принимает пароли (только ключи) - Работает на другом порту (если вы его сменили)
 
fail2ban — это инструмент, который автоматически блокирует IP-адреса после нескольких неудачных попыток входа по SSH (и не только).
Установка:
		Код:
	
	sudo apt install fail2ban -y
	Создаём локальный конфиг:
		Код:
	
	sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
	Редактируем файл:
		Код:
	
	sudo nano /etc/fail2ban/jail.local
	Найдите секцию
[sshd] и убедитесь, что она активирована:
		Код:
	
	[sshd]
enabled = true
port    = ssh
logpath = %(sshd_log)s
maxretry = 5
	Перезапуск службы:
		Код:
	
	sudo systemctl restart fail2ban
	Проверка статуса:
		Код:
	
	sudo fail2ban-client status sshd
	Пример вывода:
Status for the jail: sshd|- Filter|  └─ Currently failed: 0|- Actions└─ Currently banned: 1Кроме SSH, fail2ban поддерживает:
- nginx (404-спам, brute-force на формы)
 - Postfix / Dovecot (почтовые сервера)
 - FTP-сервисы
 - WordPress wp-login.php (если интегрировать)
 
Теперь сервер:
- Отключает root-доступ
 - Принимает только SSH-ключи
 - Позволяет управлять через sudo без root
 - Блокирует IP при подозрительной активности
 
		Код:
	
	sudo systemctl status sshd
journalctl -xe | grep ssh
	Оставляйте комментарии ниже — обсудим, подскажем, дополним!
			
				Последнее редактирование: 
			
		
	
							
	