• ↓
  • ↑
  • ⇑
 
11:20 

Не-на-вииии-жу!!!...

... устройства сделанные идиотами для идиотов же.

Dlink DIR-100. Открываю. Порты заклеены бумажкой "Стоп! Воткните диск с мастером в CD-ROM и следуйте инструкциям!". Дефолтовый IP девайса нигде не прописан. Консольного порта, разумеется ;) нет. Делать нефиг, цепляю диск.
"Щаз мы вам все настроим, а заодним поставим программу "Network Magic" которая ну такая программа, ну просто такая программа..."
"Спасибо, я знаю, как настраивать сеть"
"Значит, не поставим!" - говорит инсталлятор, и переходит к следующей стадии
Сюрпра-ааайз! Комп раньше раздавал тырнеты с помощью ICS, и сетевух там ДВЕ! Инсталлятор стремительно сдувается - "Мужик, ну ты там отключи какую тебе не надо, и нажми "Повторить", ок?"
Лад-но. Отключаю, жму "нехт". По просьбе цепляю ровтер и "наслаждаюсь" результатом.
Эти гид-ро-це-фа-лы даже предположить не смогли, что кроме 192.168.0.0/24 в мире существуют другие подсети, и что иногда ;) они (не)используются вполне осознанно. В результате - на девайсине поднят DHCP, бывшему "интернет"-подключению роздан IP-шник из вышеуказанной подсети, а собственно настройки подключения к интернету железка сюрприз, сюрприз! не счухала.
Имбецилы с двумя извилинами сделали замечательный продукт для тех, у кого извилина одна. Аминь, аминь, аминь.
Собственно, будь эта затея только и исключительно DLINK'овская я бы сильно и не раздражался (Ну что с них взять, кроме анализов новых прошивок? Виноват, зря злобствую %)) так нет же, точно такой же механизм "настроек" я уже видел то ли у асусов, то ли у асеров.
Боже, благослови циски с их консольным портом и убей всех остальных, а?
Спасибо, боженька, твой Шаман.

@темы: Работа

10:11 

The future is near

Причем - впереди! :)

Преамбула: на заре моей, не столь уж далекой, молодости "распознавание образов" было "Ооооо, как круто!". Ученые чего-то там учили, ABBY активно зарабатывала деньги на "распознавании текста" (Вечные Грабли с "проблемой контекста" отложим в сторону ;)), половина электротехнического факультета активно мастерила программно-аппаратную шнягу для распознавания номеров автомобилей, зафиксированных на камеры наблюдения и тэ дэ.
Лет через несколько из "Оооооочень круто" вопрос перешел в состояние просто "круто!" - распознаванием печатных текстов никого уже не удивишь, вокруг достаточно активно заговорили об распознавании текста рукописного (Воз не то, чтобы "и ныне там", но уехал не слишком далеко ;)), на очередном ICD Intel продемонстрировал сервер с "чудо-программой", искавшей лица на фотографиях, а не так давно Google прикрутил подобный поиск к своей Picasa'е, но все это было "где-то там, далеко в стороне".

Собственно, амбула: купил я матери на день рождения в подарок соньковскую цифромыльницу "с одной кнопкой - сделай мне зашибись!"(С) и, натурально, офигел. Нет, кнопка там не одна, и "зашибись-фотографа" мыльница ни из кого не сделает, НО! Эта зар-р-раза умеет автоматически фокусироваться на лицах! Причем не просто "на лицах" (Мало ли как это можно соорудить? "Светлое пятно", буква "Т" и пэ рэ) - машинка позволяет задать "приоритетное" лицо для фокусировки на групповых фотографиях, т.е. "распознавание" производится "честно", более того! В фотоаппарате есть функция (Работающая, проверял!) "автоматического фотографирования улыбок", т.е. эта "фитюлька" еще и выражение лиц разбирает!
Ёлки-зеленые-брызги-шампанского! Ненаучная фантастика в жизни!
Почувствовал себя динозавром аффтаром старым пердуном странно.

@темы: Жизнь

12:53 

Диалектика, ёмть!

Стоило только найти одежду (Finn Flare) и обувь (Ecco), которые меня полностью устраивают - как выясняется, что на мой "новый" размер у них ничего нет!
Как хорошо было с 52 размером? А с 48? Теперь же, с 44, хоть в "детский мир" одеваться ходи! Воистину, нет в жизни счастья... по крайней мере, в одежде его точно нет ).

