• ↓
  • ↑
  • ⇑
 
Записи с темой: Работа (список заголовков)
16:50 

"Сколько не писали ИИ для БПЛА...

... , по странности налоговый отчет для 1С выходит."(С) Хрен знает, что там с ИИ и БПЛА твориться, но отечественный типа-бухгалтерский софт уныл настолько БЫЛИННО, что это уже не бага, а ФИЧА. Ей-ктулху, случайной такая рукожопость быть не может!
Писать софт под _конкретную версию_ _интернет-эксплохера_ или там _мысы ворда_, ставить отдельный редактор скриптов, печатать полученный результат при помощи проприетарной же компоненты левого производителя, умудряться лажать с _официальным дистрибутивом_ (Попадался диск с "Контуром" который отказывался генерить сертфикаты, например), на пустом месте рожать глюки (Две проги "одного КБ" не могут ужиться в одной винде - нивапрос!) и так далее и тому подобное. Контур-экстерн во всех ипостасях (Шоб им всем до конца жизни под ИЕ60 сидеть!) он же в "лайт" версии, "Отчет 200Хрень" (Та самая вордянка-с-макросами) "Налог-чего-то-там" (Фокспрошная муйня в девичестве), разновсяческие 1Сучьи бланкоформочки (Тысячи их!) и еще стопицот всяких приблуд от родного гос-ва родному бизнесу при поддержке родного же софтопрома - все, все, все унылое, шотрындец, мертворожденное еще на стадии зачатия, кривое, как жизнь гетмана Мазепы - и все никак не умирающее. Такое ощущение, что рождается половина этого трындеца даже не "студентом за червонец" а бомжом за бутылку, и чем оно уродливей - тем больше у него шансов "пойти в массы".
Вот ей-ктулху, за все время своей работы видел 1 (Прописью - ОДНО) кроссплатформенное "бизнесбухгалтерское-приложение" - банк-клиент чего-то там банка, написанное на java'е (Насчет остальных характеристик типа той же usability не уверен, ибо не работал) - остальное - какой-то невдолбический трындец. "Дайте-мне-доступ-ко-всей-системе-откройте-все-интернеты-поставьте-софта-тыщ-на-писят-пошаманьте-с-бубном-и-может-я-заработаю". Может, правда и нет.
И добро бы вся эта "франкенштейновость" была чем-то вроде *nix'вого скрипта - "куча мелких компонент, каждая из которых решает одну задачу, взаимодействующих стандартным образом при помощи стандартных интерфейсов" - нихуа. "Тут пишем, тут не пишем, тут софт проприетарный, сюда файлик выгружается, с этим при помощи win API работаем, там селедку завернули, причем не мы..." - в случае проблем все это не дебужится принципиально, официальным суппортом в том числе - судя по их методике работы у ребят просто лежат ДЛИННЫЕ списки багов, к которым приложены воооот такенные КОСТЫЛИ: "случилось то-то - делай так-то, ставь вот эту блуду", не помогло - "переставьте полностью на другом компьютере".
В общем, "Дякую тоби, оссподи, шо я не бухадмин", а то бы вымер уже, как те мамонты.

@настроение: Повбывал бы!

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

11:03 

Все через задницу...

... кроме клизмы. Для того, чтобы переименовать контроллер домена в MS AD надо:
netdomcomputername текущее_имя_компьютера /add:новое_имя_компьютера
netdomcomputername текущее_имя_компьютера /makeprimary:новое_имя_компьютера
netdomcomputername новое_имя_компьютера /remove:старое_имя_компьютера

