To powinno być opublikowane jako odpowiedź na pytanie. Edytuj to, aby było to pytanie i przenieś to, co napisałeś powyżej, aby było na nie odpowiedzią. Z FAQ : „Można również zadawać własne pytania i odpowiadać na nie, ale udawać, że jesteś w Jeopardy: sformułuj je w formie pytania”.
Wstrzymano do odwołania.
Odpowiedzi:
27
[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.
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 now /etc/ssh/sshd_configpliku. 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."
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):
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/hostspliku, 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.LOCALi srv1.mydomain.localnależ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 installKerberos 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.
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
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.confpliku: 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.confpliku ( 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.confwyglą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_mountmoduł: # 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.conffile ( 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.xmlpliku (który pomimo swojej intencji XML nie jest czytelny dla człowieka):
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.sopró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.sowciąż 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.solinią, aby ją pomieścić.
Nadal nie rozwiązałem problemu wielokrotnego montażu. Ale dopóki nie pam_mount.sozostanie naprawione, oto co mam w swoim /etc/pam.d/common-sessionpliku:
Wyłączanie zdalnego logowania root ssh jest koniecznością. Ataki typu brute force / słownik czasami się udają. Jeśli root zostanie naruszony, pożegnaj się z czymkolwiek zaufanym na komputerze.
JR Lawhorne
1
ubuntu nie aktywuje konta roota ... wszystko jest sudod, czy coś mi brakuje?
Jamie
„wszystko jest 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.)
Kurt Pfeifle,
Rozumiem, ale zastanów się: „Najlepsze jest skonfigurowanie loginu tylko do klucza publicznego” , co całkowicie podważyłoby cel tego postu.
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
isrv1.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 przedpam_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: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):
źródło
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.)