Tôi đang sử dụng máy chủ Ubuntu 10.04.
Tôi đang sử dụng máy chủ Ubuntu 10.04.
Câu trả lời:
[Chỉnh sửa] Kể từ đó, tôi đã thử nghiệm bản phát hành đầy đủ của Máy chủ Ubuntu 10.04 (21 tháng 5 năm 2010) .
Tôi đã cấu hình Ubuntu 10.04 Server LTS của tôi cư trú trên mạng windows để xác thực đăng nhập bằng thư mục hoạt động, sau đó gắn kết chia sẻ windows để phục vụ như thư mục chính.
Đây là những gì tôi đã làm bắt đầu từ cài đặt ban đầu của Ubuntu.
Cập nhật
# sudo apt-get update && sudo apt-get upgrade
Cài đặt máy chủ SSH ( sshd
)
# sudo apt-get install openssh-server
Một số người sẽ cho rằng bạn nên "khóa sshd xuống" bằng cách vô hiệu hóa đăng nhập gốc. Tôi nghĩ rằng nếu bạn đủ thông minh để hack phiên ssh cho mật khẩu root, có lẽ bạn sẽ không bị cản trở bởi việc thêm PermitRootLogin no
vào /etc/ssh/sshd_config
tệp. Nếu bạn bị hoang tưởng hay không đơn giản là không bị thuyết phục thì hãy chỉnh sửa tệp hoặc đưa ra một spin sau:
# (grep PermitRootLogin /etc/ssh/sshd_config && sudo sed -ri 's/PermitRootLogin ).+/\1no/' /etc/ssh/sshd_conifg) || echo "PermitRootLogin not found. Add it manually."
Cài đặt các gói yêu cầu
# sudo apt-get install winbind samba smbfs smbclient ntp krb5-user
Thực hiện một số cách sắp xếp mạng cơ bản để chuẩn bị cho các cấu hình gói cụ thể sắp tới.
Xác định tên miền windows, tên máy chủ DNS và địa chỉ IP cho máy chủ thư mục hoạt động (đối với samba). Để triệu tập, tôi đặt các biến môi trường cho miền windows và máy chủ DNS. Đối với tôi đó là (địa chỉ IP AD của tôi là 192.168.20.11):
# WINDOMAIN=mydomain.local && WINDNS=srv1.$WINDOMAIN && WINDNS_IP=192.168.20.11
Nếu bạn muốn tìm hiểu tên miền và máy chủ DNS của bạn là gì (Tôi là nhà thầu và không biết mạng), hãy xem tài liệu tham khảo hữu ích này .
Chúng ta cần đặt tên cho hộp Linux trên mạng mới, điều này được thực hiện bằng cách chỉnh sửa tệp máy chủ (thay thế DNS bằng FQDN của DNS windows):
# sudo sed -ri "s/^(127\.0\.[01]\.1[ \t]).*/\1$(hostname).$WINDOMAIN localhost $(hostname)/" /etc/hosts
Chúng ta cũng nên nói với các dịch vụ được cài đặt sắp tới nơi họ có thể tìm thấy người lãnh đạo: một số mạng sẽ có dịch vụ tra cứu tên netbios, nhưng chỉ trong trường hợp, hãy thêm một mục rõ ràng trong /etc/hosts
tệp của bạn , trong cấu hình của tôi, tôi đã thêm mục vào thứ ba (3) hàng:
# sudo sed -ri "3 i $WINDNS_IP $WINDNS" /etc/hosts
Các quy trình xác thực và chia sẻ tệp cho các hộp Windows và Linux cần phải có đồng hồ của chúng đồng ý. Thực hiện việc này với dịch vụ NTP và trên phiên bản máy chủ của Ubuntu, dịch vụ NTP được cài đặt và định cấu hình với một (1) sever NTP. Thêm của bạn trước Ubuntu một (hoặc thay thế hoàn toàn). Mạng tôi đang tham gia cũng có máy chủ DNS phục vụ dịch vụ NTP.
# sudo sed -ri "s/^(server[ \t]+)(.+)/\1$WINDNS\n\1\2/" /etc/ntp.conf
Khởi động lại trình nền NTP:
# sudo /etc/init.d/ntp restart
Cấu hình Kerberos.
Các hướng dẫn tuân theo ở đây không được thực hiện theo nghĩa đen: các giá trị cho MYDOMAIN.LOCAL
và srv1.mydomain.local
cần được thay thế bằng những gì phù hợp với mạng của bạn khi bạn chỉnh sửa các tệp, nhưng lưu ý rằng cần sử dụng UPPERCASE .
Nếu, trong apt-get install
Kerberos, bạn có cái nhìn sâu sắc để trả lời chính xác câu hỏi "miền mặc định", thì tốt cho bạn, nếu không bạn sẽ phải làm như sau.
Chỉnh sửa tập tin (đã cài đặt ở trên) /etc/krb5.conf
.
Tìm [libdefaults]
phần và thay đổi cặp giá trị khóa:
[libdefaults]
default_realm = MYDOMAIN.LOCAL
Thêm phần sau vào [realms]
phần của tệp:
MYDOMAIN.LOCAL = {
kdc = srv1.mydomain.local
admin_server = srv1.mydomain.local
default_domain = MYDOMAIN.LOCAL
}
Thêm phần sau vào [domain_realm]
phần của tệp:
.mydomain.local = MYDOMAIN.LOCAL
mydomain.local = MYDOMAIN.LOCAL
Một thử nghiệm thú vị vào thời điểm này là để xem bộ điều khiển AD của bạn có cấp cho bạn vé kerberos hay không. Điều này không cần thiết nhưng nó có thể khiến một số bạn ham chơi:
# kinit <some_windows_domain_user>
Sau đó, để xem vé:
# klist
Bạn sẽ thấy nội dung về bộ đệm của vé và hết hạn và gia hạn. Khi sự ham chơi lắng xuống, bạn cũng có thể giải phóng / phá hủy vé:
# kdestroy
Cấu hình samba.
Theo như sau:
Đôi khi CIFS không thể được sử dụng hoặc lựa chọn hệ thống tập tin mạng khác tốt hơn. Nếu cần hỗ trợ xác thực kerberos (krb5 / SPNEGO) để tăng cường bảo mật, thì phải sử dụng smbclient hoặc smbfs của Samba thay cho cifs
Alas, cifs
hỗ trợ trong kernel cho ubfox 10.04 (dựa trên phiên bản kernel 2.6.32.9) theo tài liệu kernel, việc triển khai kerberos thử nghiệm đã có từ phiên bản 1.54.
Vì vậy, có bạn. Tôi không biết liệu cifs
nó có hoạt động không nên tôi cung cấp cho bạn cấu hình samba:
Thay thế /etc/samba/smb.conf
(hãy nhớ rằng tôi đang làm việc từ một bản phân phối sạch của Ubuntu, vì vậy tôi không lo lắng về việc phá vỡ bất cứ điều gì):
[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
Bắt đầu và dừng các dịch vụ khác nhau.
# sudo /etc/init.d/winbind stop
# sudo service smbd restart
# sudo /etc/init.d/winbind start
Thiết lập xác thực.
Chỉnh sửa /etc/nsswitch.conf
. Tôi đã có thể chạy lệnh sau để có được những gì tôi cần:
# sed -ri 's/(compat)/\1 winbind/' /etc/nsswitch.conf
Dưới đây là nội dung của /etc/nsswitch.conf
tệp của tôi :
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
Bắt đầu và dừng các dịch vụ khác nhau.
# sudo /etc/init.d/winbind stop
# sudo service smbd restart
# sudo /etc/init.d/winbind start
Tham gia máy tính vào miền. Tôi không tin điều này là cần thiết; đặc biệt vì tùy chọn bảo mật trong smb.conf
tệp ( security = ads
). Có lẽ ai đó có thể cân nhắc về điều này ...
# sudo net ads join -U any_domain_user_account
Bạn có thể gặp lỗi DNS update failed!
, nhưng bạn sẽ được tham gia vào miền. Nếu bạn gặp lỗi về việc không thể tìm thấy máy chủ, bản ghi DNS của bạn cần được sửa đổi. Trong quá trình cài đặt Ubuntu, máy chủ tên thường sẽ trỏ đến cổng của bạn: hầu hết các bộ định tuyến sẽ thực hiện dịch vụ DNS. Thực tiễn tốt nhất để quản trị máy chủ windows là ADC cũng nên chạy DNS. Trong trường hợp của tôi, tôi /etc/resolve.conf
trông như thế này:
nameserver 192.168.20.11
nameserver 8.8.8.8
Đây 8.8.8.8
là một DNS của Google, một bản sao lưu khá đáng tin cậy trong trường hợp các cửa sổ bị hỏng.
Tại thời điểm này tôi có thể đăng nhập (có lẽ sau khi khởi động lại), các thư mục chính không tồn tại, nhưng tôi có thể đăng nhập.
CIFS Gắn kết khi đăng nhập
Bước tiếp theo này là anh đào cho tôi; Tôi không muốn có trách nhiệm sao lưu các thư mục làm việc của mọi người và hộp Ubuntu đang chạy bị nghi ngờ về độ tin cậy. Bằng cách thực hiện những người dùng sau có thể đăng nhập và xem thư mục người dùng windows của họ một cách tự động .
Tải xuống pam_mount
mô-đun:
# sudo apt-get install libpam-mount
Tôi muốn điểm gắn kết điểm ở /home/<user>
vị trí truyền thống : phần này được cấu hình bởi /etc/samba/smb.conf
tệp ( template homedir = /home/%U
). Nhưng tôi cần nó để đi sâu vào chia sẻ và trỏ đến thư mục windows của riêng họ. Điều này được thực hiện bằng cách chỉnh sửa /etc/security/pam_mount.conf.xml
tệp (mặc dù có ý định, XML không thể đọc được bằng con người):
Thêm vào sau /etc/security/pam_mount.conf.xml
và thay đổi cho phù hợp:
<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>
Vì điểm gắn kết ngớ ngẩn của tôi, tôi cũng phải thêm dòng này:
<umount>umount %(MNTPT)/%(USER)</umount>
Và do đó, các thư mục người dùng (cho điểm gắn kết) sẽ được tạo tự động tìm dòng và làm cho nó thành:
<mkmountpoint enable="1" remove="false" />
Các remove="false"
bit là khá quan trọng: nếu nó set là true, pam_mount.so
cố gắng để xóa các thư mục điểm mà nó không thể làm gì nếu người dùng đã đăng nhập nhiều lần gắn kết. Những gì bạn kết thúc trong trường hợp đó là rất nhiều gắn kết đi lạc trên hệ thống của bạn.
pam_mount.so
vẫn không hoàn toàn giao hàng như đã hứa. Ở dạng hiện tại, các giá treo tiếp tục chồng chất và các thư mục chính không được tạo. Ở đâu đó giữa đây và bản phát hành Beta 2 trước đó của máy chủ 10.04, nó đã hoạt động. Tôi không thể tạo lại điều này mặc dù.
Trong thời gian trung bình cho việc tạo thư mục mà tôi đang dựa vào pam_mkhomedir.so
và bị kẹt một dòng ngay trước pam_mount.so
dòng để chứa.
Tôi vẫn chưa giải quyết được vấn đề gắn kết. Nhưng cho đến khi pam_mount.so
được sửa chữa, đây là những gì tôi đã có trong /etc/pam.d/common-session
tệp của mình :
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
Đó là nó. Nó làm việc cho tôi, và tôi hy vọng bạn thấy nó hữu ích.
Nhiều nguồn tài nguyên đã được xem xét để tôi có thể tìm ra điều này. Dưới đây là một danh sách ngắn (một số các liên kết này trỏ đến câu hỏi của riêng tôi về chủ đề này):
sudo
d, hoặc tôi đang thiếu thứ gì đó?
sudo
' - Và điều này tốt hơn ... theo cách nào? (Nếu bất kỳ tài khoản người dùng nào có quyền sudo bị xâm phạm, về cơ bản thì điều đó cũng tương tự. đăng nhập dựa trên.)