मैं Ubuntu 10.04 सर्वर का उपयोग कर रहा हूं।
मैं Ubuntu 10.04 सर्वर का उपयोग कर रहा हूं।
जवाबों:
[संपादित करें] जब से मैंने Ubuntu 10.04 सर्वर (21 / मई / 2010) की पूर्ण रिलीज़ का परीक्षण किया है ।
मैंने अपने उबंटू 10.04 सर्वर एलटीएस को सक्रिय निर्देशिका का उपयोग करके लॉगिन को प्रमाणित करने के लिए एक विंडोज़ नेटवर्क पर रहने के लिए कॉन्फ़िगर किया है , फिर घर की निर्देशिका के रूप में सेवा करने के लिए एक विंडोज़ शेयर माउंट करें।
यहाँ वह है जो मैंने उबंटू की प्रारंभिक स्थापना से शुरू किया था।
अपडेट प्राप्त करे
# sudo apt-get update && sudo apt-get upgrade
SSH सर्वर स्थापित करें ( sshd
)
# sudo apt-get install openssh-server
कुछ लोग तर्क देंगे कि आपको रूट लॉगिन को अक्षम करके "sshd down lock" करना चाहिए। मुझे पता है कि यदि आपका स्मार्ट रूट पासवर्ड के लिए एक ssh सत्र हैक करने के लिए पर्याप्त है, तो आप संभवतः फ़ाइल PermitRootLogin no
में जोड़कर विफल नहीं होंगे /etc/ssh/sshd_config
। यदि आपका विरोधाभास नहीं है या बस आश्वस्त नहीं है, तो फ़ाइल को संपादित करें या निम्नलिखित एक स्पिन दें:
# (grep PermitRootLogin /etc/ssh/sshd_config && sudo sed -ri 's/PermitRootLogin ).+/\1no/' /etc/ssh/sshd_conifg) || echo "PermitRootLogin not found. Add it manually."
आवश्यक पैकेज स्थापित करें
# sudo apt-get install winbind samba smbfs smbclient ntp krb5-user
आने वाले विशिष्ट पैकेज कॉन्फ़िगरेशन के लिए तैयारी में कुछ बुनियादी नेटवर्किंग घर वापसी करें।
सक्रिय निर्देशिका सर्वर (सांबा के लिए) के लिए अपने विंडोज़ डोमेन नाम, डीएनएस सर्वर नाम और आईपी पते का निर्धारण करें। सुविधा के लिए मैंने विंडोज़ डोमेन और डीएनएस सर्वर के लिए पर्यावरण चर निर्धारित किए हैं। मेरे लिए यह (मेरा AD IP पता 192.168.20.11 था):
# WINDOMAIN=mydomain.local && WINDNS=srv1.$WINDOMAIN && WINDNS_IP=192.168.20.11
यदि आप यह पता लगाना चाहते हैं कि आपका डोमेन और DNS सर्वर क्या है (मैं ठेकेदार था और नेटवर्क को नहीं जानता था) इस उपयोगी संदर्भ को देखें ।
हमें नए नेटवर्क पर लिनक्स बॉक्स को क्रिश्चियन करने की आवश्यकता है, यह होस्ट फ़ाइल (विंडोज़ के FQDN के साथ DNS को प्रतिस्थापित करें) को संपादित करके किया जाता है:
# sudo sed -ri "s/^(127\.0\.[01]\.1[ \t]).*/\1$(hostname).$WINDOMAIN localhost $(hostname)/" /etc/hosts
हमें आगामी स्थापित सेवाओं को भी बताना चाहिए जहां वे वहां नेता पा सकते हैं: कुछ नेटवर्क में नेटबायोस नाम लुकअप सेवाएं होंगी, लेकिन बस मामले में, आपकी /etc/hosts
फ़ाइल में एक स्पष्ट प्रविष्टि जोड़ें , मेरे कॉन्फ़िगरेशन में मैंने तीसरे पर प्रविष्टि जोड़ी (3) रेखा:
# sudo sed -ri "3 i $WINDNS_IP $WINDNS" /etc/hosts
विंडोज और लिनक्स बॉक्स के लिए प्रमाणीकरण और फ़ाइल साझाकरण प्रक्रियाओं को अपनी घड़ियों को सहमत होने की आवश्यकता है। NTP सेवा के साथ ऐसा करें, और Ubuntu के सर्वर संस्करण पर NTP सेवा स्थापित और एक (1) NTP के साथ कॉन्फ़िगर होकर आती है । उबंटू एक से पहले अपना जोड़ें (या इसे पूरी तरह से बदलें)। मैं जिस नेटवर्क से जुड़ रहा था उसमें DNS सर्वर था जो NTP सेवा को भी सेवा दे रहा था।
# sudo sed -ri "s/^(server[ \t]+)(.+)/\1$WINDNS\n\1\2/" /etc/ntp.conf
NTP डेमॉन को पुनरारंभ करें:
# sudo /etc/init.d/ntp restart
कर्बरोस विन्यास।
यहां दिए गए निर्देशों का शाब्दिक रूप से ध्यान नहीं दिया जाना चाहिए: जब आप फ़ाइलों को संपादित करते हैं तो आपके नेटवर्क के लिए उपयुक्त मानों को बदलने MYDOMAIN.LOCAL
और srv1.mydomain.local
उन्हें बदलने की आवश्यकता होती है, लेकिन ध्यान दें कि जहां UPPERCASE का उपयोग किया जाता है, वहां आवश्यक है ।
यदि, apt-get install
केर्बरोस के दौरान आपको "डिफ़ॉल्ट डोमेन" प्रश्न का सही उत्तर देने के लिए अंतर्दृष्टि थी, तो, आपके लिए अच्छा है, अन्यथा आपको निम्नलिखित कार्य करना होगा।
/etc/krb5.conf
फ़ाइल को पहले (ऊपर स्थापित) संपादित करें ।
खोजें [libdefaults]
अनुभाग और महत्वपूर्ण मूल्य जोड़ी बदलने के लिए:
[libdefaults]
default_realm = MYDOMAIN.LOCAL
[realms]
फ़ाइल के अनुभाग में निम्नलिखित जोड़ें :
MYDOMAIN.LOCAL = {
kdc = srv1.mydomain.local
admin_server = srv1.mydomain.local
default_domain = MYDOMAIN.LOCAL
}
[domain_realm]
फ़ाइल के अनुभाग में निम्नलिखित जोड़ें :
.mydomain.local = MYDOMAIN.LOCAL
mydomain.local = MYDOMAIN.LOCAL
इस बिंदु पर एक अच्छा परीक्षण यह देखना है कि क्या आपका एडी नियंत्रक आपको केर्बरोस टिकट जारी करेगा। यह आवश्यक नहीं है, लेकिन यह आप में से कुछ को
गिड्डी बना सकता है:
# kinit <some_windows_domain_user>
फिर टिकट देखने के लिए:
# klist
आप टिकट कैश और एक्सपायरी और नवीनीकरण के बारे में सामान देखेंगे। एक बार गिडगिडाने के बाद, आप टिकट को जारी / नष्ट कर सकते हैं:
# kdestroy
सांबा को कॉन्फ़िगर करें।
निम्नलिखित के अनुसार:
ऐसे समय होते हैं जब CIFS का उपयोग नहीं किया जा सकता है या कोई अन्य नेटवर्क फाइल सिस्टम विकल्प बेहतर है। यदि अतिरिक्त सुरक्षा के लिए kerberos (krb5 / SPNEGO) प्रमाणीकरण समर्थन की आवश्यकता है, तो Sif के smbclient या smbfs का उपयोग cifs
Alas के बजाय किया जाना चाहिए , cifs
ubuntu के लिए कर्नेल में समर्थन ..04 (कर्नेल संस्करण 2.6.32.9 के आधार पर) संस्करण 1.61 पर है, और कर्नेल डॉक्यूमेंटेशन के अनुसार, वर्जन 1.54 के बाद से प्रायोगिक केर्बरोस कार्यान्वयन हुआ है।
तो वहाँ तुम हो। मुझे पता नहीं है कि cifs
क्या काम करेगा तो मैं आपको सांबा कॉन्फ़िगरेशन देता हूं:
बदलें /etc/samba/smb.conf
(याद रखें कि मैं उबंटू के एक साफ डिस्ट्रो से काम कर रहा था, इसलिए मुझे कुछ भी तोड़ने की चिंता नहीं थी):
[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
विभिन्न सेवाओं को शुरू करना और बंद करना।
# sudo /etc/init.d/winbind stop
# sudo service smbd restart
# sudo /etc/init.d/winbind start
प्रमाणीकरण सेट करें।
संपादित करें /etc/nsswitch.conf
। मैं अपनी आवश्यकता के लिए निम्नलिखित कमांड चलाने में सक्षम था:
# sed -ri 's/(compat)/\1 winbind/' /etc/nsswitch.conf
यहाँ मेरी /etc/nsswitch.conf
फाइल की सामग्री दी गई है:
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
विभिन्न सेवाओं को शुरू करना और बंद करना।
# sudo /etc/init.d/winbind stop
# sudo service smbd restart
# sudo /etc/init.d/winbind start
डोमेन में कंप्यूटर से जुड़ें। मुझे यकीन नहीं है कि यह आवश्यक है; विशेष रूप से smb.conf
फ़ाइल में सुरक्षा विकल्प के कारण ( security = ads
)। शायद कोई इस पर वजन कर सकता है ...
# sudo net ads join -U any_domain_user_account
आपको एक त्रुटि मिल सकती है DNS update failed!
, लेकिन आप डोमेन में शामिल हो जाएंगे। यदि आपको सर्वर नहीं मिल पाने के बारे में कोई त्रुटि मिलती है, तो आपके DNS रिकॉर्ड को संशोधित करने की आवश्यकता है। वें उबंटू स्थापना के दौरान, नेमवेरसर अक्सर आपके गेटवे की ओर इशारा करेगा: अधिकांश राउटर एक DNS सेवा करेंगे। विंडोज़ सर्वर प्रशासन के लिए सर्वोत्तम अभ्यास है एडीसी को डीएनएस को भी चलाना चाहिए। मेरे मामले में मेरे /etc/resolve.conf
इस प्रकार है: एक गूगल डीएनएस, मामले खिड़कियों में एक काफी विश्वसनीय बैकअप एक नीचे चला जाता है है।
nameserver 192.168.20.11
nameserver 8.8.8.8
8.8.8.8
इस बिंदु पर मैं लॉगिन कर सकता हूं (शायद एक रिबूट के बाद), होम निर्देशिकाएं मौजूद नहीं थीं, लेकिन मैं लॉगिन कर सकता था।
लॉगिन पर CIFS बढ़ते हुए
यह अगला कदम मेरे लिए चेरी था; मैं नहीं चाहता था कि हर किसी की वर्किंग डायरेक्टरीज़ का बैकअप लिया जाए और जो बॉक्स उबंटू चल रहा था वह विश्वसनीयता के लिहाज से संदिग्ध था। निम्नलिखित उपयोगकर्ता लॉगिन करके और स्वचालित रूप से अपनी विंडोज़ उपयोगकर्ता निर्देशिका देख सकते हैं ।
pam_mount
मॉड्यूल डाउनलोड करें :
# sudo apt-get install libpam-mount
मैं माउंट बिंदु को पारंपरिक /home/<user>
स्थान में इंगित करना चाहता था : यह हिस्सा /etc/samba/smb.conf
फ़ाइल ( template homedir = /home/%U
) द्वारा कॉन्फ़िगर किया गया है । लेकिन मुझे यह साझा करने और अपनी स्वयं की विंडोज़ निर्देशिका को इंगित करने की आवश्यकता थी। यह /etc/security/pam_mount.conf.xml
फ़ाइल को संपादित करके पूरा किया गया है (जो कि इसके इरादे के बावजूद, XML मानव पठनीय नहीं है ):
निम्नलिखित को जोड़ें /etc/security/pam_mount.conf.xml
और सूट में परिवर्तन करें:
<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>
मेरे नासमझ माउंट बिंदु के कारण मुझे यह रेखा भी जोड़नी पड़ी:
<umount>umount %(MNTPT)/%(USER)</umount>
और ताकि उपयोगकर्ता निर्देशिका (आरोह बिंदु के लिए) स्वचालित रूप से लाइन ढूंढे और इसे बना दे:
<mkmountpoint enable="1" remove="false" />
remove="false"
बिट काफी महत्वपूर्ण है: अगर यह सच करने के लिए सेट, pam_mount.so
निर्देशिका माउंट बिंदु यदि कोई उपयोगकर्ता एक से अधिक बार लॉग इन किया है जो यह नहीं कर सकते नष्ट करने के लिए कोशिश करता है। आप उस मामले में क्या समाप्त करते हैं, आपके सिस्टम पर बहुत सारे आवारा आरोहण हैं।
pam_mount.so
अभी भी काफी वादा के अनुसार वितरित नहीं है। यह वर्तमान रूप में आरोहियों को जमा करता रहता है और घर निर्देशिकाओं का निर्माण नहीं हो रहा है। यहाँ और पिछले बीटा 2 के बीच 10.04 सर्वर के बीच, यह काम कर रहा था। हालांकि मैं इसे फिर से नहीं बना सकता।
निर्देशिका निर्माण के लिए औसत समय में मैं भरोसा कर रहा हूं pam_mkhomedir.so
, और pam_mount.so
समायोजित करने के लिए लाइन से ठीक पहले एक पंक्ति अटक गई है ।
मैंने अभी भी कई बढ़ते मुद्दे को हल नहीं किया है। लेकिन जब तक pam_mount.so
तय नहीं हो जाता है, यह वही है जो मुझे अपनी /etc/pam.d/common-session
फाइल में मिला है :
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
बस। इसने मेरे लिए काम किया, और मुझे आशा है कि आप इसे उपयोगी पाएंगे।
कई संसाधनों पर विचार किया गया ताकि मैं इसका पता लगा सकूं। यहाँ एक छोटी सूची है (इनमें से कई लिंक विषय पर मेरे स्वयं के प्रश्नों की ओर इशारा करते हैं):
sudo
डी है, या मैं कुछ याद कर रहा हूँ?
sudo
' - और यह बेहतर है ... किस तरीके से? (यदि कोई उपयोगकर्ता खाता जो sudo का हकदार है, तो समझौता किया जाता है, यह मूल रूप से एक ही बात है। और यह मूल रूप से समान रूप से सरल है [या नहीं] रूट या उपयोगकर्ता खातों को bruteforce करने के लिए। सबसे अच्छा है कि केवल पब-कुंजी को लॉगिन करें, और सभी पासवर्ड को अक्षम करें। आधारित लॉगिन।)