आरएचईएल 7 पर प्रारंभिक सर्वर सेटअप और कॉन्फ़िगरेशन


इस ट्यूटोरियल में, हम पहले कॉन्फ़िगरेशन चरणों पर चर्चा करेंगे, जिनकी देखभाल आपको नंगे धातु-सर्वर पर या वर्चुअल प्राइवेट सर्वर पर Red Hat Enterprise Linux 7 की एक नई स्थापना के बाद करनी होगी।

  1. RHEL 7 Minimal Installation

आरएचईएल 7 सिस्टम को अपडेट करें

पहले चरण में अपने RHEL सर्वर कंसोल में रूट विशेषाधिकारों के साथ या सीधे रूट के रूप में कंसोल करें और नीचे दिए गए कमांड को चलाएं ताकि आपके सिस्टम घटकों को पूरी तरह से अपडेट किया जा सके, जैसे कि स्थापित पैकेज, कर्नेल। या अन्य सुरक्षा पैच लागू करें।

# yum check-update
# yum update

सभी स्थानीय रूप से डाउनलोड किए गए पैकेज और अन्य संबंधित YUM कैश को निकालने के लिए, नीचे दिए गए कमांड को निष्पादित करें।

# yum clean all

आरएचईएल 7 पर सिस्टम यूटिलिटीज स्थापित करें

ये निम्नलिखित उपयोगिताओं दिन-प्रतिदिन के सिस्टम प्रशासन के लिए उपयोगी साबित हो सकती हैं: नैनो (vi संपादक की जगह पाठ संपादक), wget, कर्ल (संकुल डाउनलोड करने के लिए उपयोग की जाने वाली उपयोगिताओं) अधिक नेटवर्क पर) नेट-टूल , lsof (स्थानीय नेटवर्किंग के प्रबंधन के लिए उपयोगिताओं) और बैश-पूरा (कमांड लाइन स्वतः पूर्ण)।

नीचे कमांड को निष्पादित करके उन सभी को एक-शॉट में स्थापित करें।

# yum install nano wget curl net-tools lsof bash-completion

आरएचईएल 7 में सेटअप नेटवर्किंग

आरएचईएल 7 में उपकरणों की एक विस्तृत श्रृंखला है जो नेटवर्क कॉन्फ़िगरेशन फ़ाइल को मैन्युअल रूप से संपादित करने और प्रबंधित करने से लेकर आईपी, ifconfig, nmtui , जैसे कमांड का उपयोग करने के लिए उपयोग किया जा सकता है nmcli या मार्ग है।

नेटवर्क कॉन्फ़िगरेशन को प्रबंधित करने और बदलने के लिए एक शुरुआत करने वाला सबसे आसान उपयोगिता है nmtui ग्राफिकल कमांड लाइन।

सिस्टम होस्टनाम को nmtui उपयोगिता के माध्यम से बदलने के लिए, nmtui-hostname कमांड निष्पादित करें, अपना मशीन होस्टनाम सेट करें और ठीक दबाएं, जैसा कि सचित्र है। नीचे स्क्रीनशॉट में।

# nmtui-hostname

नेटवर्क इंटरफ़ेस में हेरफेर करने के लिए, nmtui-edit कमांड निष्पादित करें, जिस इंटरफ़ेस को आप संपादित करना चाहते हैं उसे चुनें और राइट मेनू से एडिट का चयन करें, जैसा कि नीचे स्क्रीनशॉट में दिखाया गया है।

एक बार जब आप nmtui उपयोगिता द्वारा प्रदान किए गए ग्राफ़िकल इंटरफ़ेस में आप नेटवर्क इंटरफ़ेस आईपी सेटिंग्स को नीचे स्क्रीनशॉट में सचित्र के रूप में सेट कर सकते हैं। जब आप समाप्त करते हैं, तो कॉन्फ़िगरेशन को बचाने और छोड़ने के लिए ठीक का उपयोग करके [टैब] कुंजी पर नेविगेट करें।

नेटवर्क इंटरफ़ेस नए कॉन्फ़िगरेशन को लागू करने के लिए, nmtui-connect कमांड निष्पादित करें, उस इंटरफ़ेस का चयन करें जिसे आप प्रबंधित करना चाहते हैं और निष्क्रिय करें/सक्रिय करें विकल्प decommission और उदय के लिए। आईपीसेटिंग्स के साथ इंटरफेस, जैसा कि नीचे स्क्रीनशॉट में प्रस्तुत किया गया है।

# nmtui-connect

नेटवर्क इंटरफ़ेस सेटिंग्स देखने के लिए, आप इंटरफ़ेस फ़ाइल की सामग्री का निरीक्षण कर सकते हैं या आप नीचे दिए गए आदेश जारी कर सकते हैं।

# ifconfig enp0s3
# ip a
# ping -c2 google.com

