Ознакомьтесь с нашей политикой обработки персональных данных
  • ↓
  • ↑
  • ⇑
 
14:27 

Не только о Google...

... или "я не люблю". Есть в современном windoсофтостроении несколько тенденций, которые мне ну оч-чень активно не нравятся, и эн-ная их часть "удачно" воплотилась в google chrome.
Вот например, скажите мне, что за ди-зай-нер придумал "online-installer'ы", а? Нет, я знаю, что не google'вцы (Первый раз столкнулся в исполнении MS при попытке установить net.framework), но все же? А что мне делать, если "вот прям щаз" интернета нет, м? А если эту м-мммуйнюшку надо воткнуть на стопицот компов сразу? От только нинада рассказывать про "кэш прокси", ибо нормальной (НЕ ntlm, и не "с помощью авторизатора") аутентификации на прозрачном прокси я почитай что и не видел, а с прокси классическими эти м-ммм... "продукты творчества" работать как правило не умеют (Видимо, basic-аутентификация Слишком Новая Технология, ага).
А эта "новая" политика обновлений? "Кручу-верчу, обмануть хочу", что-то там шуршу, туда-сюда посылаю, а потом упс! Перегрузись, и будет тебе "зашибись". Или не будет, ага. Не-ееет, нормальное ПО должно обновляться по требованию, ИЛИ уведомлять пользователя о выходе обновлений по _заданному пользователем-же_ расписанию (Желательно при этом еще и changelog показывать, да...), остальное - гнусная ересь. Жужель апдейт с её новой "политикой конфиденциальности" - "великое нестроение".
Дурная привычка пользоваться настроками ё-моё и вовсе, ни в какие ворота не лезет. Мало того, что ничего хорошего от этого самого осла ждать по определению не следует ;), так и возможности это ограничивает очень и очень сильно. А что если я хочу потестировать настройки фильтра на прокси, для чего запускаю еще один экземпляр squid'а на нестандартном порту? А что если я хочу воспользоваться tor'ом? Анонимайзером? Баннер-фильтром (Для chrome'а вполне себе актуально)? "Ищите другой браузер".
Отсутствие (Или уже прикрутили? :)) plugin'ов - скорее плюс (Все же браузер это именно _браузер_, а то, что некоторые девАчки умудряются сделать из IE или FF - приличными словами и не охарактеризуешь), но общая бедность настроек - никуда не годится. Кнопка "сделай мне зашибись" НЕ РАБОТАЕТ. Никогда. Люди - они разные, и потребности у них тоже того... различаются.
В общем, впечатление от подобного рода софтин - неплохо "поиграться дома", но "мы таких в коммунизм не возьмем!" в корпоративе подобному софту делать решительно нечего.

@темы: Вендекапец!, Работа

13:39 

Не ладно что-то в датском королевстве

Или nmap как-то м-ммм... страннохреново работает. FreeBSD 7.3 i386, nmap 5.21:
nmap -sP 192.168.x.x/24 - выдает список хостов, сам себя не находит
sudo nmap -sP 192.168.x.x/24 - выдает только сам себя (Запуск от root'а - та же фигня)
sudo nmap -sP 192.168.x.x/24 -oN /dev/null - выдает список хостов, включая себя.
ОК, ставим nmap 5.31 из портов:
nmap -sP 192.168.x.x/24 - за две секунды выдает список хостов
sudo nmap -sP 192.168.x.x/24 - дает тот же список но за 30+ секунд
ЧТЯДТ?! Не запускать же его внутри скрипта, в самом деле, через sudo от имени обычного юзверя, а?

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

10:06 

Шок - это по нашему!

Звонит девочка-менеджер из удаленного офиса одного из клиентов и просит проконсультировать по личному вопросу:
"У меня дома LCD-монитор накрылся, скорее всего - дроссель, он перед окончательной смертью так характерно свистел, а теперь подсветка не работает, но матрица жива - если фонариком сбоку подсветить - все видно. Что с ним можно сделать, а?"

@настроение: Чувствую себя "офисным планктоном" ))

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

