Мы — долго запрягаем, быстро ездим, и сильно тормозим.
|
|||||||||||||||
www.lissyara.su
—> статьи
—> FreeBSD
|
|
Вот две программки, которые мне удалось найти. Не знаю почему, но я рещил установить вторую. ;). В состав порта knock входят две программы:
-   сервер (knockd)
-   клиент (knock)
Поэтому я сначала опишу настройку сервера, а потом клиента.
Настройка knockd сервера.
|
Конфигурируем порт.
|
Собираем и устанавливаем knockd.
|
В данном случае я устанавливаю только сервер.
Теперь нужно скопировать файл конфигурации и немного его отредактировать.
|
knockd.conf:
|
Теперь о том, какие команды я выполняю. У меня в pf.conf прописано следующее:
|
Команда, прописанная в start_cmd или command, для секции [open_метка_], добавляет в таблицу good_hosts ip адрес компьютера которому можно соединяться по
ssh.
Для ipfw правила пишутся еще легче, например так:
|
Теперь запустим демон:
|
Осталось только установить knock клиент на другой машине и протестировать его.
Настройка клиента.
Вторая машина так же находиться под управлением FreeBSD, так что опять же ставим из портов:
|
|
Настраивать клиент не нужно. Нужно только запомнить или записать последовательность портов к которым нужно
обратиться. Наша последовательность такая: 15537:udp,16345:tcp,31337:udp. Ну что же попробуем подключиться:
|
В первый раз у меня соединение не прошло. А вот после того, как я "постучался" на сервер, специально для меня
открылся 22 порт. Посмотрим логи сервера:
|
Теперь можно не боятся, что к Вашему серверу подберут пароль.
размещено: 2006-11-08,
последнее обновление: 2006-11-08,
автор: fr33man
Oxyd, 2006-11-09 в 13:10:51
Ух-ты!!! Грамотная штука, этот port-knocking надо-бы попробовать для OS/2 такое тоже реализовать.
_=KibiZoid=_, 2006-11-13 в 18:07:23
а как быть с виндовым клиентом?
fr33man, 2006-11-13 в 20:15:25
http://www.zeroflux.org/proj/knock/files/knock-cygwin.zip
Тут виндовой клиент.
так же, если вы используете только tcp порты, то можно стандартным telnet'ом подключаться.
siNTez, 2007-04-23 в 14:29:09
Попробовал - понравилось. Если это дело совместить с portsentry и еще задать какой-нибудь другой порт для SSH (например 3022), то в итоге получается достаточно мощная преграда для всякого рода кулхацкеров...
mrsaint, 2007-07-26 в 1:23:43
как заставить работать её с интерфейсом tun?
выдаёт
error: unsupported link-layer type: 0
100kg, 2007-08-26 в 1:43:29
на меня ополчился весь интернет
это все китаицы! пароль у них k перебору MAO DZEDUNG!
taras, 2008-02-05 в 15:17:20
А как заставить работать knock на двух итерфейсах?
Manefesto, 2008-04-23 в 11:51:36
Читай нижесказанное
Manefesto, 2008-04-23 в 11:52:14
"Т0варищщи! Это поля для ввода комментариев к статье, а не для вопросов. Сюда пишите найденные баги, или какие-то фичи :)
Для вопросов есть форум!"
KVIN, 2008-05-12 в 14:08:23
Knockd не поддерживает интерфейсы tun и ng, что делать :(
Гдето читал, что надо в исходниках поправить что-то. Пока не нашел. Мож кто поможет?
TheFeaR, 2008-05-15 в 16:59:10
2mrsaint, 2007-07-26 в 1:23:43, поздновато, но все-же =)
[root@kirill /disk2]#diff knockd.c my.c
215a216,218
> case 0:
> dprint("BSD Loopback detected\n");
> break;
1011c1014
<
---
>
1211a1215,1216
> } else if(lltype == 0) {
> ip = (struct ip*)((u_char*)packet + 4);
TheFeaR, 2008-05-15 в 17:06:29
пардон, не описал что это, это diff моего knockd который я заставил работать на tun. ng не проверял.
KVIN, 2008-05-19 в 10:50:34
Один многоуважаемый чел (dth) на http://forum.sysfaq.ru предложил такое решение
lltype = pcap_datalink(cap);
switch(lltype) {
case DLT_EN10MB:
dprint("ethernet interface detected\n");
break;
case DLT_LINUX_SLL:
dprint("ppp interface detected (linux \"cooked\" encapsulation)\n");
break;
case DLT_RAW:
dprint("raw interface detected, no encapsulation\n");
break;
case DLT_NULL:
dprint("tun interface detected. pppoe on freebsd\n");
break;
default:
fprintf(stderr, "error: unsupported link-layer type: %d\n", lltype);
cleanup(1);
break;
}
...........
if(lltype == DLT_EN10MB) {
#if defined(__FreeBSD__) || defined(__APPLE__)
eth = (struct ether_header*)packet;
if(ntohs(eth->ether_type) != ETHERTYPE_IP) {
return;
}
ip = (struct ip*)(packet + sizeof(struct ether_header));
} else if(lltype == DLT_LINUX_SLL) {
ip = (struct ip*)((u_char*)packet + 16);
} else if(lltype == DLT_RAW) {
ip = (struct ip*)((u_char*)packet);
} else if(lltype == DLT_NULL) {
ip = (struct ip*)((u_char*)packet + 4);
}
Жирным шрифтом указаны добавления в соответствующие места файла knockd.c
Ставил его на FreeBSD 7.0 из портов, на этапе когда шел configure (сообщения типа checking... ) нажимал Ctrl+C и заменял в папке /usr/ports/security/knock/work/src на тот, который изменял. После этого снова делал make install clean
Проверил на ng интерфейсах - работает
Аноним, 2008-09-29 в 16:23:45
А что, если еще использовать авторизацию по одноразовым паролям через opie, то вполне себе решение, чтобы не таскать с собой постоянно ssh-ключики.
Serg, 2008-10-01 в 0:26:38
еще один виндовый клиент - http://tip-top-sms.ru/winknock.rar
Под винду и под винмобайл
zed, 2009-01-20 в 14:37:57
Вот так
table <idutnafig> persist
block in quick from <idutnafig>
pass in on $ext_if proto tcp to $ext_ip \
port 22 flags S/SA keep state \
(max-src-conn 100, max-src-conn-rate 5/30, overload <idutnafig> flush)
>> pf.conf
проще. Но задумка - рулез =)
Мфынф, 2010-11-01 в 21:10:39
Тупая хирня.
Меняйте порт на ССХ и не трахайте себе мозх.
dushkosoft, 2011-11-18 в 14:45:39
to Мфынф,
А так же ш сложно просканить твой поменяный порт ссх))) и трахать мозг перебором на тот порт))
Нужная штука, как писал лисяра - параноя это не плохо))
endo, 2012-03-03 в 1:15:12
Вот же люди, зачем такие сложности. Действительно паранойя.
Использую fail2ban, 3 неверных попытки логина: IP в deny через ipfw на 24 часа. Этим же ipfw смотрю и pop3,imap: долбятся на порт - IP в бан.
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
Комментарии пользователей [19 шт.]