Разработка сайта для Вашего бизнеса. Веб дизайн. Дизайн логотипа, фирменного стиля, рекламная фотография . Комплексный рекламный креатив.

Ralex. We do the work.
На рынке с 1999го года. Средняя ценовая категория. Ориентация на эффективность решений.
Ознакомтесь с нашим портфолио
Узнайте больше о услугах
Свяжитесь с нами:
E-mail: [email protected]
Tel: (044) 587 - 84 - 78
Custom web design & дизайн и разработка сайта "под ключ"
Креативный, эффективный дизайн. Система управления сайтом (СУС).
Custom flexible разработка систем электронной коммерции
Система e-commerce разрабатывается под индивидуальные потребности. Гибкая функциональность.
Search Engine Optimzation & оптимизация под поисковые системы (SEO)
Постоянная оптимизация и мониторинг сайта в поисковых системах. Достигаем результата быстро и эффективно
Custom logo design & дизайн логотипа и фирменного стиля
Многолетний опыт. Огромное портфолио. Уникальное предложение и цена.
профессиональная рекламная фотография
креативно, смело, качественно
Custom logo design & рекламный креатив. дизайн рекламы
Многолетний опыт. Огромное портфолио. Уникальное предложение и цена.

OpenNET: стаття - Авторизація для FreeBSD на основі доменних акаунтів Win2K (auth freebsd win domain samba pam)

Авторизація для FreeBSD на основі доменних акаунтів Win2K (auth freebsd win domain samba pam)
Ключові слова: auth

Наша взаимовыгодная связь https://banwar.org/

