Защита SSH-сервера — порты, ключи, port knocking, iptables

preview_player
Показать описание


0:00 О port knocking
1:19 Что такое сетевые порты в TCP и UDP?
3:17 Замена стандартного порта SSH-сервера
4:24 Запрет SSH-входа по паролю
4:56 Что делать, если потеряешь SSH-ключи?
6:23 Запрет входа root
6:33 Port knocking и безопасность
8:52 Покупка сервера в Selectel
9:40 Создание SSH-ключа с паролем
11:16 Создание Linux-пользователя
12:43 Разрешаем SSH-вход пользователю
13:47 Базовая настройка SSH-сервера
15:51 Настройка port knocking с knockd, iptables и nmap
25:50 Ещё несколько возможностей iptables
26:30 Как сделать сервер непингуемым?
28:01 Выводы

Команды из видео
===

Генерация SSH-ключей:
ssh-keygen -t ed25519

Копирование публичного ключа:

Редактирование настроек SSH-сервера:
sudo vim /etc/ssh/sshd_config

Настройки:
AllowUsers www
PermitRootLogin no
PasswordAuthentication no
Port 45916

Рестарты SSH-сервера:
sudo service ssh restart

Установка knockd:
sudo apt install -y knockd

Редактирование его настроек:

Настройки:
[options]
UseSyslog
Interface = enp3s0

[SSH]
sequence    = 7000,8000,9000
seq_timeout = 5
tcpflags    = syn
start_command     = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 45916 -j ACCEPT
stop_command     = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 45916 -j ACCEPT
cmd_timeout   = 60

Здесь enp3s0 это сетевой интерфейс, проверяется командой:
ip a

Автозапуск:
sudo vim /etc/default/knockd
START_KNOCKD=1
KNOCKD_OPTS="-i enp3s0"

Сетевой интерфейс аналогично подставляется актуальный вместо enp3s0.

Старт knockd:
sudo systemctl start knockd
sudo systemctl enable knockd
sudo systemctl status knockd

Настройка iptables и перманентное сохранение этих настроек:
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 45916 -j REJECT
sudo apt install iptables-persistent
sudo service netfilter-persistent save

Просмотр настроек:
sudo iptables -L --line-numbers

Постучаться в три порта — 7000, 8000 и 9000 сервера с IP 46.148.229.113:
for x in 7000 8000 9000; do nmap -Pn --max-retries 0 -p $x 46.148.229.113; done

Сброс всех настроек iptables:
sudo iptables -F

Запрет ping хоста:
sudo iptables -A INPUT -p icmp --icmp-type 8 -j DROP

Удаление этого правила:
sudo iptables -D INPUT -p icmp --icmp-type 8 -j DROP

/****************** about ******************/

Меня зовут Алексей Голобурдин, я программирую с 2004 года и на этом канале делюсь своим опытом. Я основатель и руководитель компаний:

Рекомендации по теме
Комментарии
Автор

Я всё задавался вопросом куда же ты пропал? А он оказывается кушал 😂😂
Очень рад что ты вернулся.

СтависВега
Автор

Вот пристали-то "поправился", "растолстел", "в кадр не влезешь", человеку даже к бабушке уже нельзя съездить что-ли? Хорошего человека должно быть много. Алексей молодец, главное - чтоб здоровье было хорошее, а остальное - ерунда. Благодаря ему работаю девопсом. Спасибо большое за информацию в простой и понятной форме. Алексей, желаю конского здоровья и стальных нервов.

kirillzh
Автор

Не прекращай радовать видосиками! Самый ламповый и толковый блогер по теме разработки ❤

vladislavske
Автор

Благодарю за то, что когда-то дали комментарий по резюме, когда вам требовался сотрудник, это помогло продолжать путь, и в итоге устроился на первую работу год назад примерно)
В целом все видосы оч полезные

bokoter
Автор

Темы топ, подача топ. Видосы по линуксу просто мастхев 👍

NatureFitSport
Автор

Можно ещё прикрутить fail2ban, чтобы блокировать IP после нескольких неправильных попыток входа

lexor
Автор

Старенькая, но приколная затычка, которая биндится на дефолтовый 22 порт, прикидывается ssh и при коннекте начинает отмораживаться, но коннект не разрывает. Эдакий honeypot. Первый же вопрос на подбор пароля вязнет и вечно ожидает завершения :)
endlessh

СтависВега
Автор

Ого, офигеть, магия б**ь, просто гениальная технология, прям как гномьи двери в Мории, которые не видно) Огромное спасибо за ваш канал, всегда много полезного узнаю

pid
Автор

Предлагаю в качестве следующей темы для видео рассмотреть механизм защиты "honey pot".

СергейЗеленин-зз
Автор

Как по мне, вот этого набора правил, будет вполне достаточно, чтобы никакой ебобо, не смог подключиться к серваку:
- Port 0 - 65536
- LoginGraceTime 10s
- AllowUsers Username
- StrictModes yes
- MaxAuthTries 1
- MaxSessions 1
- PubkeyAuthentication yes
- PasswordAuthentication no
- PermitRootLogin no
- PermitEmptyPasswords no

vito-kuk
Автор

ура главкотан вернулся) и сразу с нужной темой.

sammak
Автор

Браво!!!
Обалденное видео, сам работаю с линуксом почти 20 лет, и порт накинг это не новое и известное но в видео показано как это просто сделать.
к сожалению 99.9% админов этим не заморачиваются, дай б-г чтобы хотя бы вырубили доступ по паролю ))))
А уже защищать ssh ключи паролем, не говоря уже про порт нокинг это уже космос :))

benjaminshtark
Автор

Вообще огонь! Только на днях думал, как защитить ssh-сервер, смотрящий в интернет. Google что уже научился мысли читать?!

bakla_zhan
Автор

По поводу как получить доступ к серверу когда потярял ключи, при условии что это ваш сервер и есть доступ к поставщеку услуг(на всех я не проверял, но в оракл это единственный способ вернуть доступ):
1) отмонтировать системный диск от ВМ
2) создать новую вм, примонтировать ей этот диск
3) зайти в созданную вм на примонтированный диск в дирректорию с вашими старыми ключами и добавить новый созданный ключ в разрешенные хосты
4) отмонтировать диск от созданной ВМ
5) примонтировать дск обратно на старую ВМ

disasstor
Автор

Уже давно использую доступ к порту ssh только со своего ip и вот если вдруг ip изменится, будет очень неприятно 😅
В качестве подстраховки надо будет настроить, однажды может пригодится
Полезная инфа! Спасибо! 👍👍👍

NESTOWL
Автор

Потрясающе красивая картинка в 200 fps 😊

ДенисПлахотя
Автор

Еще можно повесить двухфакторку и otp пароли на вход по ssh. Вроде даже на том же хабре была статья (если ничего не путаю), там человек поднимал вопрос, что вход сертификатам это круто, но у тебя получается типа мастер-ключ (твой закрытый ключ) и тебе надо следить, где ты оставил открытый ключ, подчищать за собой и тп, двухфакторка позволяет избавиться от этого

dmitrykuksenok
Автор

Не потолстел, а съел Питона =)
С нетерпением ждем новое видео! А лучше выпускать хотя бы каждую неделю ) У вас хорошо получается донести информацию

null_day
Автор

За грамотное склонение числительных - отдельный респект! ))

sandrzei
Автор

Алексей, спасибо за информацию!!! Очень актуально и полезно!!! Красавчик.

ЯрославМизгирев-рр