Защита 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 —
Дзен —
3 views
157
37
1 month ago 00:22:06 1
Vless Reality - устойчивый к блокировке ВПН с маскировкой трафика. Работает даже в Китае.
2 months ago 00:37:02 1
Безопасность сервера с панелью 3x-ui. Убираем ошибку “Это соединение не защищено“. Добавляем TLS
2 years ago 00:59:59 1
Как установить и настроить Fail2ban на Linux-сервере
4 years ago 00:09:30 1
Польза Deep web, Darknet для пользователей и владельцев. Перенесите сайт, сервер.
8 years ago 00:28:58 48
5 советов по повышению безопасности вашего сервера(ssh, iptables,phpmyadmin, wordpress).
8 years ago 00:24:24 33
13. Продвинутая защита ssh с помощью iptables. Ограничение кол-ва подключений в минуту, ...