, freebsd , win , domain , samba , pam , ( знайти схожі документи )
From: Чижиков Володимир <skif at owe.com.ua> Newsgroups: email Date: Mon, 18 Oct 2004 14:31:37 +0000 (UTC) Subject: Авторизація для FreeBSD на основі доменних акаунтів Win2K Авторизація на FreeBSD на основі доменних акаунтів Win2K або що таке winbindd + pam свого часу у мене гостро стало питання переходу моїх користувачів з ОС Windows на будь-яку іншу операційну систему, аби вона була безкоштовною. Ну все думаю розуміють що таке ліцензійні ігри і з чим їх їдять. Але це відступ. Ліричний. І так стало питання. Користувачів начебто і не дуже багато - трохи більше півсотні, але ж учеткі треба якось вести, давати людям паролі та інше. Так як я є прихильником ОС FreeBSD, то вибір став природно очевидний. Залишалося одне - як все це центр алізовать. Якби не наявність спеціалізованого софту, як-то 1С, Клієнт-Банк під Windows і ряду інших прог, то все б закінчилося тихим переїздом на FreeBSD з установкою супутнього софта і установкою YP / NIS-домену. Але віндового сервера прибрати ну ніяк не виходило, тому було прийнято соломонове рішення, залишити два термінальних сервера (основний і резервний) під Win2k Server, а користувачів пересадити на ФРЮ і все інше для своєї роботи вони повинні брат з терми нала - в фінансовому плані економія за підрахунками виходила в районі 20-30 тисяч вічно зелених. Загалом все було за. Бентежив одне. І тільки мене. ЯК ВСІМ ЦИМ РУЛИТЬ. Хто супроводжував кілька доменів одночасно - той зрозуміє. Та й не змусиш милих бухгалтерки запам'ятовувати відразу два пароля. Так вони на 1С запам'ятати ніяк не можуть, а тут тільки для входу в систему. Потикавшись по форумам, погортавши документацію, довелося відразу відмести варіант з LDAP, хоча він сильно підкуповував, але в разі мого (вашого) догляду і приходу чергового студента на місце адміна все це впаде найпізніше через місяць, а ми повинні побудувати щось надійне і робоче без особливого нагляду сильними світу цього. І так вибір зроблено - Samba, з усіма її плюсами і мінусами. А так же з підтримкою winbind. Ну все, передмова ми закінчили, тепер почнемо описувати мережу. І так наші вихідні дані: - є 2 термінальних сервера, - є ~ 50 хостів, яким судилося стати чесними робочими станціями на FreeBSD, - мережа з адресним простором 192.168.10.0/24, 192.168.20.0/24, 192.168.100.0/24, - термінальні сервера мають адреси 192.168.10.252 і 192.168.10.254, на останньому встановлений сервер WINS, - робоча станція, яку ми будемо перелопачувати має адресу 192.168.10.1 і іменується вона, ну нехай, server, - ім'я домену OWE (тут підставите своє, а мені простіше це - звик) І так вихідні дані є. Так що приступаємо. Для цього нам знадобитися samba третьої версії (можна і другий, але так уже склалося, що найбільше я використовую саме третю, в ній просто є багато смакоти, в даному конкретному випадку це була samba-3.0.7,1) і FreeBSD 5.2. 1 - ви можете, в принципі, використовувати і більш ранні / пізні версії, але все це я творив саме на цій версії ОС, а коли друкував статтю, то на машині саме з цією версією, а точніше: root @ server #uname -a FreeBSD server.owe 5.2.1-RELEASE-p10 FreeBSD 5.2.1-RELEASE-p10 # 3: Thu Oct 14 9:54:40 EEST 2004 [email protected]: / usr / src / sys / i386 / compile / SKIF i386 root @ server # Тепер наступний наш крок - установка самби. Я двома руками за порти. ІМХО - тут багато корисного, а пакаджі хоч і ставляться швидко, але дуже обмежені і дуже прив'язані до того софту, що стоїть у людини справи пакадж. Загалом, йдемо в порти, у мене це (): root @ server # cd / usr / ports / net / samba3 / root @ server # make Після цього у нас з'явитися подібний екран: Options for samba 3.0.7,1 [X ] LDAP With LDAP support [X] ADS With Active Directory support [X] CUPS With CUPS printing support [X] WINBIND With WinBIND support [] ACL_SUPPORT With ACL support [X] SYSLOG With Syslog support [] QUOTAS With Quota support [X] UTMP With UTMP support [X] MSDFS With MSDFS support [] SAM_XML With XML smbpasswd backend [] SAM_MYSQL With MYSQL smbpasswd backend [] SAM_PGSQL With PostgreSQL smbpasswd backend [] SAM_OLD_LDAP With Samba2.x LDAP smbpasswd backend [X] PAM_SMBPASS With SMB PAM module [X] POPT With installed POPT library [OK] Cancel в принципі можна все це зробити руками в Makefile, але навіщо собі ускладнювати життя? Так, якщо ви щось неправильно отконфигурировать і хочете повернутися до цього віконця - make config поверне його вам. І так, в цьому вікні відзначені Х поля за замовчуванням, і ті, які я зазначав. Ви можете поекспериментувати на дозвіллі, ну а поки ми продовжимо. І так після make виконуємо, якщо вона відпрацювала без проблем, make install, якщо немає, то шукаємо причину і усуваємо. root @ server # make install && make clean && rehash У моєму прикладі видно, що я зробив відразу make install && make clean && rehash - тобто в разі вдалого виконання make install - установки скомпільованих make початкових кодів - будуть "зачищені" сліди компіляції та оновлені установки шела. Для самби це не актуально, але тут, на жаль, моя звичка. Корисна. Ну ось. Тепер ми всі встановили. Залишилося тільки налаштувати все це добро. А робити ми будемо все це руками. Для простоти нічого незрозумілого робити такого не будемо, для об'єктивності і тями використовувати SWAT теж не будемо. Всі рядки, не зворушені нами залишаються за замовчуванням, як є. Нам потрібна поки мінімально робоча система. Всі шедеври і збочення потім. І так приступаємо. Заходимо / usr / local / etc /, де у нас лежить конфиг за замовчуванням samba, і робимо його копію, з потрібним нам розширенням: root @ server # cd / usr / local / etc / root @ server # cp smb.conf.default smb.conf Ось тепер у нас є конфігураційний файл. Починаємо його редагувати. [Global] workgroup = OWE server string = Samba Server security = DOMAIN hosts allow = 192.168.10. 192.168.20. 192.168.100. 127. netbios name = SERVER load printers = yes password server = * І так перший рядок - workgroup = OWE - це ім'я нашого домену, друга server string = Samba Server, рядок привітання сервера, точніше, що він буде писати при перегляді в мережевому оточенні Тип безпеки security = DOMAIN це третій рядок, тут, в принципі можна використовувати і ADS, але я використовував саме DOMAIN, ADS більше підійде для мереж з Win2k3 серверами. hosts allow = 192.168.10. 192.168.20. 192.168.100. 127. - рядок описує, яким хостам дозволено звертатися до сервера. У вихідних даних ми вказали, що адресний простір мережі у нас 192.168.10.0/24 - воно відповідає 192.168.10., Все інше можна прибрати, крім 127. - це позначення мережі 127.0.0.0/8 Тобишь, мережі loopback інтерфейсу, того самого , якому належить адреса 127.0.0.1, втім, як і всі інші з цієї мережі. load printers = yes - підключати чи ні принтера, я думаю, варто, хоча б тому, що вони є. Один з найцікавіших в цьому списку параметрів, параметр password server = * - саме їм ми вказуємо, який сервер буде перевіряти паролі. У мене їх два і в разі виходу одного з ладу, другий повинен продовжувати авторизувати користувачів, саме з цього варто *, а не ім'я сервера. encrypt passwords = yes winbind uid = 10000-20000 winbind gid = 10000-20000 template homedir = / smb / samba /% U template shell = / bin / tcsh winbind separator = + winbind enum users = yes winbind enum groups = yes winbind use default domain = yes nt acl support = yes Все, тепер ми підійшли до заключного етапу конфігурації самби. encrypt passwords = yes - рядок, що визначає, в якому вигляді будуть гуляти по мережі паролі winbind uid = 10000-20000 - виділяємо winbind діапазон UID для користувачів Windows winbind gid = 10000-20000 - виділяємо winbind діапазон GID для все тих же користувачів template homedir = / smb / samba /% U - вказуємо тимчасову домашню папку (якщо реального шляху не буде існувати, то за замовчуванням, людини прив'яже до кореня і буде багато лайки) template shell = / bin / tcsh - тимчасовий йшов. На це варто звернути особливу увагу, багато доки і багато форумів, де я піднімав це питання, мені говорили, що потрібно ставити щось / bin / nologin, немає, ні в якому разі, якщо користувач повинен ПРАЦЮВАТИ на цій машині локально. Я віддаю перевагу tcsh, тому вказаний саме він. winbind separator = + - ну, а це просто роздільник, яким ім'я домену буде відокремлено від користувача. Варто звернути увагу, що домен варто ПЕРЕД ім'ям, а не після, як це робиться в Windows winbind enum users = yes, winbind enum groups = yes - ці два рядки просто ведуть облік користувачів і груп -winbind use default domain = yes, а ця рядок вказує, що необхідно використовувати за замовчуванням приставку домену, до будь-якому користувачеві. Тут необхідно пояснити. Коли ви захочете авторизуватися на машині з встановленим таким параметром, все що від вас буде потрібно, це написати своє ім'я користувача і ввести пароль, а ось якщо він не встановлений, то спочатку потрібно написати ім'я домену, роздільник і ім'я користувача (наприклад, OWE + skif) і лише потім пароль. Ось такі біди від цього параметра. nt acl support = yes - ну і підтримка acl від Windows Все. Основні параметри ми налаштували. Ну, для розваги зробимо простеньку кулі. [C] comment = Skif test share path = / smb / C public = yes writable = yes printable = no create mask = 0775 force create mode = 0664 force directory mode = 0755 В принципі, нічого складного в ній немає. Ми створили кулі, доступну всім користувачам, як для запису, так і для читання під ім'ям С. Ось тепер ми дійсно закінчили настройку samba. Але для авторизації цього мало. Для того, що б авторизуватися в системі, потрібно ще цю саму систему навчити впізнавати паролі Windows, цього дітища Microsoft. У цьому нам допоможе winbind, якщо пам'ятаєте, саме його ми вкомпілівалі на етапі складання порту. Ось він нам і знадобився. І так, в першу чергу нам необхідно створити файл /etc/nsswitch.conf. За замовчуванням його немає в системі, ось ми його створимо і впишемо туди наступні рядки: root @ server # touch /etc/nsswitch.conf root @ server # ee /etc/nsswitch.conf passwd: files winbind group: files winbind Цей файл пояснить системі, звідки брати паролі і групи користувачів, а саме від winbind Так, і цей етап ми пройшли. Наступним кроком буде реєстрація робочої станції в домені. Робиться це за допомогою утиліти net root @ server #net ads join OWE -U skif або root @ server #net join OWE -U skif Де OWE - ім'я мого домену, а skif - моя обліковий запис з правами адміністратора в домені Windows. У мене при її виконанні вона лайнувся на ADS, але це була провина не samba, а контролера домену, але, не дивлячись на це, включила в домен. Заради інтересу можна зайти на Windows машині і помилуватися творінням рук своїх. Але це тільки черговий крок. І так йдемо далі, нам потрібно перевірити, що все працює як годинник, і в цьому нам допоможе утиліта wbinfo root @ server #wbinfo Usage: wbinfo [OPTION ...] -u, --domain-users Lists all domain users -g , --domain-groups Lists all domain groups -N, --WINS-by-name = NETBIOS-NAME Converts NetBIOS name to IP -I, --WINS-by-ip = IP Converts IP address to NetBIOS name -n, --name-to-sid = NAME Converts name to sid -s, --sid-to-name = SID Converts sid to name -U, --uid-to-sid = UID Converts uid to sid -G, - gid-to-sid = GID Converts gid to sid -S, --sid-to-uid = SID Converts sid to uid -Y, --sid-to-gid = SID Converts sid to gid -A, --allocate- rid Get a new RID out of idmap -c, --create-user = name Create a local user account -x, --delete-user = name Delete a local user account -C, --create-group = name Create a local group -X, --delete-group = name Delete a local group -o, --add-to-group = user: group Add user to group -O, --del-from-group = user: group Remov e user from group -t, --check-secret Check shared secret -m, --trusted-domains List trusted domains --sequence Show sequence numbers of all domains -D, --domain-info = STRING Show most of the info we have about the domain -r, --user-groups = USER Get user groups --user-sids = SID Get user group sids for user SID -a, --authenticate = user% password authenticate user --set-auth- user = user% password Store user and password used by winbindd (root only) --get-auth-user Retrieve user and password used by winbindd (root only) -p, --ping Ping winbindd to see if it is alive - domain = domain Define to the domain to restrict operation Help options: - ?, --help Show this help message --usage Display brief usage message Common samba options: -V, --version Print version root @ server # Я привожу тут список опцій не з садомазахізма, а хоча б тому, що не всі туди заглядають, це раз, ну а друга причина - ряд з них нам буде потрібно, тому майте уявлення про те, який їх формат Нам потрібно встановити параметри перегляду інформації і переглянути її ж - чи правильно відпрацьовуються паролі, ну і список груп, наприклад: root @ server #wbinfo --set-auth-user = OWE + skif% password Сподіваюся зрозуміло чому написано OWE + skif? - я явно поставив, з правами якого саме користувача будуть проводитися наступні операції, ну а символ% відділив ім'я від пароля. root @ server #wbinfo -t checking the trust secret via RPC calls succeeded root @ server #wbinfo -g BUILTIN + System Operators BUILTIN + Replicators BUILTIN + Guests BUILTIN + Power Users BUILTIN + Print Operators BUILTIN + Administrators BUILTIN + Account Operators BUILTIN + Backup Operators BUILTIN + Users Адміністратори домену Користувачі домена Гості домену Комп'ютери домену Контролери домену Видавці сертифікатів Адміністратори схеми Адміністратори підприємства Власники-творці групової політики DnsUpdateProxy OWE BUHGALTERIA TerminalGroupUsers LOG ....... Ну ось, все працює просто чудово, ну для заспокоєння своєї совісті , виконаємо команду id, спочатку над root, що б подивитися, що вона виводить, а потім, над будь-яким користувачем домену: root @ server #id root uid = 0 (root) gid = 0 (wheel) groups = 0 (wheel), 5 (operator) root @ server #id swarog uid = 10001 (swarog) gid = 10010 ( користувачі домена) groups = 10010 (користувачі домена), 0 (wheel), 10009 (Адміністратори домену), 10015 (Адміністратори схеми), 10016 (Адміністратори підприємства), 10017 (Власники-творці групової політики), 10019 (OWE) root @ server # все, тепер у нас система все прекрассно розуміє. Але все-таки не авторизує користувачів. Відкидає, а нам цього не потрібно. Що ж, знайдемо наступний камінь спотикання, а саме - модулі PAM, точніше не камінь спотикання, а найпотужніша зброя в наших руках бо за їх допомогою можна реалізувати практично будь-яку схему авторизації. Що ж, приступимо. Для початку необхідно зробити бекап всієї папки /etc/pam.d з модулями авторизації, і тільки потім їх курочіть. Перший, який ми будемо курочіть - login - адже для початку, нам потрібно хоча б локально за логінитися. Ось і приступимо. Тільки ОБЕРЕЖНО, у вас повинна бути відкрита як МІНІМУМ одна консоль з правами root, що б замести сліди невдалих спроб. І так пишемо в /etc/pam.d/login наступне, впродовж усього минулого закомментіруем: root @ server # ee /etc/pam.d/login # auth auth required pam_nologin.so no_warm auth sufficient pam_winbind.so auth sufficient pam_opie.so no_warm no_fake_prompts auth requisite pam_opieaccess.so no_warm allow_local auth required pam_unix.so no_warm try_first_pass # account account sufficient pam_winbind.so account required pam_unix.so # session session required pam_permit.so Зберігаємо. І відкриваємо іншу консоль. Логін: Пароль. Все йде нормально. Значить тут все добре. Але от якщо ви запустите pwd, то виявите себе не в / smb / samba / _ІМЯ_ПОЛЬЗОВАТЕЛЯ_, а в корені. Що ж, нам не вистачає двох речей: root @ server #lf / | grep. .cshrc .profile Точніше двох файлів і каталогу користувача. Що ж, створюємо каталог, кидаємо туди ці два файли, і О ЧУДО ми увійшли в систему, і в своїй папці. І так все працює. Йдемо далі. Нам потрібно, що б ВСЕ так працювало - міняємо вміст всіх фалів в папці /etc/pam.d на подібне. Стартуємо kdm, і перше, що ми бачимо - це список ВСІХ користувачів домену та локальної машини. Що ж, вибираємо доменного користувача, входимо, налаштовуємо профіль, працюємо. Усе. Тепер ще трохи поясняній. Измения в модулях pam не зажадають перезавантаження машини. Так що Бута її зайвий раз не потрібно. Файли зчитуються на льоту. У разі, якщо авторизуватися не вдалося, поверніть все в початковий стан на інший консолі. В принципі запропонований варіант файлу дозволяє логінитися не тільки користувачам домену, але і того ж root, тобто - наприклад, якщо користувач не існує в домені, він буде шукатися в локальній базі користувачів і якщо все нормально авторизуватися. Ми зробили все, що нам потрібно. І слідуючи доброю традицією, йдемо до начальства і вибиваємо собі як мінімум премію, а як максимум, натякаючи про економію 20-30 тисяч американських тугриків, підвищення зарплати. І тепер уже точно все. PS: Обов'язково створіть папку користувача, тому що в протилежному випадку, його буде кидати в корінь, а там може створювати файли тільки root, хоча ікси і стартують, але з морем помилок. Але я думаю, нескладно буде написати простенький скрипт, що б при вході, ця папка створювалася. У мене самого - руки за півроку так і не дійшли написати - лінь, та й мені простіше створити одну папку і два файли. Користувачі у мене жорстко прив'язані до машини. Втім, як небудь з експерименту допишу. Зауваження: Всі ці маніпуляції Ви виконуєте на свій страх і ризик. І відповідальність за межі не стабільну роботу, втрату даних або краху системи не сеті ви і тільки ви. У мене на всіх машинах описана схема працює без зауважень. Чижиков Володимир (Skif) Написано за мотивами Мого поста на sysadmins.ru http://portal.sysadmins.ru/board/viewtopic.php?t=43865&highlight= % C0% E2% F2% EE% F0% E8% E7% E0% F6% E8% FF + FreeBSD + WinNT Документації: https://www.opennet.ru/base/net/pam_linux.txt.html https://www.opennet.ru/base/dev/pam_linux.txt.html https://www.opennet.ru/base/net/pdc_auth.txt.html man 5 smb.conf /usr/share/doc/samba-3.0.0/full_docs/htmldocs/winbind.html


  • 1.3 , helgy (?), 14:14 19/10/2004 [ відповісти ] [ +++ ] [ · · · ]