16:16 

Есть у М-софта замечательная штука...

... WSUS называется. "Свое казино с блэк-джеком и шлюхами", ага. Сервер обновлений windows для своей сети. Вещь можно сказать, незаменимая.
Вот только с прокси-с-аутентификацией работать не умеет, хоть и притворяется ;). Возможность использовать прокси для синхронизации есть, и возможность эта даже работает, а вот собственно _закачка_ одобренных обновлений осуществляется "фоновой интеллектуальной службой передачи" a.k.a. BITS, которая настолько "интеллектуальна", что аутентифицироваться на проксюке не умеет. Сюрпри-иииз! Велосипед похож на настоящий, но не работает, с чем его и поздравляю. Пришлось рисовать отдельный экземпляр прокси с отключенной аутентификацией и ограничением доступа по source-адресу WSUS'а и destination url *().microsoft.com (Там туева хуча адресов, по которым он _может_ ломиться).
В очередной раз шлю лучи поноса по известному адресу.

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

15:50 

Основной прикол с ручным созданием...

... browse.dat'а
"DC1" 408c9b0b "Domain controller for WORKGROUP" "WORKGROUP"
"IBM11-9" 40011203 "Штрахер" "WORKGROUP"
не второе поле - "код" (Вроде-как-уникальный, но хрен поймешь для чего нужный )), а третье - "комментарий", ради которого, вроде как, весь сыр-бор и загорелся. Как _задать_ его для каждого конкретного компа понятно ("Computer description" в Windows или server string ="" в samba'е), а вот как его _получить_? Вопро-оооос! Вдумчивая курежка man'ов к утилитам samba suit'а к результату не привела, гугль тоже не спас - пришлось воспользоваться Методом Научного Тыка. Description вполне себе выдает smbtree - но! берет он его как раз из browse.dat'а ;), или с broadcast'а - о чем выше ). Smbclient + smbutil его вообще не видят. Зато rpcclient с параметром -c srvinfo host выдает нечто-то вроде:
IBM1-3 Wk Sv NT PtB Валентина Антоновна Каб-1 Комп-3
platform_id : 500
os version : 5.1
server type : 0x11003
что вполне потрошится тем же ex'ом (Sed + awk не знаю, и, как следствие, не люблю ;)) до нужного состояния.

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

11:23 

И почему героически поборов одни...

... грабли тут же встаешь на другие, а? SAMBA PDC, master browser, local browser - все чин-чинарем, выборы выигрывает, клиентам светится, сетку выдает... первые 20 минут даже всю, а потом комп за компом из "сетевого окружения" исчезают. smbtree генерит список не то, чтобы полный - но более сущесвенный, нежели получают винды, nmblookup -b '*' показывает 3 компа, зато запущенный "по следам" nmap'a через тот же broadcast четко резолвит имена всех активных хостов в сети, browser.dat регулярно обновляется и содержит тот же список, что получают клиенты, dhcp+ddns настроены и работают, тот же nmap резолвит все и всех ). Гугль находит толпу (Ну хорошо, не "толпу" - "с пяток") страдальцев с той же бедой, но ответа не дает.
Постепенно прихожу к мысли заполнять browse.dat ручками по результату того же nmap'а, благо формат у него простой - но это какой-то совсем уж непотребный костыль выйдет... :shuffle:
Будем надеяться, что утро вечера поумнее, и понедельник будет не только "тяжелым", но и "результативным" днем!

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

11:15 

Эх, не знали создатели named...

... что "явное лучше неявного"(С), не дождались рождения языка Python ;), иначе не стали бы _неявным_ образом устанавливать значение allow-recursion в { localhost; localnet; };. А так - named запускается при старте системы, когда ни о каких ng*-интерфейсах (Создаются "по требованию", ага) еще и речи нет, о VPN-сети он нифига не знает, и рекурсивно запросы разрешать отказывается - nslookup-то справляется (МОЛЧА!), а вот gethostbyname уже не проходит.
Зато DIG с любимой BSD'шечки молчать отказывается, и честно заявляет, что за авторитетным ответом - вот по этому реффералу :) - дальше man + vi named.conf + rndc reload и все ОК.

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

10:54 

Грабли и костыли.

Есть центральный офис. Есть филиальная сеть. Есть VPN. И есть м-ммм... разновсяческие провайдеры, в том числе и pptp'шники. В результате - есть локальная сетевуха со своим серым IP'шником, DNS'ами и "шлюзом по умолчанию" (Провайдеру, вестимо, лениво забивать route'ы для всех своих AC, список которых, к тому же может меняться - а DNS round-robin'ом выдает и все океюшки). Есть pptp-соединение до провайдера - опять таки, со своими DNS-серверами (Не спрашивайте меня "зачем"!) и своим шлюзом по умолчанию. И есть VPN-соединение до центрального офиса, опять же со своим DNS'ом и default gateway'ем (Хочется пустить I-net трафик филиальной сети через прозрачныйproxy центрального офиса с логгированием, фильтрацией, аутентификацией и прочими радостями жизни).
На выходе почему-то трабла - судя по всему не работает системный gethostbyname()/getaddrinfo() - сторонние программы не резолвят имена, а специализированные утилиты (Тот же nslookup) ответ дают. Метрики на маршрутах правильные (У VPN'а наименьшая, ага), dial-up connections в adapters&bindings на верху находятся, все пингуется-опрашивается-ходит, а gethostbyname как не работал, так и не работает :(.
В качестве временного "костыля" поднял non-transparent proxy для удаленных офисов и докрутил браузеры - но как-то не радует меня данное решение. Куды бечь, на что смотреть - Б-г знает, мне пока не ведомо :(.

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

10:13 

Еще немного о SAMBA'е...

... в качестве PDC. Bydefault'но samba пред(по)лагает использование roaming-профилей с указанием секции [homes] в smb.conf'е, раздачей домашних папок с соответствующими правами доступа (pam_mkhomedir спасает, если что ;)) и прочими радостями жизни, что нафиг никому не сдалось (Учитывая неискоренимую привычку большинства юзверей хранить стопицот фильмов, песен, фоточег и прочей фигни на рабочем столе). Есть проблЭма? Есть решение! man smb.conf называется :).
Читаем:
logon path blah-blah-blah Disable the use of roaming profiles by setting the value of this parameter to the empty string. For example, logon path = "".(C) Угу. Только не работает. Впрочем - и не должно, т.к. настройки в smb.conf'е перекрываются данными из "профиля пользователя" в tdb-backend'е а пользователи уже созданы. ОК. pdbedit -L -v, смотрим - ага, так и есть, logon path задан. pdbedit -r -u user -p "", проверяем... не-а. не работает. Странно. Гугль гугль ты могуч... ага, нас таких страдальцев до и больше - надо внимательней читать man'ы: "Warning Do not quote the value. Setting this as "\\%N\profile\%U" will break profile handling."(С) там же. Тут квотим, тут не квотим, там селедку завернули empty string обозначили... pdbedit -r -u user -p '' - и все работает. В smb.conf'е пишем просто logon path = - и все тоже работает!

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

16:18 

Рабочее, матерное.

Какой трижды ...!!! сукин сын в мелкоцопте придумал скрывать панель "параметров" до нажатия кнопки ALT??? Почти час искал adapters&bindings! Найду - убью, в общем.

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

14:13 

А мужики-то не знали!

