вторник, 28 октября 2008 г.

Лицом к человеку или немного о настройке/мониторинге сетевой активности.

/*

Есть, милок, такая система, называется Mac OS...
(слова древнего предания)

во-первых - огромное спасибо всем, кто заботится писать хорошую подробную документацию к своим программным продуктам и комментирует исходники (желательно не забывая это делать на английском языке в дополнение к своему родному).

во-вторых - спасибо тем, кто как-то пытается агрегировать именно хорошие и полезные статьи/(переводы документации с авторскими ремарками, примерами и т.п.) и выкладывает/поддерживает их в сети. ибо послать кого-нить за ответом на форум равносильно обречь на чтение комментариев, писанных... гхм... как в песне - "то ли девочка, то ли видение"... в общем судьба редких толковых комментариев - быть похороненными ворохом лексики из разряда "подзаборной".

итак, Господа, типовая ситуация: настоящяя блондинка (Ъ) хочет разобратьтя в основах мониторинга/контроля/настройки сетевой активности. начальный уровень знаний равен нулю. что ей посоветовать? варианты:

а) для Linux:

1) любая вменяемая "вводная" по TCP/IP способная донести простую идею, что это - не более чем транспорт/автобус, в котором едут пассажиры/(специализированные сетевые протоколы)

2) Русские выпуски Linux Gazette. в дополнение модно пошарить по сусекам оригинала: Linux Gazette. в частности - Linux Advanced Routing & Traffic Control HOWTO (оригинал).

3) xgu.ru - надо/можно выбрать очень неплохой материал

4) любая вменяемая дока по конфигурации ядра и патчам Netfiller (многие вкусные вещи до сих пор не в мейнстриме). для openSUSE и нашего скромного Enlightenment LiveCD именно поэтому используется ядро, собранное Яном Энгельхартом.

5) примерный списочек "крутых мэнов, что ждут тебя за углом"...
man ip (пакет iproute2. в принципе он заменяет следующие две позиции, но, к сожалению, не в ходит в базовую установку многих дистрибутивов)
man route
man netstat
man ping
man traceroute (man tracepath)
man iptables (man iptables-save, man iptables-restore)
man hosts (довольно эффективное средство в некоторых случаях)
man sysctl (man sysctl.conf)
man protocols
man ethtool (настройка режима сетевой карточки)
man ldconfig
man resolv.conf
это так, на вскидку. плюс wifi или что-там на руках...

6) "инструментарий":
wireshark
tcpdump
и так далее по списку в зависимости от предпочтений.

намеренно не касаюсь OpenVPN, Squid и прочих сторонних приложений. задача же по контролю исходящего трафика в Linux до сих пор не имеет тривиального решения (imho). понятно, что на шлюзе, стоящем жопой наружу... простите, на том оборудовании, что обеспечивает связь с внешним миром при помощи сети Интернет, есть и блоклисты и логирование и чего там только нет (по ситуации и в зависимости от скилов да настроения одминского). а если линков несколько (динамическая нагрузка и/или резервные каналы с анлимом на входящий траф) то можно даже honeypod соорудить по согласованию с начальством (очень, знаете ли, в плане самообучения помогает, хех). а дальше уже можно и "предметно" расписывать под конкретную ситуёвину.

б) Mac OS X:

1) гуйня в Preferences Panel по Network, Sharing, Firewall (на 10.5.*)

2) дописать в /etc/rc.common статические маршруты, смену мака и прочую рутину коли есть в ней нужда

3) скачать и поставить две (2) программы:
Little Snitch - контроль исходящих соединений, мониторинг текущего трафика.
WaterRoof - всё остальное.

смотрим, как это выглядит:



привёл примеры статической конфигурации хоста из пресетов. смотрим на опции WaterRoof, замечаем, что шейпинг трафика тоже под рукой равно как и динамические правила. WaterRoof is freeware and open-source. Little Snitch - полнофункциональное Demo и стоит денег, что не грех и заплатить. причём автор настаивает на скачивании Demo, тестировании и оплате только если решите оставить программу себе (очень правильный и грамотный подход, Господа).

выводы делайте сами, уважаемые... по обстоятельствам...

P.S. зато аудиоплееров в Linux-е до жопы! и KDE можно запустить даже под виндой!

P.P.S. YaST -> System -> /etc/sysconfig Editor единственный вменяемый гуёвый редактор фаервола/(параметров сети), что мне известен. к сожалению для шейпинга трафика прописывать параметры лучше таки ручками в vim...

P.P.P.S. баталии ip vs ipfw vs pf не предусматривал. настоящие пацаны (Ъ) пользуют OpenBSD :) (кто к чему привык, Господа).

"А какая в этой басне мораль?
А морали нет никакой..."
*/