+

/ -
Наскільки я зрозумів - все одно основні завдання крутяться на windows-серверах. Чи не простіше було використовувати завантаження фрі по сітці через PXE а потім запускати rdesktop? Вся авторизація - на самих серваках, заодно отримуємо економію на залозі?

Правда, відразу скажу - цей варіант скоріше застосуємо для чисто офісних рішень, коли використовуються 1С, ворд / Ескель та може бути поштова програма. Ніякої графіки і т.д.

  • 1.4 , c0x (??), 14:08, 31/10/2004 [ відповісти ] [ +++ ] [ · · · ]
+

/ - важливий порядок перегляду баз користувачів: спочатку локальний, потім всі інші.

крім того, очевидно слід унеможливити логін користувача з домену з uid або gid = 0.

  • 1.5 , pedro (?), 11:58, 14/01/2005 [ відповісти ] [ +++ ] [ · · · ]
+

/ - /   -   > Winbind separator = + - ну, а це просто роздільник, яким ім'я домену   буде відокремлено від користувача > Winbind separator = + - ну, а це просто роздільник, яким ім'я домену
буде відокремлено від користувача. Варто звернути увагу, що домен варто
ПЕРЕД ім'ям, а не після, як це робиться в Windows


дивний пасаж. де це в винде домен варто після імені користувача ??


  • 1.8 , НБГ (?), 14:21, 04/10/2005 [ відповісти ] [ +++ ] [ · · · ]
