The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"ipfw+freebsd+хулиганы+отсутствие админа"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Информационная безопасность (BSD ipfw, ipf, ip-filter)
Изначальное сообщение [ Отслеживать ]

"ipfw+freebsd+хулиганы+отсутствие админа"  +/
Сообщение от Андрей (??) on 24-Июн-12, 20:26 
Доброго дня!
Имеется 8.0 FreeBSD на сервере.
Апач+Php+MySQL
Имеется админ который не очень админ, и я который когда-то админил (во времена 3-й фряхи) но давно этим не занимаюсь.
Суть - второй день сервак уходит в DoS.
Разобрался как: сначала каким-то сканером доводят ipfw до состояния:
Limiting open port RST response from 359 to 200 packets/sec
Это сыпится со страшной силой, цифра и по 600+ первая бывает, и так далее.
Потом происходит Approaching the limit on PV entries, consider increasing either the vm.pmap.shpgperproc or the vm.pmap.pv_entry_max sysctl.
Это я так понимаю апачу долбят.
Потом происходит swap zone exhausted, increase kern.maxswzone в перемешку с  Limiting open port RST response from и еще энное количество времени машина держится и умирает.
На все про-все уходит у них: в 13:17 начали в 13:44 закончили.

Ребутим машинку. Они через некоторое время опять это делают. И так третий день начался уже. Админа нет, он в отпуске да и по фрям он никак.

Как спастись? (нового админа не предлагать, не решает в данный момент), сам что надо могу поставить-настроить не вопрос. Только скажите что ставить и что где прописать/изменить.
Вот скрипт написанный админом по ipfw, убрал естественно адреса реальные )

ipfw="/sbin/ipfw -q"
${ipfw} -f flush

${ipfw} add 4 deny icmp from any to any in icmptype 5,9,13,14,15,16,17
${ipfw} add 5 allow ip from 127.0.0.0/8 to 127.0.0.0/8 via lo0

${ipfw} add 6 allow icmp from any to me
${ipfw} add 6 allow icmp from me to any

${ipfw} add 7 allow esp from x.x.x.x to me
${ipfw} add 7 allow esp from me to x.x.x.x

${ipfw} add 8 allow esp from y.y.y.y to me
${ipfw} add 8 allow esp from me to y.y.y.y

${ipfw} add 10 allow all from "table(10)" to me
${ipfw} add 10 allow all from me to "table(10)"

${ipfw} add 100 check-state

${ipfw} add 150 allow tcp from y.y.y.y to me 873 keep-state #rsync backup

${ipfw} add 200 allow tcp from any to me 2222 keep-state
${ipfw} add 210 allow tcp from any to me 80 keep-state
${ipfw} add 220 allow tcp from any to me 443 keep-state
${ipfw} add 230 allow tcp from any to me 999 keep-state
${ipfw} add 240 allow all from me to any keep-state

${ipfw} add 65534 deny log logamount 100 all from any to any
${ipfw} table 10 add w.w.w.w
${ipfw} table 10 add x.x.x.x
${ipfw} table 10 add y.y.y.y
${ipfw} table 10 add z.z.z.z

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "ipfw+freebsd+хулиганы+отсутствие админа"  +/
Сообщение от wiseman (ok) on 24-Июн-12, 23:08 
Андрей, боюсь, что безвозмездно вам врядли кто-то поможет. А если и поможет, то рекомендации будут слишком общими и очень далекими от пошаговых инструкций где и что нужно подкркутить

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "ipfw+freebsd+хулиганы+отсутствие админа"  +/
Сообщение от Андрей (??) on 24-Июн-12, 23:09 
> Андрей, боюсь, что безвозмездно вам врядли кто-то поможет. А если и поможет,
> то рекомендации будут слишком общими и очень далекими от пошаговых инструкций
> где и что нужно подкркутить

Понятно. Прошли старые добрые времена значит )
Ну ладно, разберемся сами, по крайней мере сервер я уже взял под контроль.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

2. "ipfw+freebsd+хулиганы+отсутствие админа"  +/
Сообщение от Андрей (??) on 24-Июн-12, 23:08 
Поразбирался с rc.conf - оказывается эти правила не работают, думаю что и админ об этом не знает (
А работают совсем другие созданные кем-то ранее, и они вот такие:


ipfw flush

ipfw add 5 allow ip from any to any via lo0
ipfw add 6 allow ip from me to me dst-port 25
ipfw add 7 deny ip from any to me dst-port 25

ipfw add 100 allow udp from x.x.x.x to me
ipfw add 150 allow udp from me to x.x.x.x
ipfw add 200 allow esp from x.x.x.x to me
ipfw add 250 allow esp from me to x.x.x.x
ipfw add 300 allow tcp from x.x.x.x to me
ipfw add 350 allow tcp from me to x.x.x.x

ipfw add 400 allow tcp from x.x.x.x to me dst-port 3306
ipfw add 410 deny tcp from any to me dst-port 3306

ipfw add 500 allow tcp from y.y.y.y to me dst-port 873

ipfw add 1000 allow tcp from any to me dst-port 80
ipfw add 1100 allow tcp from any to me dst-port 443
ipfw add 1200 allow tcp from me to any
ipfw add 1300 allow ip from me to any
ipfw add 1400 allow udp from me to any
ipfw add 1500 allow ip from any to me established

ipfw add 60000 allow ip from any to any
ipfw add 65532 deny ip from 192.168.0.0/20 to any
ipfw add 65533 deny log logamount 100 ip from any to any
ipfw add 65535 deny ip from any to any


Вот 60000 правило вообще не понял, мне кажется какой-то бред

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "ipfw+freebsd+хулиганы+отсутствие админа"  +/
Сообщение от YuriStep on 24-Июн-12, 23:50 
есть предложение сделать проще - выложите сюда вывод :
sysctl -a net.inet.ip.fw.one_pass
ipfw -a show
... и не будем гадать, те или "не те" правила вы нашли ;)
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

5. "ipfw+freebsd+хулиганы+отсутствие админа"  +/
Сообщение от Андрей (??) on 25-Июн-12, 06:34 
> есть предложение сделать проще - выложите сюда вывод :
> sysctl -a net.inet.ip.fw.one_pass
> ipfw -a show
> ... и не будем гадать, те или "не те" правила вы нашли
> ;)

Именно так я и выяснил что не работают одни правила а работают другие )
В общем теперь работает верхний набор, что в первом сообщении.

От хацкеров защитился временно так:
#бан он хацкеров
${ipfw} add 1 deny all from адрес_pppoe_хакеров to me
${ipfw} add 2 deny all from подесть_pppoe_провайдера_хацкеров to me
${ipfw} add 3 allow tcp from any to мой_внейшний_ip_сервера dst-port 80 in via igb0 setup limit src-addr 50
#end of ban

Как я понял таки атака была не через скан портов, так как всякие там blackhole=2 и т.д. были прописаны, а тупо через Apache, дикая куча коннектов с одного IP на сервер, апач множится до бесконечности и выжирает все что можно.

Значит буду читать что и как в Apache надо настроить, ну и как я понял надо поставить на сервер PortSentry и Snort.
Пока так продержитмся, а как переедем на амазон под nginx+php-fpm - буду дальше читать что и как. Всем спасибо.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру