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

Мой курс «Хардкорная веб-разработка» — Книжный клуб Ботаним!, где мы читаем хорошие ИТ-книги: Telegram — 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 Копирование публичного ключа: cat ~/.ssh/ | pbcopy Редактирование настроек 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 Редактирование его настроек: sudo vim /etc/  Настройки: [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 : for x in 7000 8000 9000; do nmap -Pn --max-retries 0 -p $x ; 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 года и на этом канале делюсь своим опытом. Я основатель и руководитель компаний: — Диджитализируй , разрабатываем сложные IT системы для бизнеса; — Salesbeat , комплексный модуль доставки для интернет магазинов. Telegram канал — ВК — RuTube — Дзен —
Back to Top