Скрыть SSH за порт-нокингом
Открытый порт SSH собирает попытки входа со всего интернета. Порт-нокинг держит порт закрытым, пока вы не докажете, что знаете секрет, — затем открывает его только для вашего адреса и всего на несколько секунд.
С knockd и nftables
По умолчанию отклоняйте SSH и принимайте его только с адресов из набора с тайм-аутом. knockd добавляет стучащийся адрес в этот набор; nftables удаляет его по истечении тайм-аута, а уже установленное SSH-соединение продолжает работать.
table inet filter {
set knocked4 {
type ipv4_addr
flags timeout
}
chain input {
type filter hook input priority 0; policy drop;
ct state established,related accept
iif "lo" accept
tcp dport 22 ip saddr @knocked4 accept
}
} Раздел knockd, который заполняет набор:
[openSSH]
sequence = 7311:tcp,8822:tcp,9133:udp
seq_timeout = 10
tcpflags = syn
start_command = /usr/sbin/nft add element inet filter knocked4 { %IP% timeout 30s } Отделите постоянный доступ
Если вы также постоянно разрешаете доступ с некоторых адресов, храните их в отдельном наборе без тайм-аута. Добавление адреса, уже находящегося в наборе с тайм-аутом, не сбрасывает его тайм-аут, поэтому смешивание обоих типов записей в одном наборе может лишить вас доступа по истечении таймера.
Или используйте fwknop
SPA fwknop надёжнее последовательности: это один зашифрованный и аутентифицированный пакет, который нельзя воспроизвести повторно. См. руководство по fwknop.
С iPhone к SSH
- 1Удерживайте латунный дверной молоток. Secret Knock проверяет, что порт 22 отвечает, и показывает, как долго он остаётся открытым.
- 2«Открыть SSH» открывает ваше SSH-приложение со ссылкой ssh:// для сервера.
- 3«Держать дверь открытой, пока отображается её экран» автоматически повторяет стук незадолго до окончания окна доступа, пока дверь отображается на экране.
Все примеры на GitHub → Все конфигурации с этой страницы, готовые к копированию: github.com/mobilcomm/secretknock-examples (общественное достояние).
Вопросы
Это замена ключам SSH?
Нет. Порт-нокинг скрывает службу; также используйте надёжные ключи SSH и отключите вход по паролю.