1.1, pavlinux (ok), 15:27, 19/01/2010 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Допиши самое главное - port < open_port < close_port
Хотя не... от обратного сканирования не спасёт.
Лучше так:
close_port
port
close_port
open_port
т. е. при линейном сканировании слева или справа, наш порт всегда будет закрыт.
порт закрытия, на 10011 порт
ssh на 10022
порт закрытия на 10033
открыть на любой
И ещё бы таймаут на ожидание соединения, между telnet host.org open_port и ssh host.org
| |
|
|
3.5, Дмитрий (??), 18:08, 19/01/2010 [^] [^^] [^^^] [ответить]
| +/– |
Там запоминается IP, если я сижу с IP 1.1.1.1 а скан идёт с 2.2.2.2 то 2.2.2.2 просто откроет/закроет себе порт.
Кстати: Безопасность - это комплексное решение (С)Мой друг.
Port-knoking не панацея, но избавиться от ботовбрутфорсеров реально помогает. А за iptables находится ssh там где авторизация по ключам и т.д.
Анализ логов, также никто не отменял, и если в логах обнаружится брутфорс, то как минимум можно сменить порты.
P.S>
Не считайте, что эта технология на 100% защищает Ваш порт от стороннего проникновения.
| |
|
|
1.2, Дмитрий (??), 16:35, 19/01/2010 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Прикольно, это мой блог :) я там всякую фигню пишу... :):):)
Ну раз тут есть, то скажу ещё пару слов :)
Во первых, идея не совсем моя, я её чуть чуть переделал. В блоге авторство указано.
Считывая файл cat /proc/net/ipt_recent/SSH (SSH в данном случае - имя цепочки) можно просматривать кто имеет доступ, или не закрыл его за собой. Естественно вся информация до перезагрузки.
| |
|
2.7, reminux (?), 16:44, 21/01/2010 [^] [^^] [^^^] [ответить]
| +/– |
Спасибо за идею.
Изначально почерпнул ее из твоего блога, потом сходил на сайт разработчика и дополнительно почерпнул кое-что оттуда. :)
Мне кажется, что лучше и проще делать так:
-A INPUT -p tcp --dport 3333 -m recent --rcheck --seconds 30 --name SSH -j ACCEPT
-A INPUT -p tcp --dport 64444 -m recent --set --name SSH -j REJECT --reject-with tcp-reset
здесь SSH-демон слушает на порту 3333/tcp, а порт 64444/tcp используется для "открывания двери".
дверь открывается только на 30 сек. если в течение этого времени подключение не произойдет, она закроется. поэтому можно не беспокоиться о том, что нужно закрыть ее после себя.
при таком сильном разнесении портов и таком таймауте вероятность попадания "врага" в "порт открывания двери", а затем в порт ssh-демона почти нулевая.
-j REJECT --reject-with tcp-reset нужно для того, чтобы удобнее было "стукаться" в "порт открывания двери, например, telnet-клиентом (не будет висеть, сразу выйдет).
P.S. минус всего этого дела в том, что не изо всяких мест могут быть доступны порты 3333/tcp и 64444/tcp.
| |
|
3.9, pavlinux (ok), 01:15, 22/01/2010 [^] [^^] [^^^] [ответить]
| +/– |
Я придумал круче
#!/bin/bush
name() {
local l=$1
[ "$l" == "" ] && l=20
tr -dc "A-Za-z0-9_.,:-" < /dev/urandom | head -c ${l} | xargs
}
TABLE='name';
iptables -N "$TABLE";
iptables -A INPUT -p tcp --dport $(( 1025 + ( $RANDOM % (65534-1025)))) -m recent --rcheck --seconds $((( 10 + $RANDOM ) % 180)) --name "$TABLE" -j ACCEPT;
iptables -A INPUT -p tcp --dport $(( 1025 + ( $RANDOM % (65534-1025)))) -m recent --set --name "$TABLE" -j REJECT --reject-with tcp-reset;
iptables -L -n | gpg -ae -r sEcREtUSer@c00lADmiN.рф | mail -s "Penis Enlager" sEcREtUSer@c00lADmiN.рф
#/*-----*/
# iptables -L
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:23377 recent: CHECK seconds: 86 name: u0MPqLRJvborre.FNgye side: source
REJECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:1742 recent: SET name: u0MPqLRJvborre.FNgye side: source reject-with tcp-reset
Chain u0MPqLRJvborre.FNgye (0 references)
target prot opt source destination
:)
> минус всего этого дела в том, что не изо всяких мест
> могут быть доступны порты 3333/tcp и 64444/tcp.
например?
| |
|
4.10, reminux (?), 13:14, 23/01/2010 [^] [^^] [^^^] [ответить]
| +/– |
>> минус всего этого дела в том, что не изо всяких мест
>> могут быть доступны порты 3333/tcp и 64444/tcp.
>
>например?
существует масса сетей (от сетей мелких районных провайдеров до корпоративных сетей), в которых наружу закрыто все, кроме нескольких самых популярных портов вроде 80/tcp, 110/tcp, 5190/tcp и некоторых других. из таких мест в свою хитрую дверь не попадешь.
| |
|
|
|
1.11, Michael Shigorin (ok), 15:34, 24/01/2010 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Занятно, но если не бояться насчёт возможности установления фактов соединений с секретными портами -- то заметно проще, заодно эффективней от сканов отодвинуть ssh на левый порт. А если бояться, то лучше даже не port knocking в классическом виде (например, http://zeroflux.org/knock умеет и последовательности tcp/udp-портов), а реализации SPA (single packet auth -- авторизация по одному криптопакету).
| |
|