+

/ - Хороша стаття, молодца Володя. Допомогла дуже сильно при впровадженні схожою системи. Дякуємо.

  • 3.10 , Skif (Ok), 21:05, 15/11/2005 [ ^ ] [ ^^ ] [ ^^^ ] [ відповісти ]
+

/ - А користується саме 5-ка і samba 3-ка? Це принципово, в другій самби включення в домен відбувається трохи по іншому. Для початку скомпіль з опціями зі статті

  • 4.11 , lexx (??), 21:16 17/11/2005 [ ^ ] [ ^^ ] [ ^^^ ] [ відповісти ]
+

/ - da bsd ne 5 i samba ne 3. skompilil 2 sambu. i vse zhe ne znayu kak ee v domain zasunut. plz podskazhi.

  • 5.12 , Skif (Ok), 12:43, 18/11/2005 [ ^ ] [ ^^ ] [ ^^^ ] [ відповісти ]
+

/ - > Da bsd ne 5 i samba ne 3. skompilil 2 sambu. i
> Vse zhe ne znayu kak ee v domain zasunut. plz podskazhi.
>


якщо мені пам'ять не зраджує, то в другій самби додавання йде через smbpasswd

smbpasswd -j domain -r pdc -U Administrator




Додати коментар

Спонсори:

Хостинг:



2.x LDAP smbpasswd backend [X] PAM_SMBPASS With SMB PAM module [X] POPT With installed POPT library [OK] Cancel в принципі можна все це зробити руками в Makefile, але навіщо собі ускладнювати життя?
Php?
Чи не простіше було використовувати завантаження фрі по сітці через PXE а потім запускати rdesktop?
Вся авторизація - на самих серваках, заодно отримуємо економію на залозі?
Де це в винде домен варто після імені користувача ?
Категории
  • Биология
  • Математика
  • Краеведению
  • Лечебная
  • Наука
  • Физике
  • Природоведение
  • Информатика
  • Новости

  • Новости
    https://banwar.org/
    Наша взаимовыгодная связь https://banwar.org/. Запустив новый сайт, "Пари Матч" обещает своим клиентам незабываемый опыт и возможность выиграть крупные суммы.


    Наши клиенты
    Клиенты

    Быстрая связь

    Тел.: (044) 587-84-78
    E-mail: [email protected]

    Имя:
    E-mail:
    Телефон:
    Вопрос\Комментарий: