Автор Тема: SSH Сървър - Защита против bruteforce/dict атаки  (Прочетена 7405 пъти)

staco

  • Напреднали
  • *****
  • Публикации: 72
  • Distribution: Ubuntu, Debian
  • Window Manager: Gnome
    • Профил
Здравейте  :)

Попаднах на тази стара статийка: http://www.linux-bg.org/cgi-bin/y/index.pl?page=article&key=385185851&list=all&id=advices
.. и реших да направя това, което е написано в нея, тъй като сметнах, че ще е от полза.

НО :) излизат разни грешки. Някой би ли могъл да помогне за оправянето им, или написването на алтернативна защита ?

Ето и какво правя:
Код:
$ sudo su
# iptables -L
** Output:
Цитат
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain SSH (0 references)
target     prot opt source               destination 
Код:
# gedit /etc/rc.d/rc.firewall
** PASTE-вам:
Цитат
#!/bin/sh
iptables -N SSH
 iptables -A INPUT -p tcp --dport 22 --syn -j SSH
 iptables -A SSH -p tcp -s 127.0.0.1 -j RETURN
  iptables -A SSH -p tcp --syn --dport 22 -m recent --name
bad_ssh --update --seconds 60 -j DROP
  iptables -A SSH -p tcp --syn --dport 22 -m recent --name
bad_ssh --set -j RETURN
** Сейфам
Код:
# chmod 755 /etc/rc.d/rc.firewall
# /etc/rc.d/rc.firewall restart
** Output:
Цитат
iptables: Chain already exists.
iptables v1.4.4: option `--name' requires an argument
Try `iptables -h' or 'iptables --help' for more information.
/etc/rc.d/rc.firewall: 7: bad_ssh: not found
iptables v1.4.4: option `--name' requires an argument
Try `iptables -h' or 'iptables --help' for more information.
/etc/rc.d/rc.firewall: 9: bad_ssh: not found
Код:
# iptables -L
** Output:
Цитат
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
SSH        tcp  --  anywhere             anywhere            tcp dpt:ssh flags:FIN,SYN,RST,ACK/SYN

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain SSH (1 references)
target     prot opt source               destination         
RETURN     tcp  --  localhost            anywhere

За
Цитат
iptables: Chain already exists.

Не съм сигурен дали преди излизаше, защото бях изпълнил това, което писах сега преди час-два, но след това FLUSH-нах iptables (iptables -F). За да напиша какъв е проблема, изпълних стъпките отново (т.е. сега) и не си спомням съвсем точно.

Благодаря предварително на отзовалите се  ;)

ПС: Дистрото е Убунту 9.10
Олеле сега виждам, че две от линиите били пренесени на нов ред  ??? ??? Оправих ги ! Но продължава да излиза
Цитат
iptables: Chain already exists.
дори след iptables -F

Какво се прави в този случай ?

Ето кода на /etc/rc.d/rc.firewall
Код
GeSHi (Bash):
  1. #!/bin/sh
  2. iptables -N SSH
  3. iptables -A INPUT -p tcp --dport 22 --syn -j SSH
  4. iptables -A SSH -p tcp -s 127.0.0.1 -j RETURN
  5.  iptables -A SSH -p tcp --syn --dport 22 -m recent --name bad_ssh --update --seconds 60 -j DROP
  6.  iptables -A SSH -p tcp --syn --dport 22 -m recent --name bad_ssh --set -j RETURN

« Последна редакция: Jan 31, 2010, 22:46 от staco »
Активен

shoshon

  • Гост
Таблиците (nat,filter,mangle) също се flush-ват ( -t xxx -F ), но не ме питай защо е така.
Активен

staco

  • Напреднали
  • *****
  • Публикации: 72
  • Distribution: Ubuntu, Debian
  • Window Manager: Gnome
    • Профил
Таблиците (nat,filter,mangle) също се flush-ват ( -t xxx -F ), но не ме питай защо е така.

Flush-нах ги, но пак излиза същото съобщение  ???

Код:
$ sudo iptables -F
$ sudo iptables -t mangle -F
$ sudo iptables -t nat -F
$ sudo iptables -t filter -F
$ sudo /etc/rc.d/rc.firewall restart
iptables: Chain already exists.
Активен