Но если контроллер домена у вас единственный, то... вам нужно установить второй контроллер домена "После чего задача сводится к предыдущему варианту"(Ц) анекдот после чего задача нихрена не сводится к предыдущему варианту, не-ееет. Technet предлагает передать роли FSMO новому серверу, закинуть туда GC, понизить старый DC до состояния обычного сервера, переименовать его, и проделать всю процедуру в обратном порядке.
ОК. Что при этом делать с DNS, зоны которого интегрированы в AD? Поднимать DNS на "новом DC"? Таки не вариант, ибо он просит поставить диск, а физически сервак в тех еще долбенях... ОК, выносим зоны из AD, поднимаем, передаем, реплицируем, начинаем понижать... ужас-караул! Зоны только на нашем серваке, они нифига не реплицировались, мы все умрем! Формать-вашу-С:-комплит! Реплицирую ручками через ntdsutil. Понижаю сервак до простого сервера, ребут... а он, с-сссобака серая, не "ложиться" - все службы помЭрли, nmap пишет большую дулю, а пинги идут. А сервак, повторяю, в долбенях. Перемать-мать-мать.
Утром физический ребут - все ок. Переименуем, повышаем, передаем, реплицируем - все ОК. Начинаем понижать временного бедолагу. dcpromo - фига-с-два! Опять ругаемся на зоны в AD, которые нифига не реплицированы. Replmon - все ОК. С-сссзззаррраза! dcpromo /forceremoval + dcdiag /fix + ntdsutil = день-ночь-сутки-прочь.
Вгоняем зоны по новой в AD (Безопасных обновлений для), ставим Identity Management for Unix, IAS и начинаем, наконец-то, работать...

@настроение: Повбывал бы!

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

12:48 

Следующий well-known...

... способ интеграции с AD состоит в расширении схемы домена при помощи SFU (Для windows 2000(3)S, для 2003R2 - SUA, в 2008 вообще ничего ставить не нужно, нужно включить роль "Identity manager for unix") - "спасибо М-цопту за стандартизацию процесса", установке и настроке pam-и-nss_ldap.
Ну, надо, так надо - ставим SF(X) в виндах, edit'им юзверей, раздаем им необходимые параметры (Если юзверей много - проще скриптом, был у меня где-то выше пример работы С), создаем нового пользователя для bind'а к LDAP'у (Имя пользователя - на ангельской мове, чтобы с unicode'ом в cn'е не сталкиваться), задаем пассворду посекьюрней (Один черт, в плэйнтексте в файлике лежать будет ))) закидываем бедолагу в группу domain guests, вышвыриваем из 'domain users' (Той самой секурности для) - и с виндами покончено.
На никсах - ставим pam_ldap, nss_ldap, nscd (Не обязательно, но сильно-сильно желательно). Создаем в нужном месте (Поскольку PADL'овский ldap.conf с openldap'овским совпаают не во всем, нехудо бы при компиляции задать какой-нибудь левый путь для конфига - от греха подальше) ldap.conf плюс-минус следующего содержания:
uri ldap://наш_сервер/
base dc=наш,dc=домен
ldap_version 3
binddn наш_юзер@наш_домен
bindpw пассворда, соответственно
scope sub
pam_login_attribute msSFU30Name
pam_password ad
nss_base_passwd cn=куда_сложили,dc=наш,dc=домен?sub?(&(!(useraccountcontrol=514)(mail=*) #Отключаем вывод disabled-пользователей, выводим только пользователей с указанной электронной почтой.
nss_base_group cn=куда_сложили,dc=наш,dc=домен?sub
nss_map_objectclass posixAccount User
nss_map_attribute uid msSFU30Name
nss_map_attribute uidNumber msSFU30UidNumber
nss_map_attribute gidNumber msSFU30GidNumber
nss_override_attribute_value loginShell '/bin/nologin' #Писать nologin в качестве соответствующего атрибута в AD может быть не совсем удобно - хрен знает, может в этой системе он 'nologin', а в соседней как раз нормальный юзверь? Ну или просто nologin не в /bin'е лежит ;). Так что - аккуратненько override'им под наши нужды.
nss_ьфз_attribute homeDirectory unixHomeDirectory #А вот тут override'ить уже не выйдет - а жаль. Придется, например, ln'ить /home на /var/mail - КОСТЫЛЬ! 0:)
nss_map_attribute gecos name
nss_map_attribute userPassword msSFU30Password
Правим /etc/nsswitch.conf:
passwd files cache ldap
group files cache ldap
Правим /etc/nscd.conf:
enable-cache passwd yes
enable-cache group yes
Правим pam-файл, вместо pam_ldap'а в auth вполне можно использовать тот же pam_krb5, ибо нефиг %).
Стартуем nscd, делаем getent passwd, работаем :).
Потенциальные грабли решения:
1) ldap.conf'овский override не поддерживает шаблоны, а использовать одни и те же значения на всех машинах сети может быть не слишком удобно. Предполагаемый костыль - расширять схему доп. аттрибутами и map'пить в разных серверах разные.
2) Не понятно, как быть с почтовыми псевдонимами - вести стандартный aliases.db ручками - таки костыль ).