@темы: Жизнь

15:50 

Стоит только на какой-то год...

... уехать из города, как там заводится ВСЯКОЕ ). Помнится, в первые дни в Ебурге чуть не у каждого второго забора останавливался, офигевал с различной рекламы, названий и пр., теперь то же самое происходит и в Перми:
И все это - за полдня прогулок по городу с фотоаппаратом. А сколько всякого-разного осталось "за кадром" - сердце кровью обливается! Ну ничего, в следующий заезд, Б-г даст, продолжим... :shuffle:

@темы: Жизнь

15:12 

Мелочь...

... а приятно! Вместо стандартного ntpd (С документацией на 9, кажется, страницах) можно использовать OpenBSD'шный OpenNTPD, в котором всего-то требуется указать слушаемый интерфейс и адреса ntp-серверов для синхронизации. И он РАБОТАЕТ!

@темы: FreeBSD

16:04 

Новый экспириенс...

... установка FreeBSD на IBM'овский сервер.
Со SCSI-винтами, числом 2 шт по 8Gb каждый.
128 метров памяти.
P3-500.
В серверной типа "кладовка" (+40 "в тени", ага).
Без стула.
При помощи клавиатуры _без английской раскладки_.
За жестко ограниченное время.

Ничего так, работает. Интернет интернетит, нат натит, ДНС-днсит ). Ядро, правда, все еще пересобирается - ну-да мы не поспешаем, да.
Правда идея взгромоздить на ЭТО еще и почтовый сервер м-ммм... не кажется мне вполне удачной, но где наша не пропадала?

@темы: FreeBSD, Работа

15:24 

Заменил по гарантии...

... DVD-RW на букваре. "Вендекапец"(ТМ) близок как никогда )

@темы: Жизнь

15:44 

Пользуясь случаем хочу отрекомендовать...

... отличную книгу - "Доступный UNIX, Linux FreeBSD, DragonflyBSD, NetBSD, OpenBSD" Алексея Федорчука. По ощущениям это такой Фигурнов для будущих юниксоидов, только много, много лучше (Специфика, ага!). У книги есть три больших преимущества:
1) Она посвящена POSIX-системам "в целом", без привязки к конкретному дистрибутиву-выпуску.
2) В отличие от множества "аналогичных" изданий ее целевая аудитория не "системный администратор-программист", а "конечный пользователь".
3) Ее легко и приятно читать.
Всем начинающим - очень, очень, очень рекомендую.

@темы: Жизнь

16:17 

Очередная задачка:

Есть Cron. Есть пара "однострочных" задач. Есть IMAP-сервер с настроенными фильтрами (Все сообщения с такой-то темой слать ТУДЫ!). Казалось бы, все хорошо - но как задать Subject: в письме от Cron'а? В конфигах ничего подобного нет. В man'ах, что удивительно, тоже ).
Можно, конечно, подправить IMAP'ный фильтр, но - мы легких путей не ищем! Лезем в man'ы. Думаем. Отключаем отправку писем Cron'ом при помощи установки переменной MAILTO="". Закидываем в конец выполняемой Cron'ом команды конвейер | mail -s ''... и обламываемся, ибо в качестве системы отсылки почты используется не родной sendmail, а самоустановленный ssmtp, который, судя по тем же man'ам знать не знает ни о каких Subject'ах!
Иппон-матрен. Вместо одной строчки в Cron'е пришлось рожать цельный скриптЪ, собирающий искомое письмо из шаблона заголовка и stdout'а собственно программы с удалением получившегося темпака.
Чиооорт, как бы научиться выбирать _самый простой_ путь решения проблемы, а?!!!

@темы: Работа, FreeBSD

16:16 

Матерное, рабочее.

19:33 

Одной строкой:

Политика использования MS IE в установке-по-умолчанию MS Server 2008 R2 полностью совпадает с моим видением этого продукта: Он есть. Он кое-как работает. Пускать его в интернет НЕЛЬЗЯ.
HP-шники со своим ML100 G6 совсем с дубу рухнули - ни на офсайте, ни уж тем более на диске с дровами НЕТ драйвера видеоадаптера для 2008 R2 x64, при том, что этот самый R2 - официально рекомендованная для этого сервера ОС. Впрочем, для 2008 x86 их тоже нет. Зато они есть для ML110 G5. Даже работают. Мораль by HP - "гую фтопку, ставьте CORE-ку", видимо.
Переход от FreeBSD (IPFW+DeleGate) к Windows XP + Traffic Inspector - полный отвал башки и вынос мозга. Хрен знает, на что и для кого эта прога рассчитана - для SOHO - слишком замудоглючна, для ENT-сегмента прокси-сервер-шлюз на вынь ХрюХрю как-то даже... не смешно. Впрочем, в качестве биллинг-системы для домашней сети или там какой-нибудь семейной гостиницы, наверное, сгодится...

@темы: Работа

16:02 

... делу венец?

Определившись со списком доступных служб хакер переходит к следующему, последнему перед собственно "атакой" этапу - попытке определения версий ОС и установленного ПО.
С версией конкретных программ все может быть как очень просто так и очень сложно - большинство сетевых служб при установлении соединения выдают т.н. информационный баннер с указанием поддерживаемых возможностей, номера версии (Хорошо если только самой программы, а то ведь и ОС спалить могут )) - этого, собственно, достаточно.
Что с этим можно сделать? Прежде всего, посмотреть настройки службы, очень может быть, что там есть что-либо, определяющее формат "приветствия" (VersionAddendum в SSH, Version в named.conf BIND'а и пр.), иногда этого достаточно - чаще нет. Бывает, что информация о версии жестко зашивается при компиляции программы, стоит ли затевать возню с пересборкой - решать вам.
Дополнительно можно соорудить "хитрую ловушку для слонопотамов" - открыть на файрволле несколько портов, принадлежащих каким-нибудь заведомо небезопасным службам и подвесить на них "Банник"(ТМ). Соорудить оный можно самостоятельно при помощи, например, inetd+TCPWrappers+IPFW, или воспользоваться уже готовым - например, portsentry из ./ports/security. Кстати, готовые "сторожки" вполне могут помочь и в случае -sS сканирования (См. выше), но злоупотреблять ими не стоит (Ибо какие-то ресурсы они все-таки жрут сами по себе, да и организовать с их помощью DOS-атаку вполне реально.), и полностью полагаться на них нельзя (Возможностей по смене IP даже у "среднезавалящего" хакера более, чем достаточно).
Определение версии ОС - штука куда более интересная. Обратимся, опять же к документации nmap нам доступны следующие методы:
- TCP Sequence generation (SEQ, OPS, WIN, and T1)
- ICMP echo
- TCP explicit congestion notification (ECN)
- TCP tests (T2–T7)
Проще всего опять же с ICMP echo - он у нас уже забанен ;).
С Т2-Т7 все тоже не слишком сложно: 3,5,6,7 тесты требуют доступных закрытых портов, которых у нас, опять же, уже нет, 2й - повторяет уже "зарубленное" TCP NULL-сканирование, 4ый надежно отсекается statefull правилами.
Остаются Sequence generation и ECN. В 8ке вроде как имеется sysctl, ответственный за это самое "congestion notification", но скажу честно - не проверял.
T1 - пожалуй самая большая проблема. Опять же, "рубить" SYN-пакеты мы не имеем права, ничего "особо криминального" они не содержат, а методов "анализа последовательности" у ipfw нет. Тупик? М-мммм... не вполне. Помешать проведению теста мы, может и не сможем, но "спутать" его результаты - вполне. Для этого устанавливаем net.inet.ip.random_id в единицу и наблюдаем результаты (Мою 7_3 nmap радостно определил как то ли OpenBSD, то ли Free в диапазоне с 6й по 8ю) - не идеально, но приемлемо.

@темы: FreeBSD

16:38 

Продолжим, помолясь

После обнаружения в анализируемой сети активных хостов атакующий переходит к следующему этапу - попытке определить список доступных сетевых служб на целевой машине. Для этого используется т.н. технология "сканирования портов".
Наиболее распространены следующие типы сканирования:
- сканирование "полусоединением", оно же stealth, tcp syn и пр.
- сканирование с нестандартной установкой tcp-флагов
- UDP-сканирование
Для решения специфических задач (Определение правил брандмауэра, обход брандмауэра, сканирование нестандартных систем и пр) могут так же использоваться TCP ACK сканирование, сканирование Мэймона и TCP-window сканирование.
Проще всего справиться со сканированием с нестандартной установкой флагов:
ipfw add deny all from any to any tcpflags syn,fin,ack,psh,urg,rst - NULL-scan
ipfw add deny all from any to any tcpflags !syn,!fin,!ack,!psh,!urg,!rst XMAS-scan
ipfw add deny all from any to any not established tcpflags fin FIN-сканирование.
UDP-сканирование само по себе штука не простая - открытые порты почти всегда (Зависит от службы) не отвечают на запрос, фильтруемые порты не отвечают тем более, а закрытых портов при правильно настроенном файрволле у нас просто нет ).
Увы, самый простой, самый быстрый и самый надежный способ (Используемый nmap'ом по умолчанию) заблокировать практически невозможно: syn-пакет является частью легитимного процесса установления соединения. В процессе подобного сканирования _можно_ обнаружить две аномалии - резкое увеличение пакетов с rst-флагом приходящих с одного адреса и большое количество попыток установления соединения. Теоретически, это можно использовать для попытки обнаружения сканирования, но на практике все не так просто. Используя ipfw можно попытаться ограничить число одновременных попыток соединения, но поможет это мало - даже последовательный перебор всех 65535 портов занимает порядка 20 секунд, пытаться "ускорить" этот процесс - нет особого смысла. Попытка обнаружить аномальное увеличение RST-пакетов с помощью IDS так же не приведет к успеху, т.к. установление соединений с закрытыми портами будет заблокировано межсетевым экраном и собственно увеличения - не произойдет.
Таким образом, можно с уверенностью сказать, что атакующий _получит_ список запущенных на целевой машине сетевых служб, и с этим мало что можно сделать.

@темы: FreeBSD, Работа

16:37 

Продолжаем firewall'льную...

... тему или немного о, собственно, безопасности.
Первое, что делает хакер перед атакой - определяет цель. В сети 4 294 967 296 IPv4 адресов (Плюс-минус лапоть в виде зарезервированных для спец. использования подсетей) и понять, какой из них тебе нужен не так-то просто. В случае, если система оказывает какие-либо услуги внешним клиентам (Web-сервер, SMTP-сервер и пр) "прятаться" в общем-то, не имеет смысла и этот пост можно смело пропустить, а вот если речь идет, например, о корпоративном шлюзе скрыть сам факт его существования - не самая плохая идея.
Каким образом это можно сделать? Открываем раздел документации NMAP, посвященный процессу обнаружения хостов и смотрим, каким образом это самое "обнаружение" может производиться:
- при помощи ICMP-запросов различного типа (-sP -PE -PP -PM)
- при помощи посылки tcp-пакетов с установленными флагами SYN/ACK на некоторые порты
- при помощи посылки udp-пакетов на некоторые порты
- пингование с помощью ARP
- пингование с помощью IP-протокола
По первому пункту все ясно - тупо дропаем icmptypes 8,14,18 (Ай-яй-яй! Нарушаем rfc 1122/792, ну да Кришна с ним.) и не беспокоимся. Вообще, про ICMP еще будет, причем достаточно много.
Второй пункт несколько сложнее - мы _в принципе_ не можем блокировать пакеты с установленным SYN'ом, но - мы можем закрыть наиболее часто употребляющиеся при сканировании порты (-PS22,25,80 -PA21,23,80,3389 - что-то вроде), перенеся соответствующие службы куда-нибудь подальше. Про 25/80 я уже говорил - прятать их обычно нет никакого смысла, 23 - малоактуален, 21 - уже гадательно, 3389 на *nix-машине маловероятен, а вот 22-ssh закинуть куда-нибудь "повыше" (При помощи директивы listenaddress addr:port в sshd_config) - самое оно.
С UDP для атакующего тоже все не просто - явный "отклик" дают только "закрытые" порты, которых в случае правильно настроенного firewall'а у нас просто не должно быть.
ARP-сканирование по большому счету имеет смысл только в локальной сети и защищаться от него долго и уныло в общем-то нет необходимости
А вот с -PO и впрямь могут возникнуть проблемы, хотя задропаный исходящий icmptypes 3 частично помогает, плюс кое-что (IPv6, SCTP и пр.) можно "выпилить" при компиляции ядра.

@темы: FreeBSD

16:36 

Ну и еще немного о...

... firewall'ах (На примере IPFW) - вдруг кому интересно? ))

Основные требования к правилам межсетевого экрана - читаемость и производительность. Если первое более-менее понятно (Кому не понятно - откройте дефолтовый rc.firewall FreeBSD и никогда, никогда, НИКОГДА не повторяйте то, что там увидите!), то со вторым надо разобраться чуть по-подробней.
От чего зависит производительность firewall'а? От количества операций сравнения, которые производит межсетевой экран над полученными в результате анализа пакета данными. Оно, в свою очередь, определяется количеством правил, которое проходит пакет и числом критериев, по которым производится сравнение.
Для примера возьмем несколько достаточно стандартных правил из Handbook'а:
Что мы видим? Любой пакет, направленный "к нам" будет последовательно сравниваться с правилами, предназначенными для "исходящих" пакетов (0-299) и только потом дойдет до правил, предназначенных собственно для обработки пакетов "входящих", кроме того, в каждом правиле предусмотрена проверка "направления движения" пакета и интерфейса, через который он "движется". Не-по-ря-док.
Что тут можно сделать? Например, разделить поток трафика...
... примерно таким образом:
При этом а) входящим пакетам не придется проходить сравнения с правилами предназначенными для пакетов исходящих и б) собственно операции сравнения можно значительно упростить т.к. "направление движения" и "интерфейс" мы проверяем при этом самом "делении". Как только в дело вмешается nat + расположенные на самом сервере службы таким простым делением обойтись уже не удастся - я лично делю трафик на (входящий-исходящий), (внутренний интерфейс-наружный интерфейс), (адресованный серверу - транзитный), в ряде случаев к последней "дележке" добавляются еще broadcast и multicast трафик, но это требуется не слишком часто. Единственное требование, нужное для выполнения этого "фокуса" - _явная_ нумерация всех правил в списке, что определенным образом затрудняет сопровождение скрипта.
Можно еще скомпоновать несколько правил "в одно":
$cmd 00200 allow tcp from any to any 80,443,25,110 setup keep-state
Не следует забывать, что подобная организация правил упрощает сопровождение-управление скрипта и затрудняет тонкую "донастройку" правил, но "группировать" подобным образом "однотипные" протоколы можно и нужно.

Для того, чтобы все это не превратилось в нечитаемую мешанину из goskipto рекомендуется:
- Нумеровать правила с шагом хотя бы в 10 (Но в 100, как собственно и установлено по дефолту - лучше. Мало ли...).
- Отделять логические блоки правил друг от друга при помощи комментариев, в которых _обязательно_ указывать что это за блок, и в каком числовом диапазоне он расположен ("#######Обрабатываем входящий трафик 0-32500#####:" - примерно так).
- Не экономить на "внутритекстовых" комментариях.

@темы: FreeBSD, Работа

14:58 

Полежал. Прошло.

Поставил вместо isc-dhcpd 3.1.3 (С обновлением от 27 марта, ага) его же версии 3.0.7_5. Запустил с теми же конфигами. Возрадовался, ибо работает. Решил разобраться чуть-глубже, стартанул tcpdump -i lo0 -w ./3.0.7_5, записал дамп происходящего. Снес 3.0.7_5, воткнул обратно 3.1.3, злорадно запустил tcpdump... и обломался! ЭТА СВОЛОЧЬ НАЧАЛА НОРМАЛЬНО ОБНОВЛЯТЬ ОБРАТНУЮ ЗОНУ!!!
Снес-почистил-ребутнул-поставил-запустил... обновляет. Скопировал конфиги на другую виртуальную машину, запустил... работает! Без всякого копирования нарисовал всю схему по новой на свободной ВМке - тоже работает.
Сижу в раздумьях и сомненьях - "то ли лыжи не едут, то ли я ..."(Ц).

Буду утешаться тем, что скилл установки-настройки BIND'а поднялся на пару пунктов. На будущее - копирнул себе стартовые скрипты от 3.1.3 и сорцы от 4.1.1, буду пользоваться ими... :shuffle:

@темы: FreeBSD, Работа

15:56 

"Крокодил не ловится...

... не растет кокос" - редкое ощущение: НЕ хочется работать. Есть пара действительно интересных задачек, но решать их нет ни малейшего желания. Хочется... странного.
"Пойду, полежу - может пройдет"(С)

@темы: Жизнь

16:44 

Ну и опять о вечном...

... т.е. о граблях(ТМ).
FreeBSD 7_3.
DNS. Зона прямого просмотра. Зона обратного просмотра. Файл с ключом. named-checkconf. named-checkzone. OK
DHCP. update-style interim. Зоны, primary 127.0.0.1; ключ. isc-dhcpd start. ОК.
Проверяем клиента - ipconfig /release - ipconfig /renew. Получаем адрес. nslookup <имя> - получаем IP. nslookup ip - получаем... ничего не получаем.
Лезем в логи - offer/ack, forward проапдейтили, TXT + A создали, TXT удалили, а с revers'ом - таки ой: "dhcpd: unable to add reverse map from <> to <> timed out".
В логах BIND'а чуть интересней:
client 127.0.0.1 updating zone бла-бла-бла ОК
client внешний адрес update 'x.x.x.in-addr.arpa/IN' denied.
Шо за нафиг? Прямую зону обновляем через 127.0.0.1, а обратную - через собственно интерфейс? Резво лезу в dhcpd.conf - нет, и там, и там стоит обращаться к 127.0.0.1. Странно. Запускаю tcpdump -i lo0, делаю release-renew на клиенте - думаю, может, это он, зар-раза за обновлением пополз, на DHCPD наплевав? Не-а!!! Запрос на обновление прямой зоны идет через 127.0.0.1 от, собственно, 127.0.0.1, а запрос на обновление зоны обратного преобразования идет через 127.0.0.1 же, но src-addr там именно что адрес реального интерфейса!
Для проверки меняю у зоны обратного преобразования update-policy на allow-update { адрес интрефейса }, проверяю - пашет. Меняю на 127.0.0.1 - нихтЪ. Ставлю вместо адреса ключ - опять нихтЪ. Запускаю nsupdate -k <ключ>, server = 127.0.0.1, делаю обновление - проходит.
"От такая вот загогулина"(С). Оно, конечно, и без зоны обратного просмотра прожить можно, да и на всю бОшку инсекьюрные апдейты по IP-адресу нормально пашут, но, блин, интересно же! Полдня вокруг железки с бубном плясал, так ничего и не добился. Думаю завтра качнуть с isc.org сорцы 4_1_1 вместо 3х из портов и попробовать скрестить ежа с ужом...
Вся жизнь - борьба!

@темы: Работа, FreeBSD

17:13 

Наболевшее, злобное.

Вот кто бы объяснил владельцам навороченных торговых центров, что хорошая "магазинная логистика" это не "Когда ты платишь народу в два раза меньше", а "Когда у тебя _нет_ очередей". Взяли, оладушек, моду - в час пик из десяти касс работает хорошо, если шесть, очередь отсюда и до... до, в общем. Делаешь замечание администратору - минут через... несколько могут открыть еще одну. А могут и не открыть, ага.

Казалось бы, чего проще - написать над одной-двумя кассами - "Всем, у кого меньше 4-5-6 покупок с оплатой за наличный расчет - сюда!", поставить "светофор", сигнализирующий о длине очереди у каждой кассы, у кассы, предназначенной для тележек поставить отдельного упаковщика - и проходимость сразу же возрастет! Ей-ктулху, своими глазами видел - увы, не в Екатеринбурге. Здесь предпочитают "проверенные методы" советской еще эпохи.
Такое ощущение, что на весь город - один приличный магазин, и тот - "Монетка". В остальных продавцы ведут себя так, будто клиенты вечно хотят от них "странного" - ну там, чтобы на товарах были ценники, рядом с прилавками - кульки для упаковки, стационарные сканеры штрих-кодов _работали_ и пр.
Повбывал бы, натурально.

@темы: Жизнь

16:19 

Поймал себя на желании...

... в третий раз переписать основной firewall'ьный скрипт - ибо "читаемость" входит в противоречие с "простотой парсинга".
Медитирую на фразу "совершенство недостижимо", думаю странное ).

@темы: FreeBSD, Жизнь, Работа

Танец-с-саблями на граблях

главная