Как обхитрить хакера с помощью knockd

Как известно, любой открытый порт представляет потенциальную угрозу безопасности. Чем меньше открытых портов тем лучше. Но что делать, когда отказаться от некоторых сервисов нет никакой возможности, а повысить безопасность системы все же необходимо? Тут на сцене появляется программа knockd, позволяющая позакрывать вообще все порты, сохранив при этом возможность работы со всеми популярными службами: SSH, FTP, HTTP и т.д.

Идея knockd проста и гениальна. Например, юзер желает установить связь с другим компьютером через SSH. Для этого на удаленной машине должен быть постоянно открыт порт 22. Knockd позволяет с помощью iptables закрыть 22й порт от внешнего мира и открыть в нужный момент только нужному IP. Как knockd узнает когда открыть порт и кому конкретно предоставить доступ?

В переводе с английского to knock — стучать. Чтобы knockd узнал «хозяина» и открыл нужный порт нужно «постучать» в заранее оговоренные порты в заранее оговоренной последовательности. Нижеприведенный пример конфигурации хорошо иллюстрирует открытие и закрытие SSH:

[options]
        logfile = /var/log/knockd.log
[openSSH]
        sequence    = 700,800,900
        seq_timeout = 5
        command     = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
        tcpflags    = syn
[closeSSH]
        sequence    = 900,800,700
        seq_timeout = 5
        command     = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
        tcpflags    = syn

Если юзер попытается открыть на удаленной машине сначала порт 700, потом 800, а затем 900, то knockd создаст для фаервола новое правило, открывающее 22й порт для IP «постучавшего». Как видим, ничего сложного и все очень эффективно. После работы юзер должен закрыть обратно 22й порт, «постучав» в обратном порядке: 900, 800, 700.

Теперь о том как «постучать». Разумеется, вручную открывать какие-либо порты не требуется. Для удобства юзера существует команда knock. Пример:

knock 127.0.0.1 700 800 900

В качестве первого аргумента указывается адрес сервера с knockd, все остальные аргументы представляют собой номера портов, в которые нужно «постучаться».

Дополнительную информацию можно узнать на официальном сайте проекта.

Ваша оценка: Нет Средняя оценка: 5 (7 votes)
Беляев_Николай

супер! я восхищён

Ваша оценка: Нет

Ого... Ну, как говорится, всё гениальное... Авторам реальный респект)))

Ваша оценка: Нет
pomodor

Прекраснейшая задумка, но, увы, бесполезная. Доступ к SSH можно перенести на другой порт и разрешить логин только по ключу, отключив парольный доступ. И все, такое сможет пробить только самый злобный каккер, да и то не всегда.

А вот SMTP, IMAP и т.п. очень нуждаются в дополнительной защите, но knockd по понятным причинам с ними работать не будет.

Ваша оценка: Нет
Отправить комментарий
КАПЧА
Вы человек? Подсказка: зарегистрируйтесь, чтобы этот вопрос больше никогда не возникал. Кстати, анонимные ссылки запрещены.
CAPTCHA на основе изображений
Enter the characters shown in the image.
Яндекс.Метрика