अन्य उपयोगी उपयोगिताओं जिनका उपयोग गति, लिंक स्थिति को प्रबंधित करने या मशीन नेटवर्क इंटरफेस के बारे में जानकारी प्राप्त करने के लिए किया जा सकता है, वे हैं एथ्टूल और mii-tool

# ethtool enp0s3
# mii-tool enp0s3

नया उपयोगकर्ता खाता बनाएँ

अगले चरण पर, अपने सर्वर में रूट के रूप में लॉग इन करते समय, नीचे दिए गए कमांड के साथ एक नया उपयोगकर्ता बनाएं। इस उपयोगकर्ता का उपयोग बाद में आपके सिस्टम में लॉगिन करने और प्रशासनिक कार्य करने के लिए किया जाएगा।

# adduser tecmint_user

उपर्युक्त कमांड का उपयोग करके उपयोगकर्ता को जोड़ने के बाद, नीचे दिए गए आदेश को जारी करके इस उपयोगकर्ता के लिए एक मजबूत पासवर्ड सेटअप करें।

# passwd tecmint_user

ऐसे मामलों में जहां आप इस नए उपयोगकर्ता को प्रयास में पहले लॉग में अपना पासवर्ड बदलने के लिए मजबूर करना चाहते हैं, नीचे दिए गए कमांड को निष्पादित करें।

# chage -d0 tecmint_user

इस नए उपयोगकर्ता खाते में अभी के लिए नियमित खाता विशेषाधिकार हैं और यह sudo कमांड द्वारा प्रशासनिक कार्य नहीं कर सकता है।

व्यवस्थापकीय विशेषाधिकारों को निष्पादित करने के लिए रूट खाते के उपयोग से बचने के लिए, इस नए उपयोगकर्ता को " पहिया " सिस्टम समूह में जोड़कर प्रशासनिक विशेषाधिकार प्रदान करें।

निष्पादन के लिए आवश्यक कमांड लिखने से पहले " पहिया " समूह से संबंधित उपयोगकर्ताओं को RHEL में डिफ़ॉल्ट रूप से रूट विशेषाधिकार के साथ कमांड चलाने की अनुमति दी जाती है।

उदाहरण के लिए, उपयोगकर्ता " tecmint_user " को " पहिया " समूह में जोड़ने के लिए, नीचे दिए गए कमांड को निष्पादित करें।

# usermod -aG wheel tecmint_user

बाद में, नए उपयोगकर्ता के साथ सिस्टम में लॉग इन करें और यदि उपयोगकर्ता के पास रूट अधिकार दिए गए हैं तो परीक्षण करने के लिए> sudo yum अपडेट कमांड के माध्यम से सिस्टम को अपडेट करने का प्रयास करें।

# su - tecmint_user
$ sudo yum update

RHEL 7 पर SSH सार्वजनिक कुंजी प्रमाणीकरण कॉन्फ़िगर करें

अपने RHEL सेवा सुरक्षा को बढ़ाने के लिए अगले चरण पर, SSH सार्वजनिक कुंजी प्रमाणीकरण को नए उपयोगकर्ता के लिए कॉन्फ़िगर करें। SSH कुंजी जोड़ी बनाने के लिए, सार्वजनिक और निजी कुंजी, अपने सर्वर कंसोल पर निम्न आदेश निष्पादित करें। सुनिश्चित करें कि आप उस सिस्टम से लॉग इन हैं जिसमें आप SSH कुंजी सेट कर रहे हैं।

# su - tecmint_user
$ ssh-keygen -t RSA

जबकि कुंजी उत्पन्न होती है, तो आपको कुंजी को सुरक्षित करने के लिए पासफ़्रेज़ जोड़ने के लिए कहा जाएगा। यदि आप SSH सर्वर के माध्यम से कार्यों को स्वचालित करना चाहते हैं तो आप एक मजबूत पासफ़्रेज़ दर्ज कर सकते हैं या पासफ़्रेज़ को खाली छोड़ सकते हैं।

SSH कुंजी उत्पन्न होने के बाद, नीचे दिए गए कमांड को निष्पादित करके सार्वजनिक कुंजी जोड़े को दूरस्थ सर्वर पर कॉपी करें। सार्वजनिक कुंजी को दूरस्थ SSH सर्वर में स्थापित करने के लिए आपको उस सर्वर में लॉग इन करने के लिए क्रेडेंशियल्स वाले उपयोगकर्ता खाते की आवश्यकता होगी।

$ ssh-copy-id [email 

अब आपको प्रमाणीकरण विधि के रूप में निजी कुंजी का उपयोग करके SSH के माध्यम से दूरस्थ सर्वर में प्रवेश करने का प्रयास करना चाहिए। आपको SSH सर्वर से पासवर्ड मांगे बिना अपने आप लॉग इन करने में सक्षम होना चाहिए।

$ ssh [email 

अपनी सार्वजनिक SSH कुंजी की सामग्री को देखने के लिए यदि आप मैन्युअल रूप से कुंजी को दूर SSH सर्वर में स्थापित करना चाहते हैं, तो निम्न आदेश जारी करें।

$ cat ~/.ssh/id_rsa

RHEL 7 पर SSH को सुरक्षित करें

SSH डेमॉन को सुरक्षित करने के लिए और पासवर्ड या कुंजी के माध्यम से रूट खाते में दूरस्थ SSH को अस्वीकार करने के लिए, SSH सर्वर मुख्य कॉन्फ़िगरेशन फ़ाइल खोलें और निम्नलिखित परिवर्तन करें।

$ sudo vi /etc/ssh/sshd_config

लाइन की खोज करें #PermitRootLogin हाँ , लाइन की शुरुआत से # साइन (हैशटैग) को हटाकर लाइन को अनइंस्टॉल करें और नीचे दिखाए गए तरह दिखने के लिए लाइन को संशोधित करें अंश।

PermitRootLogin no

बाद में, नई सेटिंग्स को लागू करने के लिए SSH सर्वर को पुनरारंभ करें और रूट खाते के साथ इस सर्वर में प्रवेश करने की कोशिश करके कॉन्फ़िगरेशन का परीक्षण करें। SSH के माध्यम से रूट खाते की पहुंच अब तक प्रतिबंधित होनी चाहिए।

$ sudo systemctl restart sshd

ऐसी स्थितियां हैं जहां आप निष्क्रियता की अवधि के बाद अपने सर्वर के सभी दूरस्थ एसएसएच कनेक्शनों को स्वचालित रूप से डिस्कनेक्ट करना चाहते हैं।

इस सुविधा को सिस्टम-वाइड सक्षम करने के लिए, नीचे दिए गए कमांड को निष्पादित करें, जो TMOUT बैश चर को मुख्य bashrc फ़ाइल में जोड़ता है और हर SSH कनेक्शन को डिस्कनेक्ट या ड्रॉप करने के लिए मजबूर करता है। निष्क्रियता के 5 मिनट बाद।

$ su -c 'echo "TMOUT=300" >> /etc/bashrc'

यह जाँचने के लिए कि कमांड को /etc/bashrc फ़ाइल के अंत में जोड़ा गया है या नहीं, टेल कमांड चलाएँ। बाद के सभी SSH कनेक्शन अब से 5 मिनट निष्क्रियता के बाद स्वचालित रूप से बंद हो जाएंगे।

$ tail /etc/bashrc

नीचे दिए गए स्क्रीनशॉट में, ड्रूपल मशीन से आरएचईएल सर्वर तक दूरस्थ एसएसएच सत्र 5 मिनट के बाद ऑटो-लॉगआउट किया गया है।

RHEL 7 पर फ़ायरवॉल कॉन्फ़िगर करें

अगले चरण पर नेटवर्क स्तर पर सिस्टम को और सुरक्षित करने के लिए फ़ायरवॉल को कॉन्फ़िगर करें। सर्वर पर iptables नियमों का प्रबंधन करने के लिए फ़ायरवॉल एप्लिकेशन के साथ RHEL 7 जहाज।

सबसे पहले, सुनिश्चित करें कि नीचे दिए गए आदेश को जारी करके आपके सिस्टम में फ़ायरवॉल चल रहा है। यदि फायरवालड डेमन को रोक दिया जाता है, तो आपको इसे निम्न कमांड से शुरू करना चाहिए।

$ sudo systemctl status firewalld
$ sudo systemctl start firewalld
$ sudo systemctl enable firewalld

एक बार फ़ायरवॉल सक्षम और आपके सिस्टम में चल रहा है, तो आप फ़ायरवॉल नीति की जानकारी सेट करने और कुछ विशिष्ट नेटवर्क पोर्ट, जैसे SSH डेमॉन, कनेक्शन के लिए ट्रैफ़िक की अनुमति देने के लिए फ़ायरवॉल-cmd कमांड लाइन उपयोगिता का उपयोग कर सकते हैं। एक आंतरिक वेब सर्वर या अन्य संबंधित नेटवर्क सेवाओं के लिए।

क्योंकि अभी हम अपने सर्वर में केवल SSH डेमॉन चला रहे हैं, हम निम्नलिखित कमांड जारी करके SSH सर्विस पोर्ट के लिए ट्रैफ़िक की अनुमति देने के लिए फ़ायरवॉल पॉलिसी को समायोजित कर सकते हैं।

$ sudo firewall-cmd --add-service=ssh --permanent
$ sudo firewall-cmd --reload

अगली बार सर्वर शुरू होने पर, नियम लागू किए बिना, फ़्लाइवॉल नियम को फ़्लाई-फ्लाई पर जोड़ने के लिए, नीचे दिए गए कमांड सिंटैक्स का उपयोग करें।

$ sudo firewall-cmd --add-service=sshd

यदि आप अपने सर्वर में अन्य नेटवर्क सेवाओं, जैसे HTTP सर्वर, एक मेल सर्वर या अन्य नेटवर्क सेवाओं को स्थापित करते हैं, तो आप विशिष्ट कनेक्शनों की अनुमति के लिए नियम जोड़ सकते हैं।

$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https
$ sudo firewall-cmd --permanent --add-service=smtp

सभी फ़ायरवॉल नियमों को सूचीबद्ध करने के लिए नीचे कमांड चलाएं।

$ sudo firewall-cmd --permanent --list-all

RHEL 7 में अनावश्यक सेवाओं को हटा दें

डिफ़ॉल्ट रूप से आपके आरएचईएल सर्वर में चलने वाली सभी नेटवर्क सेवाओं (टीसीपी और यूडीपी) की एक सूची प्राप्त करने के लिए, नीचे दिए गए नमूने में सचित्र के रूप में एसएस कमांड जारी करें।

$ sudo ss -tulpn

ss कमांड कुछ दिलचस्प सेवाओं को प्रकट करेगी जो आपके सिस्टम में डिफ़ॉल्ट रूप से शुरू और चल रही हैं, जैसे पोस्टफिक्स मास्टर सेवा और NTP प्रोटोकॉल के लिए जिम्मेदार सर्वर।

यदि आप इस सर्वर को एक मेल सर्वर को कॉन्फ़िगर करने की योजना नहीं बना रहे हैं, तो आपको नीचे दिए गए आदेशों को जारी करके पोस्टफिक्स डेमॉन को रोकना, अक्षम करना और हटाना चाहिए।

$ sudo systemctl stop postfix.service 
$ sudo yum remove postfix

हाल ही में, NTP प्रोटोकॉल पर कुछ बुरा DDOS हमलों की सूचना मिली है। यदि आप अपने RHEL सर्वर को एनटीपी सर्वर के रूप में चलाने के लिए आंतरिक क्लाइंट के लिए इस सर्वर के साथ समय सिंक करने के लिए कॉन्फ़िगर करने की योजना नहीं बना रहे हैं, तो आपको नीचे दिए गए आदेश जारी करके पूरी तरह से अक्षम करना चाहिए और क्रॉनिकल डेमॉन को हटा देना चाहिए।

$ sudo systemctl stop chronyd.service 
$ sudo yum remove chrony

फिर से, ss कमांड चलाएं ताकि यह पता लगाया जा सके कि आपके सिस्टम में अन्य नेटवर्क सेवाएं चल रही हैं या नहीं और उन्हें अक्षम और हटा दें।

$ sudo ss -tulpn

अपने सर्वर के लिए सही समय प्रदान करने के लिए और ऊपरी समय के सहकर्मी सर्वर के साथ समय को सिंक्रनाइज़ करने के लिए, आप नीचे दिए गए आदेशों को निष्पादित करके, सार्वजनिक एनटीपी सर्वर के साथ ntpdate उपयोगिता और सिंक समय स्थापित कर सकते हैं।

$ sudo yum install ntpdate
$ sudo ntpdate 0.uk.pool.ntp.org

ntpdate समय को स्वचालित करने के लिए किसी भी उपयोगकर्ता के हस्तक्षेप के बिना हर दिन निष्पादित होने वाली कमांड को सिंक्रनाइज़ करें, निम्न सामग्री के साथ आधी रात को चलाने के लिए एक नया क्रॉस्टैब नौकरी शेड्यूल करें।

$ sudo crontab -e

Crontab फ़ाइल अंश:

@daily /usr/sbin/ntpdate 0.uk.pool.ntp.org

बस इतना ही! अब, आप आरएचईएल सर्वर को कस्टम नेटवर्क सेवाओं या अनुप्रयोगों के लिए आवश्यक अतिरिक्त सॉफ़्टवेयर स्थापित करने के लिए तैयार किया जाता है, जैसे कि वेब सर्वर, डेटाबेस सर्वर, फ़ाइल शेयर सेवा या अन्य विशिष्ट अनुप्रयोगों को स्थापित करना और कॉन्फ़िगर करना।

RHEL 7 सर्वर को और अधिक सुरक्षित और कठोर बनाने के लिए, इन निम्नलिखित लेखों को देखें।

  1. The Mega Guide To Harden and Secure RHEL 7 – Part 1
  2. The Mega Guide To Harden and Secure RHEL 7 – Part 2

यदि आप इस RHEL 7 सिस्टम पर वेबसाइटों को तैनात करने की योजना बना रहे हैं, तो LAMP स्टैक या LEMP स्टैक को सेटअप और कॉन्फ़िगर करना सीखें।