а знаете ли вы, что...
Этой публикацией мы начинаем новую рубрику (формально выражаясь, это цикл материалов в рубрике sysadmin, но по сути это как бы отдельная рубрика), в которой планируем публиковать небольшие по размеру куски информации следующего свойства:
— советы, рекомендации;
— неочевидные, малоизвестные факты, «маленькие открытия» (недокументированный функционал железа и ПО);
— определения терминов, вызывающих «всеобщие (или частовстречающиеся) заблуждения»;
— маленькие новости.
Мы будем рады, если читатели подключатся к наполнению этой рубрики, присылая свои заметки на адрес sr [at] nestormedia [at] com.
шеф-редактор
Итак, знаете ли вы, что...
...термины "routed protocol" и "routing protocol" обозначают совершенно разные вещи. Routed protocol — это протокол, отправленный по определенному маршруту через объединеннувю сеть. Примерами таких протоколов являются Internet Protocol (IP), DECnet и Apple Talk. "Routing protocol" — это протокол, который реализует алгоритм маршрутизации. Если изложить это просто, они отправляют протоколы по определенному маршруту через объединенную сеть. Примерами таких протоколов могут быть Interior Gateway Routing Protocol (IGRP), Open Shortest Path First (OSPF), Intermediate System to Intermediate System (IS-IS) и Routing Information Protocol (RIP).
***
...в Linux самый простой и быстрый способ заблокировать доступ (передачу данных по IP) к некому хосту – запретить маршрутизацию на него с помощью команды
/sbin/route add –host <IP-адрес врага> reject
Этот способ применим в ситуации, когда доступ нужно заблокировать очень оперативно, например, в ходе атаки. Разумеется, долгосрочные блоки есть смысл устанавливать на файрволле.
Снимается такая блокировка, как вы могли догадаться, командой
/sbin/route del –host <IP-адрес врага> reject
***
...не следует пренебрегать рекомендациями специалистов по безопасности в части выбора устойчивых ко взлому паролей. А именно того пункта, который гласит: используйте в паролях самые разнообразные символы кодовой таблицы (из допустимых, разумеется). Практика показывает, что большинство людей, использующих метод brute-force (метод грубой силы, т.е. полного перебора) при взламывании шифрованных паролей не утруждают себя и систему подключением к перебору «закорючек» (знаков препинания и спецсимволов) и даже букв верхнего регистра, справедливо полагаясь на данные статистики: большинство юзеров используют для пароля символы нижнего регистра и словарные слова в качестве пароля целиком или его части. Не идите на поводу у «мения зала» — ударьте по ленивым брут-форсерам паролями плана Hu:Arr+iU-Neega?! ;)
***
...можно просто и изящно реализовать идентификацию пользователя в локальной сети для проверки соответствия юзер—IP-адрес.
На маршрутизаторе, осуществляющем доступ в интернет, всем нуждающимся в интернете выдаются логины с паролями. Предоставляется доступ на маршрутизатор при помощи telnet’а. Вместо коммандной оболочки юзерам подставляется специальный командный файл, который при первом запуске создает некий файл-флажок признака "роутинг включен" и запускает команду разрешения роутинга на IP-адрес владельца стандартными средствами (firewall,route, etc.) и после этого закрывает сеанс.
Когда юзер заходит телнетом на *nix (маршрутизатор), вводит свой логин, пароль, на маршрутизаторе ему открывается доступ с помощью командного файла автоматически, и юзера выкидывает из телнета (сеанс закрывается). Далее, когда юзер насмотрелся порнографии, и решил, что уже пора бы собираться в школу :)), он опять должен запустить telnet, после чего на сервере опять запускается командник, который убирает флажок и выключает роутинг во внешний мир.
Достоинства: не требуется специальных клиентов (типа socks и других служб секретности) — telnet есть на любой операционке, даже на DOS'е. :) Вместо обычного телнета целесообразно поставить ssh, дабы защититься от прослушивания.
***
...можно запросто настроить dhcpd для раздачи хостам фиксированных (все время одних и тех-же) IP-адресов, например, в зависимости от MAC-адреса сетевой карты. Смотрите пример:
host pc1 {
hardware ethernet 00:80:48:B8:01:A2;
fixed-address 10.0.0.200;
}
Очень просто, не правда ли?
***
...фильтровать пакеты по их содержимому (подстрока в любом месте пакета) в Linux (ядра 2.4.х) можно, скомпилировав ядро с поддержкой этой функции:
CONFIG_IP_NF_MATCH_STRING=y
(в разделе IP: Netfilter Configuration)
Эта функция является расширением netfilter/iptables и может не быть включена в исходники, поставляемые с вашим дистрибутивом. В таком случае нужно будет пропатчить ядро, забрав патч с cvs и воспользовавшись функцией мэйкфайла iptables под названием Patch-O-Matic. После чего ядро надлежит пересобрать. Перекомпилировать придется и iptables. Подробности в Netfilter Extensions HOWTO.
Воспользоваться функционалом этого расширения можно через iptables, который теперь поддерживает новый фильтр “string”. Например:
# iptables -A INPUT -m string --string 'cmd.exe' -j QUEUE
***
... утилизация канала между двумя хостами не может достигать значения 100%, поскольку основное время тратится ОС компьютеров на обработку информации: чтения или записи на диск.
Утилизация канала может достигать максимальных значений, только если одновременно много компьютеров обращаются к одному серверу.
***
...и в FreeBSD, и в Linux уже существует защита от так называемого ARP Spoofing. В частности, совсем недавно вышел патч для FreeBSD, решающий проблему апдейта ARP-таблицы при поступлении ARP-ответа без предварительного запроса (в логе это отражается). Решение заключается в дополнительной проверке существования старого MAC-адреса перед заменой в ARP-таблице на новое значение. Ранее подобный патч был выпущен для Linux ядер 2.4.x.
***
...существует патч для увеличения реактивности Linux-ядра 2.6, позволяющий увеличить частоту генерации прерываний таймера (HZ) до 10000, что приведет к уменьшению времени реакции (например, возрастет производительность poll()/select()) и большей паразитной нагрузке на CPU для обработки более частых прерываний от таймера. Называется hz.patch, скачать можно здесь: http://kerneltrap.org/sup/1766/hz.patch.
Собрано Alice D. Saemon из различных источников.
— советы, рекомендации;
— неочевидные, малоизвестные факты, «маленькие открытия» (недокументированный функционал железа и ПО);
— определения терминов, вызывающих «всеобщие (или частовстречающиеся) заблуждения»;
— маленькие новости.
Мы будем рады, если читатели подключатся к наполнению этой рубрики, присылая свои заметки на адрес sr [at] nestormedia [at] com.
шеф-редактор
Итак, знаете ли вы, что...
...термины "routed protocol" и "routing protocol" обозначают совершенно разные вещи. Routed protocol — это протокол, отправленный по определенному маршруту через объединеннувю сеть. Примерами таких протоколов являются Internet Protocol (IP), DECnet и Apple Talk. "Routing protocol" — это протокол, который реализует алгоритм маршрутизации. Если изложить это просто, они отправляют протоколы по определенному маршруту через объединенную сеть. Примерами таких протоколов могут быть Interior Gateway Routing Protocol (IGRP), Open Shortest Path First (OSPF), Intermediate System to Intermediate System (IS-IS) и Routing Information Protocol (RIP).
***
...в Linux самый простой и быстрый способ заблокировать доступ (передачу данных по IP) к некому хосту – запретить маршрутизацию на него с помощью команды
/sbin/route add –host <IP-адрес врага> reject
Этот способ применим в ситуации, когда доступ нужно заблокировать очень оперативно, например, в ходе атаки. Разумеется, долгосрочные блоки есть смысл устанавливать на файрволле.
Снимается такая блокировка, как вы могли догадаться, командой
/sbin/route del –host <IP-адрес врага> reject
***
...не следует пренебрегать рекомендациями специалистов по безопасности в части выбора устойчивых ко взлому паролей. А именно того пункта, который гласит: используйте в паролях самые разнообразные символы кодовой таблицы (из допустимых, разумеется). Практика показывает, что большинство людей, использующих метод brute-force (метод грубой силы, т.е. полного перебора) при взламывании шифрованных паролей не утруждают себя и систему подключением к перебору «закорючек» (знаков препинания и спецсимволов) и даже букв верхнего регистра, справедливо полагаясь на данные статистики: большинство юзеров используют для пароля символы нижнего регистра и словарные слова в качестве пароля целиком или его части. Не идите на поводу у «мения зала» — ударьте по ленивым брут-форсерам паролями плана Hu:Arr+iU-Neega?! ;)
***
...можно просто и изящно реализовать идентификацию пользователя в локальной сети для проверки соответствия юзер—IP-адрес.
На маршрутизаторе, осуществляющем доступ в интернет, всем нуждающимся в интернете выдаются логины с паролями. Предоставляется доступ на маршрутизатор при помощи telnet’а. Вместо коммандной оболочки юзерам подставляется специальный командный файл, который при первом запуске создает некий файл-флажок признака "роутинг включен" и запускает команду разрешения роутинга на IP-адрес владельца стандартными средствами (firewall,route, etc.) и после этого закрывает сеанс.
Когда юзер заходит телнетом на *nix (маршрутизатор), вводит свой логин, пароль, на маршрутизаторе ему открывается доступ с помощью командного файла автоматически, и юзера выкидывает из телнета (сеанс закрывается). Далее, когда юзер насмотрелся порнографии, и решил, что уже пора бы собираться в школу :)), он опять должен запустить telnet, после чего на сервере опять запускается командник, который убирает флажок и выключает роутинг во внешний мир.
Достоинства: не требуется специальных клиентов (типа socks и других служб секретности) — telnet есть на любой операционке, даже на DOS'е. :) Вместо обычного телнета целесообразно поставить ssh, дабы защититься от прослушивания.
***
...можно запросто настроить dhcpd для раздачи хостам фиксированных (все время одних и тех-же) IP-адресов, например, в зависимости от MAC-адреса сетевой карты. Смотрите пример:
host pc1 {
hardware ethernet 00:80:48:B8:01:A2;
fixed-address 10.0.0.200;
}
Очень просто, не правда ли?
***
...фильтровать пакеты по их содержимому (подстрока в любом месте пакета) в Linux (ядра 2.4.х) можно, скомпилировав ядро с поддержкой этой функции:
CONFIG_IP_NF_MATCH_STRING=y
(в разделе IP: Netfilter Configuration)
Эта функция является расширением netfilter/iptables и может не быть включена в исходники, поставляемые с вашим дистрибутивом. В таком случае нужно будет пропатчить ядро, забрав патч с cvs и воспользовавшись функцией мэйкфайла iptables под названием Patch-O-Matic. После чего ядро надлежит пересобрать. Перекомпилировать придется и iptables. Подробности в Netfilter Extensions HOWTO.
Воспользоваться функционалом этого расширения можно через iptables, который теперь поддерживает новый фильтр “string”. Например:
# iptables -A INPUT -m string --string 'cmd.exe' -j QUEUE
***
... утилизация канала между двумя хостами не может достигать значения 100%, поскольку основное время тратится ОС компьютеров на обработку информации: чтения или записи на диск.
Утилизация канала может достигать максимальных значений, только если одновременно много компьютеров обращаются к одному серверу.
***
...и в FreeBSD, и в Linux уже существует защита от так называемого ARP Spoofing. В частности, совсем недавно вышел патч для FreeBSD, решающий проблему апдейта ARP-таблицы при поступлении ARP-ответа без предварительного запроса (в логе это отражается). Решение заключается в дополнительной проверке существования старого MAC-адреса перед заменой в ARP-таблице на новое значение. Ранее подобный патч был выпущен для Linux ядер 2.4.x.
***
...существует патч для увеличения реактивности Linux-ядра 2.6, позволяющий увеличить частоту генерации прерываний таймера (HZ) до 10000, что приведет к уменьшению времени реакции (например, возрастет производительность poll()/select()) и большей паразитной нагрузке на CPU для обработки более частых прерываний от таймера. Называется hz.patch, скачать можно здесь: http://kerneltrap.org/sup/1766/hz.patch.
Собрано Alice D. Saemon из различных источников.
Сетевые решения. Статья была опубликована в номере 11 за 2003 год в рубрике sysadmin