Używam serwera Ubuntu 10.04.
Używam serwera Ubuntu 10.04.
Odpowiedzi:
[Edytuj] Od tego czasu przetestowałem to pełne wydanie Ubuntu 10.04 Server (21 maja 2010) .
Skonfigurowałem mój Ubuntu 10.04 Server LTS rezydujący w sieci Windows do uwierzytelniania logowania przy użyciu active directory, a następnie zamontowałem udział Windows, aby służył jako tam katalog domowy.
Oto, co zrobiłem, zaczynając od pierwszej instalacji Ubuntu.
Pobierz uaktualnienia
# sudo apt-get update && sudo apt-get upgrade
Zainstaluj serwer SSH ( sshd
)
# sudo apt-get install openssh-server
Niektórzy twierdzą, że powinieneś „zablokować sshd” poprzez wyłączenie logowania root. Sądzę, że jeśli jesteś wystarczająco inteligentny, aby zhakować sesję ssh w celu uzyskania hasła roota, prawdopodobnie nie zostaniesz powstrzymany przez dodanie PermitRootLogin no
w /etc/ssh/sshd_config
pliku. Jeśli twój paranoik lub po prostu nie jesteś przekonany, edytuj plik lub wykonaj następujące czynności:
# (grep PermitRootLogin /etc/ssh/sshd_config && sudo sed -ri 's/PermitRootLogin ).+/\1no/' /etc/ssh/sshd_conifg) || echo "PermitRootLogin not found. Add it manually."
Zainstaluj wymagane pakiety
# sudo apt-get install winbind samba smbfs smbclient ntp krb5-user
Wykonaj podstawowe sprzątanie domu w sieci, przygotowując się do określonych konfiguracji pakietów.
Określ nazwę domeny systemu Windows, nazwę serwera DNS i adres IP serwera Active Directory (dla samby). Dla wygody ustawiam zmienne środowiskowe dla domeny Windows i serwera DNS. Dla mnie to był (mój adres IP AD to 192.168.20.11):
# WINDOMAIN=mydomain.local && WINDNS=srv1.$WINDOMAIN && WINDNS_IP=192.168.20.11
Jeśli chcesz dowiedzieć się, jaka jest twoja domena i serwer DNS (byłem kontrahentem i nie znałem sieci), zapoznaj się z tą pomocną informacją .
Musimy ochrzcić okno Linuksa w nowej sieci, odbywa się to poprzez edycję pliku hosta (zamień DNS na FQDN DNS systemu Windows):
# sudo sed -ri "s/^(127\.0\.[01]\.1[ \t]).*/\1$(hostname).$WINDOMAIN localhost $(hostname)/" /etc/hosts
Powinniśmy również powiedzieć przyszłym zainstalowanym usługom, gdzie mogą znaleźć lidera: niektóre sieci będą miały usługi wyszukiwania nazw Netbios, ale na wszelki wypadek dodaj wyraźny wpis w /etc/hosts
pliku, w mojej konfiguracji dodałem wpis na trzecim (3) linia:
# sudo sed -ri "3 i $WINDNS_IP $WINDNS" /etc/hosts
Procesy uwierzytelniania i udostępniania plików dla urządzeń Windows i Linux muszą mieć uzgodnione zegary. Zrób to z usługą NTP, a na serwerowej wersji Ubuntu usługa NTP jest instalowana i konfigurowana z jednym (1) serwerem NTP. Dodaj swój przed Ubuntu (lub całkowicie go zastąp). Sieć, do której się przyłączam, miała również serwer DNS obsługujący usługę NTP.
# sudo sed -ri "s/^(server[ \t]+)(.+)/\1$WINDNS\n\1\2/" /etc/ntp.conf
Uruchom ponownie demona NTP:
# sudo /etc/init.d/ntp restart
Konfiguracja Kerberos.
Poniższych instrukcji nie należy traktować dosłownie: wartości MYDOMAIN.LOCAL
i srv1.mydomain.local
należy je zastąpić wartościami odpowiednimi dla sieci podczas edytowania plików, ale należy pamiętać, że tam, gdzie używana jest WIELKIE LITERY, potrzebna jest WIELKIE LICZBA .
Jeśli podczas apt-get install
Kerberos miałeś wgląd, aby poprawnie odpowiedzieć na pytanie „domena domyślna”, to dobrze, w przeciwnym razie będziesz musiał wykonać następujące czynności.
Edytuj /etc/krb5.conf
plik (wcześniej zainstalowany powyżej) .
Znajdź [libdefaults]
sekcję i zmień parę klucz-wartość:
[libdefaults]
default_realm = MYDOMAIN.LOCAL
Dodaj następujący [realms]
fragment do sekcji pliku:
MYDOMAIN.LOCAL = {
kdc = srv1.mydomain.local
admin_server = srv1.mydomain.local
default_domain = MYDOMAIN.LOCAL
}
Dodaj następujący [domain_realm]
fragment do sekcji pliku:
.mydomain.local = MYDOMAIN.LOCAL
mydomain.local = MYDOMAIN.LOCAL
Dobrym testem w tym momencie jest sprawdzenie, czy kontroler AD wystawi ci bilet Kerberos. Nie jest to konieczne, ale może sprawić, że niektórzy z was będą się denerwować:
# kinit <some_windows_domain_user>
Następnie, aby zobaczyć bilet:
# klist
Zobaczysz rzeczy o pamięci podręcznej biletów oraz o wygaśnięciu i przedłużeniach. Gdy zawroty głowy opadną, równie dobrze możesz zwolnić / zniszczyć bilet:
# kdestroy
Skonfiguruj sambę.
Zgodnie z tym, co następuje:
Są chwile, kiedy nie można użyć CIFS lub lepiej wybrać inny sieciowy system plików. Jeśli dla zwiększenia bezpieczeństwa potrzebna jest obsługa uwierzytelniania kerberos (krb5 / SPNEGO), wówczas zamiast cifs należy użyć smbclient lub smbfs Samby
, cifs
obsługa jądra dla Ubuntu 10.04 (w oparciu o jądro w wersji 2.6.32.9) jest w wersji 1.61, i zgodnie z dokumentacją jądra eksperymentalna implementacja Kerberos istnieje od wersji 1.54.
Więc jesteś. Nie mam pojęcia, czy cifs
to działa, więc podaję konfigurację samby:
Zastąp /etc/samba/smb.conf
(pamiętaj, że pracowałem z czystej dystrybucji Ubuntu, więc nie martwiłem się o nic)
[global]
security = ads
realm = MYDOMAIN.LOCAL
password server = 192.168.20.11
workgroup = MYDOMAIN
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind enum users = yes
winbind enum groups = yes
template homedir = /home/%U
template shell = /bin/bash
client use spnego = yes
client ntlmv2 auth = yes
encrypt passwords = yes
winbind use default domain = yes
restrict anonymous = 2
Uruchamiaj i zatrzymuj różne usługi.
# sudo /etc/init.d/winbind stop
# sudo service smbd restart
# sudo /etc/init.d/winbind start
Skonfiguruj uwierzytelnianie.
Edytuj /etc/nsswitch.conf
. Udało mi się uruchomić następujące polecenie, aby uzyskać to, czego potrzebowałem:
# sed -ri 's/(compat)/\1 winbind/' /etc/nsswitch.conf
Oto zawartość mojego /etc/nsswitch.conf
pliku:
passwd: compat winbind
group: compat winbind
shadow: compat winbind
hosts: files dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
Uruchamiaj i zatrzymuj różne usługi.
# sudo /etc/init.d/winbind stop
# sudo service smbd restart
# sudo /etc/init.d/winbind start
Dołącz komputer do domeny. Nie jestem przekonany, że jest to konieczne; szczególnie ze względu na opcję bezpieczeństwa w smb.conf
pliku ( security = ads
). Być może ktoś może się nad tym zastanowić ...
# sudo net ads join -U any_domain_user_account
Może pojawić się błąd DNS update failed!
, ale dołączenie do domeny. Jeśli pojawi się błąd związany z niemożnością znalezienia serwera, rekordy DNS należy zmodyfikować. Podczas instalacji Ubuntu serwer nazw często wskazuje twoją bramę: większość routerów wykonuje usługę DNS. Najlepszymi praktykami administrowania serwerem Windows jest to, że ADC powinien również uruchomić DNS. W moim przypadku mój /etc/resolve.conf
wygląda tak: jest google DNS, dość niezawodne tworzenie kopii zapasowych w przypadku okien jeden idzie w dół.
nameserver 192.168.20.11
nameserver 8.8.8.8
8.8.8.8
W tym momencie mogłem się zalogować (być może po ponownym uruchomieniu), katalogi domowe nie istniały, ale mogłem się zalogować.
Montaż CIFS przy logowaniu
Kolejnym krokiem była dla mnie wisienka; Nie chciałem ponosić odpowiedzialności za tworzenie kopii zapasowych wszystkich działających katalogów, a urządzenie, które miało działać Ubuntu, było podejrzane pod względem niezawodności. Wykonując następujące użytkownicy mogą się zalogować i zobaczyć ich oknami katalogu użytkownika automagicznie .
Pobierz pam_mount
moduł:
# sudo apt-get install libpam-mount
Chciałem, aby punkt montowania wskazywał w tradycyjnej /home/<user>
lokalizacji: ta część jest konfigurowana przez /etc/samba/smb.conf
file ( template homedir = /home/%U
). Ale potrzebowałem go, aby przejrzeć udział i wskazać własny katalog Windows. Odbywa się to poprzez edycję /etc/security/pam_mount.conf.xml
pliku (który pomimo swojej intencji XML nie jest czytelny dla człowieka):
Dodaj /etc/security/pam_mount.conf.xml
i zmień, aby dopasować:
<volume
user="*"
server="srv1.mydomain.local"
path="UserShares"
mountpoint="home"
fstype="cifs"
/>
<cifsmount>mount -t cifs //%(SERVER)/%(VOLUME)/%(USER) %(MNTPT)/%(USER) -o "user=%(USER),uid=%(USERUID),gid=%(USERGID)%(before=\",\" OPTIONS)"</cifsmount>
Z powodu mojego głupiego punktu montowania musiałem również dodać tę linię:
<umount>umount %(MNTPT)/%(USER)</umount>
Aby katalogi użytkowników (dla punktu montowania) były tworzone automatycznie, znajdź linię i ustaw ją tak:
<mkmountpoint enable="1" remove="false" />
remove="false"
Bit jest bardzo ważne: jeśli jest to wartość true, pam_mount.so
próbuje usunąć katalog punkt, który nie może zrobić, jeśli użytkownik zalogowany wielokrotnie montować. W takim przypadku kończy się wiele bezpańskich mocowań w systemie.
pam_mount.so
wciąż nie zapewnia, jak obiecano. W obecnej formie wierzchowce wciąż się piętrzą, a katalogi domowe nie są tworzone. Gdzieś pomiędzy tym a poprzednią wersją Beta 2 serwera 10.04 działało. Nie mogę tego jednak odtworzyć.
W międzyczasie polegam na tworzeniu katalogu pam_mkhomedir.so
, na którym polegam , i utknąłem linię bezpośrednio przed pam_mount.so
linią, aby ją pomieścić.
Nadal nie rozwiązałem problemu wielokrotnego montażu. Ale dopóki nie pam_mount.so
zostanie naprawione, oto co mam w swoim /etc/pam.d/common-session
pliku:
session [default=1] pam_permit.so
session requisite pam_deny.so
session required pam_permit.so
session required pam_unix.so
session optional pam_winbind.so
session required pam_mkhomedir.so skel=/etc/skel/ umask=0022
session optional pam_mount.so
Otóż to. To zadziałało dla mnie i mam nadzieję, że okażą się przydatne.
Rozważano wiele zasobów, więc mogłem to rozgryźć. Oto krótka lista (kilka z tych linków prowadzi do moich własnych pytań na ten temat):
sudo
d, czy coś mi brakuje?
sudo
” - i to jest lepsze… w jaki sposób? (Jeśli każde konto użytkownika uprawnione do sudo zostanie przejęte, jest to w zasadzie to samo. I w zasadzie równie proste [lub nie] jest brutalne korzystanie z kont root lub użytkowników. Najlepszym rozwiązaniem jest skonfigurowanie loginu tylko do logowania i wyłączenie wszystkich haseł oparte na logowaniu.)