Оказывается, в SAMBA'е еще со времен 3.0.11 появилась возможность делегировать управление и root'а маппить в samba-пользователя уже не надо - достаточно сделать net rpc rights list
и раздать соответствующие права из списка
SeMachineAccountPrivilege Add machines to domain
SeTakeOwnershipPrivilege Take ownership of files or other objects
SeBackupPrivilege Back up files and directories
SeRestorePrivilege Restore files and directories
SeRemoteShutdownPrivilege Force shutdown from a remote system
SePrintOperatorPrivilege Manage printers
SeAddUsersPrivilege Add users and groups to the domain
SeDiskOperatorPrivilege Manage disk shares
при помощи net rpc rights grant пользователь|группа <права> и будет у нас свое казино с блэк-джеком и шлюхами, a.k.a. NT4 Domain, управляемый "виндовыми" пользователями ))).

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

14:12 

Окрошка:

Во времена оны плакался я, что в 8-ке, дескать, fdisk с bsdlabel'ом как-то "не так не работают" - что могу сказать сейчас? "Зато мы делаем танки!" Зато в 8.1 хорошо работает gpart, так что поднять поверх gmirror'а (mirror'им диски целиком) gjournal (С отдельным разделом под журнал) удалось без всяких танцев-с-бубнами и костылей, с первого захода, аминь, аминь, аминь.
С Б-жьей и Старших Товарищей помощью разрешился вопрос с триждыдолбанным KMS - данные его внутреннего LDAP'а вполне себе edit'ятся, но... ЧЕРЕЗ WEB-INTERFACE only ну или там через MS Аутглюк из-под админ-юзера (Кто, ну скажите мне, кто настраивает почту для admin-user'а?) !!! Повбывал бы, ей-ктулху.
Отдельные лучи поноса Intel'у - три пересборки ядра FreeBSD + полдня танцев-с-бубном прежде, чем выяснилось, что DG41CN AHCI НЕ поддерживает. Абыдна, да - 'device ahci' + 'opions ATA_CAM' мне, в общем-то, понравились...
Ах, да - еще себе в копилочку - практически случайно нашелся отличный (На первый взгляд!) эмулятор терминала - termit. Умеет работать с tab'ами, менять кодировку и... и больше ничего ). Из всех зависимостей - только что-то GTK'шное (Виджеты для терминала, вроде бы) - на вид именно то, что надо...

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

16:29 

Я это самое...

... "десятиногое ракообразное". Криведко, в смысле. Решил поднять "собственное казино с блэк-джеком и шлюхами" собственный W2003SR2 для разбирательств с RADIUS'ом в тихих домашних условиях. Создаю VM'ку на virtualbox'е через консоль:
VboxManage createvm WSERVER --ostype Windows2003 --remember
VBoxManage modifyvm WSERVER --memory 2048 --acpi on --ioapic on --cpus 1 --hwvirtex on --hwvirtexecl on --boot1 dvd --boot2 disk --boot3 none --boot4 none --nic1 hostonly --hostonlyadapter1 vboxnet0
VBoxManage createhd --filename ./VHD/server.vhd --size 20 --remember
VBoxManage storagectl WSERVER --name hdd0 --add sata
VBoxManage storageattach WSERVER --storagectl hdd0 --port 0 --device 0 --type disk --medium ./VHD/server.vhd
VBoxManage storageattach WSERVER --storagectl hdd0 --port 1 --device 1 --type dvd --medium host:cd0
Буй! Не могу, говорит, приаттачить к данному контроллеру. К НЕданному scsi, например - тоже не смог. А вот к ide - самое оно.
VBoxManage storagectl WSERVER --name hdd1 --add ide
VBoxManage storageattach WSERVER --storagectl hdd1 --port 0 --device 0 --type dvd --medium host:cd0
Да, кстати, если кому интересно, чтобы подключить host drive во FreeBSD (И, наверное, не только ;)) нужно воткнуть atapicam, и раздать права на файлы устройств - закинуть юзера в группу operators и отредактировать devfs.conf, чтобы права раздавались при создании файлов
VBoxHeadless -s WSERVER -n -o - Запускаем!
Все хорошо, только демонстрационный диск с 2003 сервером не видится. Хм. Ставлю диск с Frenzy (LiveCD на базе Freebsd. заточенный под системное администрированике) - грузится. ЗАГОВОР! Ок, вынимаю диск - No bootable medium found
Дропаю VBoxHeadless, ставлю другой диск - то же самое. Монтирую образ - никак. Редактирую машинку, меняю контроллеры, танцую с бубном... ну НИКАК и все. Уже и DELAY на биосе в VB поменял, и тип меню сменил, и все что можно поотключал... полдня убил.
Потом цепляю в очередной раз VBoxHeadless с паролем "1" (Задолбало сто раз нормальное нечто вводить!)... а он меня с ним не пускает! Со старым... есть. Это жжж! не спроста! Смотрю в процессах... с-зззараза! VBoxHeadless, оказывается, только от консоли отвалился, а не дропнулся к чертям собачьим, как ему требовалось - в результате я полсуток коннектился к одной и той же машине!!! ЛЕЖАЩЕЙ машине, заметим.
Дропнул в процессах VBoxHeadless, запустил по новой - работает! Океюшки, живем!

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

16:15 

Продолжение RADIUS'ной...

... истории. В логах периодически всплывает rad_init_send_request Failed: sendto -1: Permission denied. Такое ощущение, что он тупо не может создать сокет по одной из двух причин - либо IPADDR_ANY конфликтует с имеющимся в системе Jail'ом (Ну-ууу... вряд ли. Я бы понял, если бы jail не поднимался, или если бы все происходило изнутри jail'a - но в host-системе?), либо сокет пытается прибиндиться к одному из protected-портов sin_port=htons(0) - что тоже вряд ли, ибо mpd5 стартует все-таки от root'а...
Надо навтыкать всякого-разного debug'а в radlib.c и пересобрать mpd - но делать это на рабочей машине в рабочее же время как-то... не хочется. Впрочем, можно попробовать сменить destdir у порта и поставить еще одну версию... буду думать дальше.

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