Способ, в общем-то (Ну, хорошо - более, чем!) годный и в случае больших инсталляций (Несколько серверов + ...надцать рабочих станций под разл. рода *nix'ами) нечего лучше и искать не надо (Один раз расширил схему, один раз смастерил конфиги а потом знай-раскидывай их по нужным местам) но для "адын, савсэм адын" сервер хотелось бы что-нибудь попроще.

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

10:50 

Как известно, каждая проблема имеет решение -

- простое, понятное - и неправильное ;). Вот понадобился вам почтовый (SMTP, для ясности ;)) сервер с интеграцией в AD - родной виндовый, ессно, ффтопку, Sendmail туда же (Программа, конфиги которой нуждаются в компиляции существовать, имхо, не должна!) Courier MTA, кнечно, просто великолепно, но Maildir у них какой-то... подозрительный, Exim вы (Ну хорошо, я!) не знаете - "на трубе" остался Postfix.

Итак, что же первым приходит в голову при словах "интеграция в AD"? Правильно, samba winbind. Ставим postfix с sasl2, sasl2 с saslauthd, samba с AD и winbind, конфигуряем smb.conf:
[global]
security = ADS
workgroup =
realm =
password server = *
encrypt passwords = yes
winbind use default domain = yes
idmap uid = 10000-20000 (Кому надо, можно и больше)
idmap gid = 10000-20000
template shell = /bin/false
template homedir = /var/mail/%U
правим krb5.conf:
[realms]
(НАШЕ НЕЧТО) = {
kdc =
}
[domain_realm]
.(наше нечто) = (НАШЕ НЕЧТО)
Стартуем winbind, net ads join -U (admin user) -S (DC), проверяем wbinfo -u, если работает - правим nsswitch.conf - passwd = files, winbind, group = files, winbind. Проверяем id (доменный пользователь) - вот, собссна, и все.
Настраиваем saslauthd: создаем в нужном месте (Platform-specific) файлик smtp следующего содержания:
pwcheck_method: saslauthd
mech_list: PLAIN LOGIN
и запускаем saslauthd с флагом '-a pam'.
Создаем pam-файл для winbind'а (Место расположения опять таки, depend on) с именем smtp, закидываем туда 'auth required pam_winbind.so', проверяем: testsaslauthd -u (доменный пользователь) -p (пароль, ага, прям тут) -s smtp, если ОК, то можно переходить к собственно, postfix'у.
Тут, кстати, тоже ничего сложного:
Вместо permit mynetworks пишем permit_sasl_authentificated, в local_recipient/relay_map 'unix:' меняем (Кому нужно, ага - у остальных и так стоит) на 'proxy: unix' (Ибо нефиг всяким там постфиксям к особо важным файлам напрямую лезть, пусть как все соответствующие системные вызовы используют - заодним и, хе-хе! winbind работать начнет). Стартуем postfix, проверяем.

Просто, не правда ли? Может, не "с закрытыми глазами", но "через полчаса" заработает - почему же так не стоит делать? Допустим, созданный таким образом сотрудник уходит в длительный неоплачиваемый отпуск - что делает администратор домена в этом случае? Правильно, блокирует учетную запись, а что делает winbind со значением UserAccountControl? Правильно, забивает :). Т.е. войти в систему пользователь не сможет, оправлять почту - тоже, а вот приходить она очень даже будет. А если таких пользователей сотни две? Непорядок. А что делать с т.н. "системными" пользователями (Built-in, или самолично созданными для, например, имперсонации служб), которые вроде как почту получать не должны? Winbind, тут, увы, не помошник. Конечно, "не так трудно" завести отдельную карту со списком "запрещенных" пользователей - но нафига нам плодить очередные костыли, там, где можно обойтись без них?
Вот и я думаю, что незачем. Вооружившись этим знанием переходим...
Впрочем, "продолжение в следующей серии" :)

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

10:58 

Сильнее всего меня в моей работе раздражают...

... ситуации, в которых ты "все сделал правильно" но это не хрена не помогает, т.к. "кто-то до тебя где-то что-то не подумал".
Ставлю amavisd-new из портов. УБИРАЮ галку SpamAsassin (Терпеть ненавижу эвристику в таких делах - куча геморроя с настройками и на выходе один черт, потерянные письма), запускаю - хренась! Не могу запуститься, ибо в модуле SA нет пути к SpamAssassin.pm. Ну нако-оооой он тебе, а? Ты ж "типа-без-него" скомпилен? А вот! И приходится лезть в этот трижды долбанный перловый скрипт и выпиливать там "единственный подключенный спам-фильтр". "Не подумали чутка", ога.
Ставлю Openfire + Mysql (Про Mysql я уже говорил многое и разное :), добавить тут нечего, но с SQLITE'ом оно "не взлетело" (Достаточно, кстати, интересным образом, но об этом позже)), в URI для jdbc завожу хост-имя-базу, завожу в базу пользователя, даю ему права цепляться с локалхоста, запускаю... авотхрен! В логах видно, что что ты ей в качестве хоста не пиши, а цепляется оно по fqdn хоста. Ну вот нафига-аааа вообще спрашивать лишние данные, если юзать их не собираешься? Ок, пофиксил пользователя.
В третьей конторе стоит пейратский на всю бОшку Kerio Mail Server с интегреным LDAP'ом для "адресной книги" (Что я думаю о типа-админах, которым одного LDAP'a (Того, что в AD, ага) "не хватает" - здесь приводить не стану). ОК. Переименовываем пользователя во внутренней DB... а во встроенном же LDAP'е юзверь не меняется!!! Чиооооордт! Что я делаю не так, а?

И вот такая дребедень - целый день и каждый день. "Все сделано правильно, но ничего не работает", пилите дальше.

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

14:08 

Не так давно...