Warstomp

  • Напреднали
  • *****
  • Публикации: 344
  • Distribution: Debian, Ubuntu
    • Профил
Код:
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD

Едно от нещата които ще имат най-голям резултат е да си смениш порта да не е default 22.
В статията не го пише.
Активен

mbb

  • Напреднали
  • *****
  • Публикации: 28
    • Профил
Преди всичко гледай внимателно, какво ти пише:

iptables: Chain already exists.
iptables v1.4.4: option `--name' requires an argument
Try `iptables -h' or 'iptables --help' for more information.
/etc/rc.d/rc.firewall: 7: bad_ssh: not found
iptables v1.4.4: option `--name' requires an argument
Try `iptables -h' or 'iptables --help' for more information.
/etc/rc.d/rc.firewall: 9: bad_ssh: not found


/etc/rc.d/rc.firewall: 7: bad_ssh: not found
на 7 ред има недефинирана верига  bad_ssh.

Първо трябва да съзадеш такава и опитай отново.
Активен

ivanatora

  • Напреднали
  • *****
  • Публикации: 658
  • Distribution: Ubuntu 10.04
  • Window Manager: Fluxbox
    • Профил
    • WWW
Освен това въпросния 7-ми ред е пренесен неправилно на нов ред, а всъщност е част от горния. За това шела се оплаква че bad_ssh е невалидна команда.
Активен

Acho

  • Напреднали
  • *****
  • Публикации: 5256
  • Distribution: Slackware, MikroTik - сървърно
  • Window Manager: console only
    • Профил
    • WWW
Съгласен съм със Стефан напълно. И аз винаги, веднага след като инсталирам системата, сменям порта на SSH2. Избрал съм си да е 2292. Но навремето това беше продиктувано от друго. Имаше един варненски доставчик, който филтрираше 22 порт (така и не ми обясниха свястно защо). И даже тогава ги питахме риторично "Абе Вие АДЖЕБА, INTERNET ли продавате, или нещо орязано ?" Та от него време си заплюх един ВИСОК порт и с него си бачкам вече доста годинки.
« Последна редакция: Feb 01, 2010, 11:34 от Acho »
Активен

CPU - Intel Quad-Core Q8400, 2.66 GHz; Fan - Intel Box; MB - Intel G41M-T2; RAM - DDR2-800, Kingston HyperX, 2X2048 MB; VC - onboard, Intel G41 Express Chipset; HDD - Toshiba, 500 GB, SATAII; SB - Realtek HD Audio; DVD-RW - TSSTcorp DVD-RW; LAN - Realtek PCI-E GBE Controller; PSU - Fortron 350 Watt.

edmon

  • Гост
Да смениш порт на услуга е мярка за сигурност, колкото да смениш 80 порт за ХТТП като мярка за бързодействие! :)))
Активен

foxb

  • Напреднали
  • *****
  • Публикации: 175
    • Профил
    • WWW
Аз съм за смяна на порта...

Повечето script kiddies няма да си играят да ти сканират машината а само ще пробват порта.

Acho

  • Напреднали
  • *****
  • Публикации: 5256
  • Distribution: Slackware, MikroTik - сървърно
  • Window Manager: console only
    • Профил
    • WWW
@Edmon, нищо лично колега, не е заяждане със СТАРШИ във форума, ама като ти чета постингите, повечето са все със присмех. Вместо да са градивни. То е ясно ЧЕ САМО ТОВА действие няма да те ПРЕДПАЗИ, но ще намали риска. А и аз обясних ЗАЩО НАВРЕМЕТО - 2002 г. съм сменил с ВИСОК порт.
« Последна редакция: Feb 01, 2010, 14:52 от Acho »
Активен

CPU - Intel Quad-Core Q8400, 2.66 GHz; Fan - Intel Box; MB - Intel G41M-T2; RAM - DDR2-800, Kingston HyperX, 2X2048 MB; VC - onboard, Intel G41 Express Chipset; HDD - Toshiba, 500 GB, SATAII; SB - Realtek HD Audio; DVD-RW - TSSTcorp DVD-RW; LAN - Realtek PCI-E GBE Controller; PSU - Fortron 350 Watt.

Warstomp

  • Напреднали
  • *****
  • Публикации: 344
  • Distribution: Debian, Ubuntu
    • Профил
