Security Teams



:::
  Ответ в темуСоздание новой темыСоздание опроса

> DoS ::::: способы защиты в BSD, предлагаем свои варианты
Boffin
Дата 28.02.2005 - 23:59
Цитировать сообщение
Offline



[> free <]
******

Профиль
Группа: -root-
Сообщений: 3569
Пользователь №: 2
Регистрация: 17.02.2005



Рейтинг:
(30%) XX---


Собственно сабж


--------------------

Caps Lock - враг человека! Иногда ваши задумчивые рассуждения превращаются в идиотские лозунги, случайно задев эту клавишу.
Голосуйте за реорганизацию клавиатурной раскладки! (с)
PMСайт пользователяICQ
Top
nmancer
Дата 1.03.2005 - 01:47
Цитировать сообщение
Offline



.:0day wrz guy:.
****

Профиль
Группа: -editors-
Сообщений: 458
Пользователь №: 42
Регистрация: 28.02.2005



Рейтинг:
(50%) XXX--


минимум:

/etc/rc.conf

# For the following option you need to have TCP_DROP_SYNFIN set in your
# kernel. Please refer to LINT and NOTES for details.
tcp_drop_synfin="YES" # Set to YES to drop TCP packets with SYN+FIN
# NOTE: this violates the TCP specification
icmp_drop_redirect="YES" # Set to YES to ignore ICMP REDIRECT packets
icmp_log_redirect="YES" # Set to YES to log ICMP REDIRECT packets
forward_sourceroute="NO" # do source routing (only if gateway_enable is s
et to "YES")
accept_sourceroute="NO" # accept source routed packets to us
icmp_bmcastecho="NO" # respond to broadcast ping packets


--------------------
...0day is a competition, so fuсk 'em all...
PM
Top
gribel
Дата 13.02.2006 - 00:05
Цитировать сообщение
Offline



Junior
*

Профиль
Группа: -users-
Сообщений: 8
Пользователь №: 2816
Регистрация: 12.02.2006



Рейтинг:
(10%) X----


Цитата (nmancer @ 1.03.2005 - 01:47)
минимум:

/etc/rc.conf

# For the following option you need to have TCP_DROP_SYNFIN set in your
# kernel. Please refer to LINT and NOTES for details.
tcp_drop_synfin="YES" # Set to YES to drop TCP packets with SYN+FIN
# NOTE: this violates the TCP specification
icmp_drop_redirect="YES" # Set to YES to ignore ICMP REDIRECT packets
icmp_log_redirect="YES" # Set to YES to log ICMP REDIRECT packets
forward_sourceroute="NO" # do source routing (only if gateway_enable is s
et to "YES")
accept_sourceroute="NO" # accept source routed packets to us
icmp_bmcastecho="NO" # respond to broadcast ping packets

немного не согласен с тобой...
я бы начинал подход к защите с выяснения версии системы, за несколько лет работы на BSD STABLE 5.2.1 выяснил пару багов этой операционки... Например:
Если целевая система будет использована в качестве роутера, то нужно переустановить как минимум natd, т.к. по умолчанию он глючный. (проверено)

а если говорить о защите в целом, то для начала создал бы правило фаерволла например ipfw (это как мне кажется наиболее удобный в этой ОС)

Краткий курс настройки фаерволла!

ee /etc/rc.firewall

добавляем
[Ww][Aa][Ll][Ll])
# для простоты написания и гибкости правил на разных машинах можно
# принять следующие сокращения
inet_ip="*.*.*.*" #внешний ip
ext_int="fxp0" #внешний интерфейс
local_ip="*.*.*.*" #внутренний ip
local_int="rl0" #внутренний интерфейс
local_int2="rl1" #внутренний интерфейс 2-ая карта
local_int3="fxp1" #внутренний интерфейс 3-ая карта

# в дальнейшем нужно будет указывать вместо fxp0 <---> ${ext_int}
# это удобно когда написано правило для фаервола, и оно дублируется на разные сервера,
#только меняются ip и названия интерфейсов если сетевушки разные

# ICMP restrict
${fwcmd} add 80 deny icmp from any to any in icmptype 5,9,13,14,15,16,17

# loopback
${fwcmd} add 90 allow all from any to any via lo0
${fwcmd} add 91 deny all from any to 127.0.0.0/8

# close MySQL from world (for calm)
# если нужно чтобы кокой-либо хост получал доступ по порту 3306
# вписываем его с номером 95.. а 96 мы закрываем все остальные коннекты
# 1.1.1.1 - адрес с которого возможно будет подключение к sql
# правил с номером 95 может быть несколько
${fwcmd} add 96 allow tcp from 1.1.1.1 to ${inet_ip} 3306 via ${ext_int} setup keep-state
${fwcmd} add 96 deny tcp from any to any 3306 via ${ext_int}

# ssh
${fwcmd} add 2600 allow tcp from any 1024-65535 to ${inet_ip} 22 in via ${ext_int} setup keep-state

#Apache
${fwcmd} add 2850 allow tcp from any to ${inet_ip} 80 via ${ext_int} setup keep-state
#а теперь разрешим пользователям внутренней сети 1 доступ к апачу на 808 порту
# при этом они должны набирать внутренний ip сервера
${fwcmd} add 2850 allow tcp from any to ${local_ip} 808 via ${local_int} setup keep-state