...возмущался я головожопостью отдельных представителей роду-племени одминского. Так вот, судя по всему - зря. Это не "он дурак", это мода такая. Гнездо, ага. Оказывается, есть на бескрайних просторах нашей родины ПРОВАЙДЕР, который поступает ровно таким образом: выдает каждому клиенту БЕЛЫЙ IP-адрес из пренадлежащего ему пула, прописывает (Ручками, ОГА - какой-такой Dynamic Hosts Configuration Protocol, о чем это вы? Мы тут программку на Delphi'ях нарисовали, она все-все сама сделает! Ах, да! Для Кор-по-ра-тив-ных клиентов мы можем предоставить 130 D-Link!) DNS + пяток маршрутов (До DNS'а, PPTP-Access Concentrator'ов и пр) - а потом поднимает PPTP-туннель, выдает новый IPшник и NAT'ит весь трафик через новый же шлюз. Profit!
А то, что до этих самых "белых" IP-шников нельзя достучаться извне, то, что долбанный NAT знать не знает и знать не хочет о всяких-разных PPTP/L2TP/IPSec pass-through, то, что дебужить эту ситуацию со стороны чистейшей воды сю-ууур! - это такие, право, мелочи... "Работает же все!"(Ц) Воистину, более мммм... своеобразных решений я еще не видел.

Ну и как обычно, о вечном. Очередные грабли - nmap не больно-то дружит с ngX интерфейсами. Из-под юзера nmap - ок. Делаем nmap -sS - даешь повышение привелегий. Запускаем nmap от root'а... упс!
WARNING: Unable to find appropriate route to ...
ifconfig + netstat -nr - все ОК, роуты есть, интерфейс жив. ping - есть. А вот работать отказывается.
Попытка скормить nmap'у нужный интерфейс при помощи -e ngX успехом так же не увенчалась. Гугль, тоже не обрадовал - мол, да, глюк есть, вроде как есть даже патч - но... с 2006 так и не принят. Абыдна, вай!

@настроение: Повбывал бы!

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

14:20 

Все-таки, программисты 1С...

... очень, очень, очень странные люди. То ли сам инструмент тому виной (См. выше и не только), то ли область деятельности (Страшней нашей бухгалтерии - только Интернет после ядерной войны - и то не факт!) постаралась, то ли "общение-с-бухгалтерами-пенсионного возраста" повлияло, но факт налицо.
Задача - на регулярной основе выгружать данные из клиент-серверной программы (Сервер на СУБД Firebird) в 1с. 1с - 8.1. Реляционная БД. 1С-ка. Все просто, да? Ну там (ODBC-ADO-OLE)+SQL=1C, драйверов для FB в сети в количестве, примеров кода (Именно для 1ески) - хоть мм-ммм... ешь, чего еще-то?
Но нет, мы легких путей не ищем! А дайте нам локальную копию БД и мы в монопольном режиме, как учили в далеком 9х-м году на Delphi ее распотрошим. Ручками, ога. Как файл. В обход SQL-сервера. "Зачем нам кузнец? Нам кузнец не нужен!"(С)
Клиент-серверное приложение. Сильно больше одного пользователя, причем в нескольких городах. Копия базы. Нет, Firebird умеет делать консистентные бэкапы "на ходу", умеет он и создавать новые БД из этих дампов, но блин-блин-блин! FB стоит на виндах (В общем-то, дальше можно и не продолжать). В режиме SS, т.е. больше одного проца он не получит никак, хоть на 8-ми вёдерную машину его водрузи, а бэкап хотя бы пары гигов со всеми чексуммингами и прочей мутотенью - дело мягко говоря, не слишком быстрое. "Есть мнение"(ТМ), что в скором времени конторе потребуется "новый, мощный сервер"(ТМ) :shuffle:

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

09:47 

Сделал очередную...

... (Вторую, если быть точным ;)) попытку познакомиться с четвертыми кедами. Не помню уже, что мне не понравилось в первый раз, но сейчас первым (А так же вторым, третьим, четвертым и пятым!) впечатлением было "Вааааау! Оооо! Аааа! Ну вы, блин! Это ж надо ж!" - усе сияет, переливается, движется и пэ рэ, все красивенько, анимированньенько и местами даже вполне удобно. Desktop с rooms'ами, виджетики, панель - 7-ка однозначно отдыхает следующие года три, "родные" приложения может и не "лучшие в своем классе", но вполне работают - казалось бы, ляпота... если на нее любоваться, а вот если начать работать...
Konqueror - хороший браузер. Действительно, хороший - мне оч-чень понравился (Не Crome(ium) - нет, но явно резвей-удобней FF) - вот только - сюрпри-иииз! Работать с HTTPS-proxy с авторизацией отказался кат-тегорически, от слова "совсем". В TCPDump'е видно, что на "proxy authentification required' "завоеватель" отвечает ACK'ом... и инициирует новую сессию с. HTTP-прокси с авторизацией работает нормально.
Через полтора часа работы dolphin начал жрать 20% проца. Почему-зачем? Б-г знает. Впрочем, больше оно не повторялось...
Kopete - хороший ПЛОХОЙ im-клиент, но в общем-то, настраивается и работает. Вот только в процессе настроек - умудряется зависать и подтормаживать (Аж два разА, ага) - в работе ничего подобного не было, но "осадок остался".
Потом навернулся d-bus (И почему я ну ни капельки не удивлен, а?) - а вместе с ним и все остальное. Опять таки, в следующие три дня ничего подобного не было - хотя отдельные приложения падали, да.
Kmail по ощущениям с третьей версии изменился не сильно и ничем не удивил - есть. Работает.
Amarok - аналогично. Малость лучше "Windows Media Player'а" по usability, но все равно - "не нескафе".
Koffice'у все еще не хватает поддержки MS'овских форматов (Эт-та понятно, но хотя бы rtf к Kwrite'у могли бы и прикрутить!).
Konsole - традиционно великолепна, xterm (Бууаа-га-га!) рядом не валялся.
Ну и тадэ и та пэ.
В общем, "Роисся, вперде!" - в смысле, "впереди планеты всей, но глю-ууучное, шотрындец". Работать можно, но, но, но...
P.S. - Версия KDE - 4.4.3, дистрибутив - Mandriva 2010.1 (Spring) на virtualbox'е.

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

09:45 

О граблях, вестимо.

"Третьего дня"(ТМ) решил я обновить систему на недавно вышедшую 8.1 - на виртуальной машинке все вроде как ОК, можно и на личном букваре поэксперементировать, ага. Правим sup-файл для дерева сырцов, обновляем дерево, make buildworld-kernel-installworld-kernel, НЕ ЗАБЫВАЕМ (Оттож!) обновить gptzfsboot в первой партиции, ребутимся... авотхрен!
error 1 lba 48
error 1 lba 1
No ZFS pools located, can't boot
Хм. Странно. Впрочем... в 8.1 ZFS 14 версии, а в 8-ке - 13, может по тому и не находит? Надо бы версию пула обновить, ага. А пока - установим старый gptzfsboot + копирнем скомпиленый с ZFS'ом loader от 8-ки. Работает. За десять минут до конца рабочего дня - zpool upgrade -a, gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ad4, ребут.
error 1 lba 48
error 1 lba 1
No ZFS pools located, can't boot
Хм. По проторенной дорожке - старый лоадер... авотхрен! Версия should be 13, ага. Приплыли. Смотрим, куда именно. Google ничего сильно вразумительного не говорит (Большая часть камрадов тупо забыла проинсталлить gptzfsboot "куда надо", меньшая - ловит кайф с current-веткой и сообщает, что уж в RELEASE'е-то все ОК) - тындекс и спрашивать бесполезно, придется ручками.
ls /usr/src/sys/boot/i386/gptzfsboot - никаких сырцов, один Makefile, в котором прописана статическая линковка gptboot + zfsboot + btx + еще какая-то хрень. Ага. fgrep'ом смотрим, где именно сидят сообщения об ошибках - сидят они в zfsboot.c, вот только к этому самому .c прилагается еще и .S, написанный на ассемблере. Мать-мать-мать. Начинаем смотреть - main вызывает probe_drive(), probe_drive() вызывает drvread(), там инициализируются несколько регистров, вызывается "ассемблерная вставка" - и выдается сообщение об ошибке. Два разА, ага. Дело ясное, что дело темное.
Лезем на svn, начинаем читать комментарии - что и зачем джамшутили в этом самом zfsboot.c - создается впечатление, что проблема вызвана включением 64х битной LBA вместо старой 48-ми битной, но как с этим бороться... версия ДО этого самого включения без сильномогучего бубна не собирается, что и как "править ручками" - хрен знает... трабла, в общем.
Неразрешимая? А вот и нет ). "Совершенно случайно" у меня в букваре обнаружилась SD-карта на 1 гиг, с которой комп вроде как даже соглашается грузиться - форматим ее под UFS2, копируем туда /boot, gpart'ом же ставим MBR, меняем /etc/fstab, ребутимся, меняем boot sequence, ребутимся... и работаем.
А вот что делать с "боевыми" серверами в которых карт-ридеров с "совершенно ненужными" SD'шками нет - Б-г весть. Экспериментировать как-то того... желания нет.

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

17:13 

Наступил на целую кучу грабель...

... с ZFS boot'ом (Кто бы мог подумать, что порядок загрузки модулей opensolaris.ko и zfs.ko играет роль, а? При том, что в "loader prompt'е" zfs.ko вполне себе грузился...). Добила меня необходимость собирать loader из chroot'а (Ну, да, ну да - вумные прошареные люди сделали это СИЛЬНО до, честь им и хвала), одно радует - скилл растет.

@темы: FreeBSD, Вендекапец!, Жизнь, Работа

10:14 

В то время как Все Мировое Сообщество...

... буквально задыхается от нехватки IPv4-адресов и вовсю подумывает о внедрении IPv6 отдельно взятые несознательные представители одминского роду-племени умудряются NAT'ить реальные IP-адреса!!! Досталась недоумку из "муниципального объединения" (Ключевое, по видимому, слово!) цельна подсеть класса С от одного провайдера (С безлимитным трафиком inside) и безлимитный канал "поширее" от другого "...ну он один и удалил"(С) и этот товаристч не придумал ничего лучше, чем пронатить весь трафик от разбросанных по половине города клиентов через "безлимитный" интерфейс. На все вопросы в стиле "А NAT-то тебе НАФИГА?!" - отвечает "так дешевле"(Ц). Policy, мать её, based routing, ага. Настроено не иначе как по "хаутую" с OpenNET'а - впрочем, народ говорит, что это уже аф-ффигеть прогресс, мол раньше-то один non-transparent HTTP-proxy стоял и усе, плавайте как хотите, а сейчас она! даже торренты работают, пусть и "в одну сторону"!
Это ж до какой степени нужно _не понимать_ стек TCP/IP, чтобы такой фигней заниматься, а? Впрочем, товарищ хотя-бы старательный - по первой просьбе быстренько "пробрасывает" порты на нужный сервер, вот только для полноценной работы портов этих надо, да и не все за NAT'ом нормально работает, да с DNS'ом ситуация странная, да службы настраивать через заднее крыльцо приходится, да PKI не вполне понятно как прикручивать, да... Но, в общем-то, все работает, даже странно.

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

15:48 

И еще одни шикарные...

... грабли. Дано: samba в роли PDC. Трэба - закинуть на этот сервер всякое-разное в количестве. Ясен пень, хочется "разложить" все это не абы как, а по разным jail'ам, ибо. Вот только - сюрприз-сюрпри-иииз! Сволочной nmbd привязывается к *.137/8 и штатного способа изменить это поведение у нас нет (Параметры "interffaces", "bind interfaces only" и "socket address" на nmbd не влияют, о чем в man'е и сказано).
Ок, сделаем, как умные люди говорят - перекинем "проблемный" сервис в jail, и пущай там привязывается к чему ему угодно, хе-хе! Сказано - сделано, но, увы! Кто бы мог подумать? )))) Вышеописанное поведение злобного демона, оказывается, имеет под собой Глубокий Смысл - запущенная таким образом samba на отрез отказывается получать broadcast'ы (Что, собственно, в высшей степени логично - хрен тебе, а не доступ к "сырому" интерфейсу изнутри jail'а!). "Штатного" способа собрать samba'у с поддержкой jail'а в портах не обнаружилось.
Тупик? Авотхрен! Запихиваем в соседний jail связку DNS+DHCP (Вроде как даже описывал когда-то), кидаем в smb.conf "wins support = yes" и "dns proxy = yes", пишем в resolv.conf'е адрес соседнего jail'а и раздаем через тот же DHCP samba'у в качестве еще и WINS сервера. Работает!
Для пущего счастья еще бы и службу "computer browser" на всех клиентах посносить, ибо нефиг где попало broadcast'ами мусорить, но, в общем-то, и так сойдет, наверное.

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

11:20 

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

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

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

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

16:04 

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

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

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

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

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: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: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, Работа

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

главная