Re: SSH Сървър - Защита против bruteforce/dict атаки
« Отговор #10 -: Feb 01, 2010, 14:52 »
Да смениш порт на услуга е мярка за сигурност, колкото да смениш 80 порт за ХТТП като мярка за бързодействие! :)))
Естествено че е мярка за сигурност. Някога разглеждаш ли си лог файла на firewall-а?
Активен

staco

  • Напреднали
  • *****
  • Публикации: 72
  • Distribution: Ubuntu, Debian
  • Window Manager: Gnome
    • Профил
Re: SSH Сървър - Защита против bruteforce/dict атаки
« Отговор #11 -: Feb 01, 2010, 15:29 »
Още в началото си мислих да го сменя, но реших да го оставя поне временно, но днеска като гледам лога има 3-4 адреса, от които са се опитали да влязат  ;D бързаци ей  :D

Сменен е вече.  ;)
Само че проблема с "chain already exists" си остава.
Изпълних всички команди, които сте ми написали, ама продължава да излиза.

Въпреки това след рестарт на rc.firewall и гореописаното съобщение, вижте какво излиза при iptables -L
Цитат
$ sudo /etc/rc.d/rc.firewall restart
$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
SSH        tcp  --  anywhere             anywhere            tcp dpt:ПОРТА flags:FIN,SYN,RST,ACK/SYN

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain SSH (1 references)
target     prot opt source               destination         
RETURN     tcp  --  localhost            anywhere           
DROP       tcp  --  anywhere             anywhere            tcp dpt:ПОРТА flags:FIN,SYN,RST,ACK/SYN recent: UPDATE seconds: 60 name: bad_ssh side: source
RETURN     tcp  --  anywhere             anywhere            tcp dpt:ПОРТА flags:FIN,SYN,RST,ACK/SYN recent: SET name: bad_ssh side: source

Обаче не работи както е описано в статията.
Пробвах отново да се логна с грешни пароли докато не прекъсна връзката за втори път. Нямаше никакво блокиране от 60 секунди  ??? Влязох си след това без проблеми  ???

ПС: Пробвах от localhost, понеже лаптопа не е в момента у нас
« Последна редакция: Feb 01, 2010, 15:35 от staco »
Активен

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Re: SSH Сървър - Защита против bruteforce/dict атаки
« Отговор #12 -: Feb 01, 2010, 16:17 »
Обаче не работи както е описано в статията.
Пробвах отново да се логна с грешни пароли докато не прекъсна връзката за втори път. Нямаше никакво блокиране от 60 секунди  ??? Влязох си след това без проблеми  ???

ПС: Пробвах от localhost, понеже лаптопа не е в момента у нас

Код
GeSHi (Bash):
  1. iptables -A SSH -p tcp -s 127.0.0.1 -j RETURN
...
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

staco

  • Напреднали
  • *****
  • Публикации: 72
  • Distribution: Ubuntu, Debian
  • Window Manager: Gnome
    • Профил
Re: SSH Сървър - Защита против bruteforce/dict атаки
« Отговор #13 -: Feb 01, 2010, 16:37 »
Обаче не работи както е описано в статията.
Пробвах отново да се логна с грешни пароли докато не прекъсна връзката за втори път. Нямаше никакво блокиране от 60 секунди  ??? Влязох си след това без проблеми  ???

ПС: Пробвах от localhost, понеже лаптопа не е в момента у нас

Код
GeSHi (Bash):
  1. iptables -A SSH -p tcp -s 127.0.0.1 -j RETURN
...

Оф, че съм заплес  :o
Пробвах сега през ip-то на компютъра (192.168.Х.ХХ), всичко е шест  :D

Само не ми е ясно, защо продължава да излиза съобщението "chain already exists", дори след флушването ???
« Последна редакция: Feb 01, 2010, 16:39 от staco »
Активен

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
Re: SSH Сървър - Защита против bruteforce/dict атаки
« Отговор #14 -: Feb 01, 2010, 16:44 »
Защото -F изтрива правилата, но не и веригите. Трябва ти и -X

Код
GeSHi (Bash):
  1. for TABLE in filter nat mangle; do
  2.    iptables -F -t $TABLE
  3.    iptables -X -t $TABLE
  4. done
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P