TGViewer
NetworkAdmin.ru NetworkAdmin.ru @networkadminru · 4.7K subscribers
Post #380 2.6K
🐶 Методы скрытия открытых портов на сервере

1️⃣ Использование Port Knocking. Это механизм, при котором порт остаётся закрытым до тех пор, пока клиент не отправит правильную последовательность пакетов.

🔧 Как настроить (пример для iptables):


iptables -A INPUT -p tcp --dport 22 -j DROP
iptables -A INPUT -p udp --dport 22 -j DROP
iptables -A INPUT -m recent --rcheck --seconds 60 --name KNOCKED -j ACCEPT
iptables -A INPUT -p tcp --dport 2222 -m recent --set --name KNOCKED -j DROP


🔹 Сначала сервер блокирует порт 22 (SSH).
🔹 Если кто-то стучится в порт 2222, ему временно разрешается доступ к 22-му.
🔹 Без правильного "стука" SSH остаётся невидимым.

Автоматизировать можно с помощью knockd или fwknop.

2️⃣ Маскировка открытых портов (TARPIT, REJECT). Чтобы сбить с толку сканеры, можно замедлить или исказить их работу:

Используем iptables TARPIT (затягивает соединение):


iptables -A INPUT -p tcp --dport 23 -j TARPIT


Теперь порт 23 (Telnet) будет притормаживать атакующих, вместо того чтобы сразу отклонять соединение.

Или можно возвращать ложный REJECT:


iptables -A INPUT -p tcp --dport 22 -j REJECT --reject-with tcp-reset


Вместо стандартного "порта нет", сервер отправит "порт есть, но сбрасывает соединение", что может запутать.

3️⃣ Использование iptables для блокировки сканеров. Если ваш сервер замечает подозрительную активность (сканирование портов, частые подключения), можно автоматически блокировать IP.

Простой бан подозрительных сканеров:


iptables -A INPUT -m recent --rcheck --seconds 60 --name PORTSCAN -j DROP
iptables -A INPUT -p tcp --syn -m recent --set --name PORTSCAN -j DROP


🔹 Если IP подключается слишком часто - он автоматически блокируется на 60 секунд.
🔹 Можно адаптировать под другие сервисы (например, SSH).

5️⃣ Размещение сервисов за реверс-прокси (Cloudflare, Nginx, HAProxy). Если сервис не должен быть доступен напрямую, можно скрыть его за прокси-сервером.

🔧 Настройка Nginx как реверс-прокси для скрытия SSH:


server {
listen 443 ssl;
server_name myserver.com;

location /ssh {
proxy_pass http://127.0.0.1:2222;
}
}


Теперь SSH-доступ будет идти через HTTPS (порт 443), а не через стандартный 22-й.

#security

🧑‍💻 NetworkAdmin
  • 👍 16
  • ❤ 1
More from @networkadminru
  1. Oct 1, 2026✨ Systemd-команды, которые быстро дают информацию о системе У systemd есть несколько коман…
  2. Sep 30, 2026🖥 Get-ADUser: полезные примеры для работы с пользователями Active Directory Get-ADUser -…
  3. Sep 29, 2026🥱 Как быстро разобраться с дисками и маунтами Когда на сервере несколько дисков, LVM, отд…
  4. Sep 28, 2026🔎 TCP keepalive: как находить мертвые соединения до того, как они создадут проблему Иногд…
  5. Sep 25, 2026🤩 Как расшифровать код ошибки Windows через certutil При установке обновлений Windows ран…
  6. Sep 23, 2026💻 Как жестко перезагрузить linux, когда обычный reboot уже не помогает Иногда сервер зави…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →