Как проверить что происходит без подключения к монитору?Вы можете подсоединить ноутбук к маршрутизатору (в один из коммутируемых портов) и при помощи анализатора трафика (wireshark, tcpdump) посмотреть, отсылает ли Raspberry PI сообщения DHCPDISCOVER (они рассылаются широковещательно). Если нет - то проблема где-то на самом устройстве. Если да - надо будет далее анализировать DHCP-трафик и настройки DHCP-сервера (и, вероятно, клиента).
делает трассировку через UDP и посылает каждую секунду 10 ICMP запросовНе понял, если трассировка при помощи UDP, при чем тут ICMP запросы (не ответы Time Exceeded)?
/proc/sys/net/ipv4/icmp_ratelimit
/proc/sys/net/ipv4/icmp_ratemask
/proc/sys/net/ipv4/icmp_msgs_per_sec
/proc/sys/net/ipv4/icmp_msgs_burst
Конечно, скачать какую-нибудь программу с хакир.ру и нажать на кнопку особого ума не надо, но где они берут ботнет? Для меня это загадка. Это первый пунктик, который я не могу понять. Сами собирают? Это не быстро, не безопасно и не просто.Иногда бывает, что многие люди одновременно сами осознанно запускают "вредоносную" программу (см. hacktivism, loic и прочая), т.е. ботнет не нужен. Иногда бывает (amplification attacks), что достаточно десятков скомпроментированных серверов (у них пропускная способность выше), чтобы сгенерировать несколько гигабит/c трафика, которые затем многократно умножатся и придут к жертве.
Если уязвимость используют общедоступную, то она быстро трется.Не все уязвимости, используемый для организации DDoS-атак, так просто закрыть, в частности, из-за количества подверженных им устройств.
Вторая философская загадка кроится в том, что вроде как защита есть, можно запросы фильтровать, перенаправлять и вообще нагрузки на разные сервера распределять, но в то же время канал не резиновый все равно и при желании большими объемами трафика можно положить что угодно, даже фэйсбук, и куда после этого постить фотографии кота? Т.е. под большими объемами уязвимы все.Скажем так, чтобы к жертве пришло N гигабит/с трафика,их должен кто-то сгенерировать. Поэтому чем более сконцентрирована цель и чем более "распределен" атакующий, тем больше вероятность успешной атаки. И наоборот.
1. Как понять что тебя ддосят, если твой сервер лежит и не отвечает? мало ли что там может быть такого убаюкивающего для него. Как понять, что идет именно ддос?При помощи внятного заранее настроенного мониторинга. Необходимо заранее рассмотреть возможные варианты атаки, спрогнозировать (смоделировать) их влияние на оперативно отслеживаемые метрики (утилизация каналов в bps/pps, утилизация CPU, поведение веб-сервера или сервера приложений), иметь отдельную консоль (в смысле dashboard) со всему релевантными метриками, уметь их правильно истолковать.
2. Что можно сделать самому на сервере, чтобы максимально быть готовым к ддосу? Кроме правил iptables есть ли еще какие-то фичи?Разрешить только рабочий трафик, запретить весь остальной. Организовать out-of-band доступ к серверам/инфраструктуре. С моей точки зрения, стоит стремиться к тому, чтобы рабочий сервер мог в штатном режиме обработать трафик, утилизирующий всю его канальную емкость.
3. Законно ли перенаправлять атакующий трафик назад? С одной стороны, он сам нарвался же. С другой, зараженные сервера ботнета могут быть полезными, вдруг там порносайт какой, а я его ответным трафиком положу... Есть ли где-то инструкции или чтиво по теме отражения атак?По поводу законности подобных действий ничего не могу сказать, к тому же вы не указали юрисдикцию.
4. если я купил много прокси серверов и провожу ддос атаки на свой с целью проверить нагрузки и отказоустойчивость, это я тоже закон нарушил? Ботнет же, атаки во все поля....Опять же ничего не могу сказать касательно законности подобных действий. Намекну, если неизвестный аноним, соблюдая минимальные предосторожности, заказал двум-трем популярным DDoS-сервисам [тестовую] атаку на вашу инфраструктуру, то вы-то тут при чём?
5. Отслеживается ли вообще активность таких атак как-то по сети? Не зря же китайцы фаервол себе захерачили, наверное отслеживается? Почему тогда школьников не попересажали еще, вероятно, отслеживается плохо?Подобная активность, насколько мне известно, в основном отслеживается профильными организациями (например, Arbor networks). Касательно второго и третьего вопросов ничего не могу сказать.
6. Как ведут себя провайдеры? им проще клиента отключить, как я понимаю, верно? Но если ДНС прописаны на сервера хостинг провайдера, как его не выброси, атаки пойдут именно туда. Все равно придется фильтровать как-то... Как вообще борятся с атаками хостинги и провайдеры? Не сидят же они сложа руки?Если трафик до клиента представляет угрозу работоспособности хостинга в целом (например, вследствие чрезмерной утилизации аплинков), то трафик до него, как правило, блокируется (вручную при помощи ACL на оборудовании вышестоящего провайдера, при помощи BGP blackhole и т.д.). При наличии, может использоваться специализированное оборудование.
Ну и любые советы, книги, статьи по данному направлению приветствуются.
Особенно интересны методы защиты.
А то сплю плохо.Высыпайтесь.
он глюканул теперь у него на сетевухе мак 00:00:00:00:00, Cisco пакеты с таким маком дропаетВы проверяли (анализатором трафика или по записям в таблице MAC-адресов коммутатора, в который подключен ip-kvm), в Ethernet-фреймах от устройства Dlink именно этот адрес в качестве MAC-адреса источника?
Как настроить Policy-based Routing на ciscoМодель устройства и версию прошивки (операционной системы) будьте добры уточнить.
Как настроить Policy-based Routing на cisco что бы клиент имеющий ip из сети 172.17.0.0/16 при обращении на любой сайт попадал на страничку заглушку?Не уверен, что PBR здесь поможет. Как один из вариантов - закрыть трафик наружу при помощи ACL и отдавать на все DNS(A)-запросы какой-либо внутренний IPv4-адрес. Первое применяется на граничных маршрутизаторах, второе - на DNS-сервере.
Не поможете примером? Облазил всё что можно. На днсах можно как то через view. Но так же примеров нет.Вот ссылки на примеры использование view: 1, 2. Вот ссылки на примеры реализации разрешения всех имен хостов в заданный IPv4-адрес: 1, 2.
view internal {
match-clients { 172.17.0.0/16; };
zone "." IN {
type master;
file "db.fakeroot";
};
};
$ORIGIN .
$TTL 1D
@ IN SOA @ none. ( 0 1D 1H 1W 3H );
IN NS @
* IN A a.b.c.d
Что я уже сделал:Что это значит? Где отключили? На каждой рабочей станции в сети?
...
2. Отключил Ipv6
все статистики отличные (top,iostat,ifstat,ifconfig,sar) - нигде нет пределов.На портах коммутаторов показатели смотрели? Количество отброшенных пакетов, размеры очередей?
в чем может быть проблема или как продиагностировать?Как вариант, пики широковещательного/многоадресного трафика. Диагностировать при помощи снятия соответствующих данных с портов коммутаторов или при помощи анализа трафика.
Есть небольшая сеть (10-15 машин). Один из них, видеосервер, широковещательно очень сильно флудит.Что это значит? В чем это проявляется? Мигают светодиоды на коммутаторах? Нарушается работоспособность сети? Почему вы считаете, что речь идет о широковещательном "шторме"?
В чём может быть проблемаКакая проблема? Опишите конкретнее.
и как её быстро обнаружить?Подсоединяете ноутбук/компьютер в свободный порт коммутатора. Запускаете wireshark/tshark/tcpdump, сохраняете дамп трафика, анализируете его (например, в wireshark - Statistics -> Endpoints), делаете выводы.
Падение линка не падение интерфейса. Подскажите как можно выкрутиться не прибегая к протоколам BGP.Или самому организовывать добавление/удаление маршрутов в зависимости от "доступности" (ping и прочая) противоположного конца тоннеля, или использовать динамическую маршрутизацию через туннельные интерфейсы (реализации RIPv2, если не ошибаюсь, есть почти под каждую из популярных ОС).
Очень краткая схема в первом комментарии выше.Если я правильно понял, то можно (нужно?) изменять маршрут по умолчанию (т.е. маршрутизировать трафик на OPENVPNSERVER1 или OPENVPNSERVER2) на 3750 в зависимости от работоспособности тоннеля?
Когда трава была зеленее я видел использованиe route map в зависимости от пинга, но не запомнил и информации сейчас нет.На мой взгляд, вам подойдет решение в виде статической маршрутизации вкупе с ip sla tracking. См. раздел Резервирование.
К сожалению со второй стороны также нужно отправлять пакеты, в свою очередь выбирая интерфейс. А там у нас чисто линуксовое решение.Я полагал, что хотя бы с одной стороны маршруты исчезают при нарушении работоспособности туннеля. Если нет, то остается RIPv2 (на 3 серверах с openvpn и на устройстве cisco).
Возможно ли это вообще в Scapy?Вы можете создать фрейм при помощи конструктора e=Ether(src='AA:AA:AA:AA:AA:AA',dst='01:80:c2:00:00:02',type=0x8809), и далее самостоятельно задать значение поля данных (e.payload=data, где data имеет тип Packet или str)
e=Ether(src='AA:AA:AA:AA:AA:AA',dst='01:80:c2:00:00:02',type=0x8809)
class EthernetOAM(Packet):
name='Ethernet OAM'
fields_desc=[
ByteField('Subtype',3),
ByteField('Flags',0),
ByteField('Code',0),
]
OAM=EtherOAM()
OAM.payload="data+padding"
e.payload=OAM
OAM
>>> <EthernetOAM |<Raw load='data+padding' |>>
e
>>> <Ether dst=01:80:c2:00:00:02 src=AA:AA:AA:AA:AA:AA type=0x8809 |<EthernetOAM |<Raw load='data+padding' |>>>
Если нет, то есть ли инструменты, которые позволяют сформировать и отправить такие PDU?Инструментов много (как пример, trafgen или mausezahn в составе пакета netsniff-ng), но формировать поле данных вам придется самому, скорее всего.
bond0 Link encap:Ethernet HWaddr 00:15:17:D6:B0:14
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:9381 errors:0 dropped:6123 overruns:0 frame:0
bond0.3 Link encap:Ethernet HWaddr 00:15:17:D6:B0:14
inet addr:192.168.32.7 Bcast:192.168.32.127 Mask:255.255.255.128
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1561 errors:0 dropped:146 overruns:0 frame:0
ethtool eth0
ethtool eth1
Native VLAN не используется, отдаю в PortChanell только 2 вышеупомянутых VLAN'а.Предоставьте, пожалуйста, вывод с коммутатора
show interface Port-channel6 switchport
Если все-таки выяснится, что на интерфейсе Po6 native vlan установлен в 1, по посмотрите на коммутатореshow cdp
show cdp interface GigabitEthernet1/3
show cdp interface GigabitEthernet1/39
Как думаете, может это как-то связано с ядром?К сожалению, я недостаточно владею особенностями работы ядра Linux, чтобы ответить на этот вопрос. Могу лишь предложить использовать tcpdump на интерфейсе bond0.3. Необходимо иметь в виду, что пакет, "дропнутый" ядром, может появиться, а может и не появиться в дампе трафика, в зависимости от причины "дропа". Но вполне может быть, чтоб вы увидите чужой мультикаст, например (OSPF Hello с другого конца L2-домена как вариант). Я хочу сказать, что это может быть связано с ядром, а может - и с обстановкой в сети.
Здесь видно, что все-таки native vlan 1 присутствует, упорно гуглил, но так и не понял как убрать эти параметры из конфигурации..Создайте новый (ранее неиспользуемый) влан на коммутаторе и назначьте его в качестве native, но только на этот интерфейс. Пример:
configure terminal
interface Port-channel6
switchport trunk native vlan XXXX
, XXXX-номер влана.eth0 Link encap:Ethernet HWaddr 00:15:17:D6:B0:14
TX packets:104 errors:0 dropped:0 overruns:0 carrier:0
eth1 Link encap:Ethernet HWaddr 00:15:17:D6:B0:14
TX packets:1141 errors:0 dropped:0 overruns:0 carrier:0
# cat ./ifcfg-bond0
BONDING_OPTS="debug=1 mode=802.3ad miimon=100 xmit_hash_policy=layer2 lacp_rate=1"