# ftp
#таким правилом мы разрешаем весь ftp со всех хостов
${fwcmd} add 2900 allow tcp from any to any 21 setup keep-state

#подобным образом донастраиваем firewall под свои потребности...
#и главное последним номером не забываем поставить запрет
${fwcmd} add 65534 deny all from any to any
;;
# таким образом мы блокировали остальной траффик по низшим портам

выходим из /etc/rc.firewall

теперь нас интересует /etc/rc.local
в нем должны быть строчки
firewall_enable="YES"
firewall_type=wall
king.gif
чтобы наше правило грузилось автоматически при каждой перезагрузки сервера.

P.S. Хорошо когда компьютер, который ты настраиваешь под рукой, а если он на другом конце города а ты работаешь по ssh?
Пользуйтесь cron дабы не ездить далеко и надолго... russian_roulette.gif
перед внесением существенных изменений в firewall запланируйте
ipfw -q add 01 allow ip from any to any
на минут 10 после готовящегося применения правил. если все заработало, убирайте, если нет... у Вас есть 2-ая попытка smile.gif
ведь иногда действительно время - деньги.
PMПисьмо на e-mail пользователюICQMSN
Top
Boffin
Дата 13.02.2006 - 00:16
Цитировать сообщение
Offline



[> free <]
******

Профиль
Группа: -root-
Сообщений: 3569
Пользователь №: 2
Регистрация: 17.02.2005



Рейтинг:
(30%) XX---


gribel

Нет уж, оставим.. почитать интересно самим wink.gif


--------------------

Caps Lock - враг человека! Иногда ваши задумчивые рассуждения превращаются в идиотские лозунги, случайно задев эту клавишу.
Голосуйте за реорганизацию клавиатурной раскладки! (с)
PMСайт пользователяICQ
Top
elf
Дата 13.02.2006 - 00:17
Цитировать сообщение
Offline



.:Вечный:.
****

Профиль
Группа: -root-
Сообщений: 829
Пользователь №: 37
Регистрация: 25.02.2005



Рейтинг:
(60%) XXX--


Цитата (gribel @ 12.02.2006 - 23:09)
Соррки форумчане, ошибся темкой... по ходу дела..
не судите строго...
предидущее сообщение явно не к DOS
можно смело удалять

ошибся... не судим... а вот как насчет написать статью по ентому делу... к примеру в качестве извинения за маленький оффтоп? wink.gif


--------------------
наша работа во тьме... (с) Лукьяненко
"Слово - не воробей. Вылетит неосторожное... вернется трехэтажное..." @ народная примета
PMСайт пользователяICQ
Top
Boffin
Дата 13.02.2006 - 00:25
Цитировать сообщение
Offline



[> free <]
******

Профиль
Группа: -root-
Сообщений: 3569
Пользователь №: 2
Регистрация: 17.02.2005



Рейтинг:
(30%) XX---


А статью разместили бы в почетном разделе

https://www.security-teams.net/index.php?showforum=15


smile.gif


--------------------

Caps Lock - враг человека! Иногда ваши задумчивые рассуждения превращаются в идиотские лозунги, случайно задев эту клавишу.
Голосуйте за реорганизацию клавиатурной раскладки! (с)
PMСайт пользователяICQ
Top
unknownDaemon
Дата 30.01.2008 - 19:46
Цитировать сообщение




Unregistered












Если юзаеца pf - то спасают вот такого типа правила:
Код

table <abusive_hosts> persist

#......
block drop log quick on $ext_if from <abusive_hosts> to any # это в самых первых правилах
#......

pass in on $ext_if proto tcp to ($ext_if) \
   port $tcp_services flags S/SA keep state \
           (max-src-conn 10, max-src-conn-rate 10/10, overload <abusive_hosts> flush)
#
pass in on $ext_if proto udp to ($ext_if) \
   port $udp_services keep state \
           (max-src-conn 10, max-src-conn-rate 10/10, overload <abusive_hosts> flush)

#......



Не пинать ногами - пояснения привожу для тех кто не знает / предупреждаю всяких гуру чтоб не выпендривались =) /

1. Объявляется persist (хранящаяся) таблица
2. Все кто в таблице идут на йух без объяснений(drop)
....
3. пропускать на внешнем интерфейсе($ext_if) <протокол> <такие то порты> <поещать в стэйтфул> (<max соединений c 1 IP >, <max кол-во соединений / за указаное кол-во времени, нарушающих сие совать в таблицу abusive_hosts и очищать стэйтфул)

ПРИМЕЧАНИЕ: Эти правила на моей десктопной машине, отсюда и такие циферки, для серверов желательно указывать для разных групп сервисов разные значения ибо для хттп например и 50 коннектов с одного адреса - это нормуль, а вот к ssh - стоит задумаца ;-)

ЧУТОК НЕ В ТЕМУ:
Для блокировки ssh-брутфорс атак можно юзать перловый скрипт: /usr/ports/security/sshit

Он подсчитывает логоны за время и нарушителей тоже пхает в табличку фаера, которые после количества указаных в конфиге скрипта ошибок - аналогично ходят на йух, что примечательно через 5 минут он удаляет адреса из таблички (мало ли бухой 3 или 5 раз ошибешься ;-) )
Top

Опции темы Ответ в темуСоздание новой темыСоздание опроса