16:11 

Очередные грабли

FreeBSD 8.1. mpd 5.5. l2tp. Настроено. Работает. Вести mpd.secret достаточно быстро достает ;) решаю настроить аутентификацию через RADIUS.
На Windows 2003R2 с DC (Дети, НЕ ДЕЛАЙТЕ так! DC и RADIUS на одном компе - решение для нищебродов ;)) поднимаю IAS. Создаю клиента RADIUS, задаю shared secret, включаю подпись запросов, создаю политику доступа, применяю по nas_ip_address и nas_id, разрешаю доступ. В аттрибутах пользователя включаю все, что нужно ;).
Перехожу к mpd:
set radius config /usr/local/etc/radius.conf (Ибо нефиг палить пароли в конфигах ))
set auth enable radius-auth
set radius me
set radius identifier
set radius enable message-authentic
Перезапускаю, ломлюсь - фигу. В логах виндей - "неправильная подпись". ОК, снимаю галку с требованием подписи и выпиливаю message-authentic, а вот дальше начинается СТРАННОЕ.
В виндах - все ОК, юзверю разрешен доступ. tcpdump показывает, что ответ от IAS'a вполне себе прилетает, а в логах mpd - "No valid RADIUS response". Ага, думаю. Дело в радиус-атрибутах! Смотрю в доки по mpd - и впрямь, Framed-Protocol в respons'e нифига не поддерживается, а MS гордо шлет 'PPP'. ОК, выпиливаю нафиг все доп. атрибуты RADIUS'а в политике IAS'а. По tcpdump'у и впрямь видно, что ничего лишнего не шлется... вроде как. Результат тот же самый.
Многа думаю.

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

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'е юзверь не меняется!!! Чиооооордт! Что я делаю не так, а?

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

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

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

главная