{"id":158,"date":"2017-01-12T23:04:10","date_gmt":"2017-01-12T22:04:10","guid":{"rendered":"https:\/\/dev.dr-online.pl\/?p=158"},"modified":"2017-04-06T00:55:50","modified_gmt":"2017-04-05T22:55:50","slug":"freebsd-activedirectory","status":"publish","type":"post","link":"https:\/\/www.dr-online.pl\/pl\/freebsd-activedirectory\/","title":{"rendered":"FreeBSD &#038; ActiveDirectory"},"content":{"rendered":"<p>Opr\u00f3cz programowania, dostarczamy tak\u017ce bezpieczne rozwi\u0105zania IT. Ostatnio stan\u0119li\u015bmy nad wyzwaniem, aby do systemu FreeBSD logowa\u0107 si\u0119 u\u017cytkownikami domenowymi (Active Directory).<\/p>\n<p>Zadanie opisane jest na stronie <a href=\"https:\/\/wiki.samba.org\/index.php\/Setting_up_Samba_as_a_Domain_Member\">Samby<\/a>.<\/p>\n<p>Poni\u017cej kr\u00f3tkie przedstawienie jak to zrobi\u0107. W naszym wypadku u\u017cywali\u015bmy FreeBSD 10.3.<\/p>\n<h3>Instalacja Samby<\/h3>\n<p>Za\u0142\u00f3\u017cmy, \u017ce nie mamy czasu na kompilacj\u0119.<\/p>\n<p><code>pkg install samba44<\/code><\/p>\n<p>Nas interesuje tak na prawd\u0119 winbind, ale jest to cz\u0119\u015b\u0107 Samby i we FreeBSD nie jest mo\u017cliwe aby \u015bci\u0105gn\u0105\u0107 mniejsze paczki (a w CentOSie si\u0119 da).<\/p>\n<h3>Konfiguracja Samby<\/h3>\n<p>Pami\u0119tajmy, \u017ce po instalacji nasz plik konfiguracyjny we FreeBSD to: <code>\/usr\/local\/etc\/smb4.conf<\/code>. Oczywi\u015bcie, zawsze mo\u017cemy sprawdzi\u0107 to poprzez:<br \/>\n<code>smbd -b | grep CONFIGFILE<\/code><\/p>\n<p>A dodatkowo mo\u017cna zmieni\u0107 plik poprzez edycj\u0119 zmiennej <code>samba_server_config<\/code> w pliku <code>\/usr\/local\/etc\/rc.d\/samba_server<\/code><\/p>\n<p>tworzymy plik konfiguracyjny w wersji minimalistycznej i edytujemy go w zale\u017cno\u015bci od naszych potrzeb &#8211; <i>w przyk\u0142adzie u\u017cywamy domeny san.escobar.corp lub w skr\u00f3cie SAN<\/i>:<\/p>\n<p><code><br \/>\n[global]<br \/>\nsecurity = ADS<br \/>\nworkgroup = <b>SAN<\/b><br \/>\nrealm = <b>SAN.ESCOBAR.CORP<\/b><\/p>\n<p>log file = \/var\/log\/samba4\/%m.log<br \/>\nlog level = 1<\/p>\n<p>use sendfile = true<\/p>\n<p>idmap config * : backend = tdb<br \/>\nidmap config * : range = 3000-7999<\/p>\n<p>idmap config <b>SAN<\/b> : backend = rid<br \/>\nidmap config <b>SAN<\/b> : range = 90000001-100000000<br \/>\nwinbind separator = +<br \/>\nwinbind enum users = yes<br \/>\nwinbind enum groups = yes<br \/>\n# winbind use default domain = yes<br \/>\nwinbind refresh tickets = yes<br \/>\nwinbind nss info = template<br \/>\nrestrict anonymous = 2<br \/>\nlog file = \/var\/log\/samba4\/log.%m<br \/>\nmax log size = 50<\/p>\n<p>template homedir = \/home\/%D\/%U<br \/>\n#template shell = \/usr\/local\/bin\/bash<br \/>\n<\/code><\/p>\n<p>Nie polecamy skopiowania powy\u017cszego kodu bez jego zrozumienia.<\/p>\n<blockquote><p>idmap config<\/p><\/blockquote>\n<p>bez trzeciego paramteru to konfiguracja &#8211; mapowanie u\u017cytkownik\u00f3w i grup lokalnych na liczby. Z parametrem to domenowe. Oddzielili\u015bmy je bardzo, abu nie trzba by\u0142o si\u0119 zastanawia\u0107 co to za numerek (o tych numerkach p\u00f3\u017aniej).<\/p>\n<p>Je\u015bli podmienicie nazwy SAN i san.escobar.corp na Wasz\u0105 domen\u0119 to powinno by\u0107 wszystko.<\/p>\n<p>Nale\u017cy zapami\u0119ta\u0107 z tego punktu, \u017ce om\u00f3wimy poni\u017csze parametry na samym ko\u0144cu jak wszystko b\u0119dzie dzia\u0142a\u0142o:<br \/>\n<code>winbind separator<\/code><br \/>\n<code>winbind use default domain<\/code><br \/>\n<code>template shell<\/code><\/p>\n<h3>Konfiguracja autostaru serwis\u00f3w FreeBSD<\/h3>\n<p>Bardzo przyjemnym rozwi\u0105zaniem w systemach FreeBSD jest plik <code>\/etc\/rc.conf<\/code>, kt\u00f3ry to definiuje co ma by\u0107 aktywne i jak. Mo\u017cemy go edytowa\u0107 lub te\u017c u\u017cywa\u0107 polecenia <code>sysrc<\/code><\/p>\n<p><code>sysrc samba_server_enable=yes<\/code><\/p>\n<p>winbindd aktywujemy poprzez edycj\u0119 pliku <code>\/usr\/local\/etc\/rc.d\/samba_server<\/code><\/p>\n<p>Zamieniamy lini\u0119:<br \/>\n<code>#winbindd_enable=\"YES\"<\/code><br \/>\nNa:<br \/>\n<code>winbindd_enable=\"YES\"<\/code><\/p>\n<p>Te zmiany pozwalaj\u0105 na start serwis\u00f3w <i>winbindd<\/i> i <i>samba_server<\/i>.<\/p>\n<h3>Ustawienia nssswitch.conf<\/h3>\n<p>nssswitch.conf to plik w kt\u00f3rym definiujemy \u017ar\u00f3d\u0142o sk\u0105d pobierane s\u0105 dane dla u\u017cytkownik\u00f3w, grup itp.<\/p>\n<p>ustawiamy, \u017ce, grupy i u\u017cytkownicy b\u0119d\u0105 brani tak\u017ce z domeny, czyli z winbind, zmiana dla group i passwd powinna wygl\u0105da\u0107 nast\u0119puj\u0105co:<br \/>\n<code><br \/>\ngroup: files winbind<br \/>\npasswd: files winbind<br \/>\n<\/code><\/p>\n<h3>Domena i testy<\/h3>\n<p>Tak wi\u0119c starujemy nasze serwisy:<\/p>\n<p><code>service samba_server start<\/code><\/p>\n<p>Tak jak zaznaczone by\u0142o wcze\u015bniej winbindd jest cz\u0119\u015bci\u0105 samby, wi\u0119c uruchomi si\u0119 razem z samb\u0105.<br \/>\n<code><br \/>\nStarting nmbd.<br \/>\nStarting smbd.<br \/>\nStarting winbindd.<br \/>\n<\/code><\/p>\n<p>Gdy uda\u0142o nam si\u0119 wystartowa\u0107 Samb\u0119 to oznacza, \u017ce ju\u017c jeste\u015bmy blisko.<\/p>\n<p>Dodajmy nasz host do domeny, w tym przyk\u0142adzie dodajemy do domeny hosta przy pomocy u\u017cytkownika Administrator, mo\u017cemy u\u017cy\u0107 jakiegokolwiek b\u0119d\u0105cego cz\u0142onkiem Domain Users.<\/p>\n<p><code>net ads join -U Administrator<\/code><\/p>\n<p>Pojawi si\u0119 ekran z pytaniem o has\u0142o u\u017cytkownika<\/p>\n<p><code>Enter Administrator's password:<\/code><\/p>\n<p>Po wpisaniu poprawnegi has\u0142a powininno pojawi\u0107 si\u0119 potwierdzenie przy\u0142\u0105czenia do domeny:<br \/>\n<code><br \/>\nUsing short domain name -- SAN<br \/>\nJoined 'TEST_HOST' to dns domain 'san.escobar.corp'<br \/>\n<\/code><\/p>\n<p>Spr\u00f3bujmy pobra\u0107 z domeny u\u017cytkownik\u00f3w: <code>wbinfo -u<\/code><\/p>\n<p>Je\u015bli nam si\u0119 uda otrzymamy list\u0119 np:<\/p>\n<p><code>SAN\\administrator<br \/>\nSAN\\guest<\/code><\/p>\n<p>Teraz najwa\u017cniejszy test, czy jeste\u015bmy w stanie pobra\u0107 u\u017cytkownik\u00f3w i grupy z domeny z pod poziomu systemu PAM.<\/p>\n<p>do tego s\u0142u\u017c\u0105 nam komendy: <code>getent passwd<\/code>, wy\u015bwietlaj\u0105ca u\u017cytkownik\u00f3w, jak i <code>getent group<\/code>, te zapytania powi\u0105zane s\u0105 z plikiem nssswitch.conf<\/p>\n<p>Gdy pojawi si\u0119 lista u\u017cytkownik\u00f3w i np:<br \/>\nSAN+guest:*:[&#8230;]<br \/>\nto znaczy, \u017ce jeste\u015bmy pe\u0142n\u0105 cz\u0119\u015bci\u0105 domeny.<\/p>\n<p><b>Wa\u017cna informacja<\/b><\/p>\n<p>Ka\u017cdy przyzwyczai\u0142 si\u0119 w Windows, \u017ce u\u017cytkownicy domenowi s\u0105 przekazywani wraz z backslashem, a w Unixach backslash tak jak w C to znak specjalny, dlatego te\u017c na pocz\u0105tku w konfiguracji Samby pojawi\u0142 si\u0119 wpis:<\/p>\n<p><code>winbind separator = +<\/code><\/p>\n<p>u\u017cywaj\u0105c tego wpisu naszym u\u017cytkownikem nie b\u0119dzie Windowsowy SAN\\user tylko SAN+user.<br \/>\nTo bardzo pomaga, bo w Unixach nale\u017cy u\u017cy\u0107 dodatkowego backslasha, czyli nie SAN\\user a SAN\\\\user, np. podczas logowania.<\/p>\n<p>My preferujmey plusa zamiast backslasha. Ale mo\u017cna to skonfigurowa\u0107 dowolnie.<\/p>\n<h3>A co to daje?<\/h3>\n<p>Za chwilk\u0119 napiszemy na Blogu jak uruchomi\u0107 OpenVPN&#8217;a, kt\u00f3ry autentykuje si\u0119 poprzez Active Directory, ale u\u017cywa <i>2FA<\/i> (Two Factor Authentication). A je\u015bli chcemy przej\u015b\u0107 do nast\u0119pnego czytania to aktualny musi by\u0107 zrealizowany.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Opr\u00f3cz programowania, dostarczamy tak\u017ce bezpieczne rozwi\u0105zania IT. Ostatnio stan\u0119li\u015bmy nad wyzwaniem, aby do systemu FreeBSD logowa\u0107 si\u0119 u\u017cytkownikami domenowymi (Active Directory). Zadanie opisane jest na stronie Samby. Poni\u017cej kr\u00f3tkie przedstawienie jak to zrobi\u0107. W naszym<\/p>\n<div class=\"view-full-post\"><a href=\"https:\/\/www.dr-online.pl\/pl\/freebsd-activedirectory\/\" class=\"button\">Czytaj dalej<\/a><\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-158","post","type-post","status-publish","format-standard","hentry","category-bez-kategorii"],"_links":{"self":[{"href":"https:\/\/www.dr-online.pl\/pl\/wp-json\/wp\/v2\/posts\/158","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dr-online.pl\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dr-online.pl\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dr-online.pl\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dr-online.pl\/pl\/wp-json\/wp\/v2\/comments?post=158"}],"version-history":[{"count":0,"href":"https:\/\/www.dr-online.pl\/pl\/wp-json\/wp\/v2\/posts\/158\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dr-online.pl\/pl\/wp-json\/wp\/v2\/media?parent=158"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dr-online.pl\/pl\/wp-json\/wp\/v2\/categories?post=158"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dr-online.pl\/pl\/wp-json\/wp\/v2\/tags?post=158"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}