RHCSA സീരീസ്: SSH സുരക്ഷിതമാക്കൽ, ഹോസ്റ്റ്നാമം സജ്ജീകരിക്കൽ, നെറ്റ്uവർക്ക് സേവനങ്ങൾ പ്രവർത്തനക്ഷമമാക്കൽ - ഭാഗം 8


ഒരു സിസ്റ്റം അഡ്മിനിസ്ട്രേറ്റർ എന്ന നിലയിൽ, ടെർമിനൽ എമുലേറ്റർ ഉപയോഗിച്ച് വിവിധ അഡ്മിനിസ്ട്രേഷൻ ജോലികൾ ചെയ്യുന്നതിന് നിങ്ങൾ പലപ്പോഴും റിമോട്ട് സിസ്റ്റങ്ങളിലേക്ക് ലോഗിൻ ചെയ്യേണ്ടിവരും. നിങ്ങൾ ഒരു യഥാർത്ഥ (ഭൗതിക) ടെർമിനലിന് മുന്നിൽ അപൂർവ്വമായി ഇരിക്കും, അതിനാൽ നിങ്ങളോട് നിയന്ത്രിക്കാൻ ആവശ്യപ്പെടുന്ന മെഷീനുകളിലേക്ക് വിദൂരമായി ലോഗിൻ ചെയ്യുന്നതിനുള്ള ഒരു മാർഗം നിങ്ങൾ സജ്ജീകരിക്കേണ്ടതുണ്ട്.

വാസ്തവത്തിൽ, ഒരു ഫിസിക്കൽ ടെർമിനലിന് മുന്നിൽ നിങ്ങൾ ചെയ്യേണ്ട അവസാനത്തെ കാര്യമായിരിക്കാം അത്. സുരക്ഷാ കാരണങ്ങളാൽ, ഈ ആവശ്യത്തിനായി ടെൽനെറ്റ് ഉപയോഗിക്കുന്നത് നല്ല ആശയമല്ല, കാരണം എല്ലാ ട്രാഫിക്കും എൻക്രിപ്റ്റ് ചെയ്യാത്ത, പ്ലെയിൻ ടെക്സ്റ്റിൽ വയർ വഴി പോകുന്നു.

കൂടാതെ, ഈ ലേഖനത്തിൽ, ബൂട്ടിൽ യാന്ത്രികമായി ആരംഭിക്കുന്നതിന് നെറ്റ്uവർക്ക് സേവനങ്ങൾ എങ്ങനെ കോൺഫിഗർ ചെയ്യാമെന്നും ഞങ്ങൾ അവലോകനം ചെയ്യും, കൂടാതെ നെറ്റ്uവർക്കിന്റെയും ഹോസ്റ്റ് നെയിം റെസല്യൂഷനും സ്റ്റാറ്റിക്കലായോ ഡൈനാമിക്കോ എങ്ങനെ സജ്ജീകരിക്കാമെന്ന് മനസിലാക്കുക.

SSH കമ്മ്യൂണിക്കേഷൻ ഇൻസ്റ്റാൾ ചെയ്യുകയും സുരക്ഷിതമാക്കുകയും ചെയ്യുന്നു

നിങ്ങൾക്ക് SSH ഉപയോഗിച്ച് ഒരു RHEL 7 ബോക്സിലേക്ക് വിദൂരമായി ലോഗിൻ ചെയ്യാൻ കഴിയുന്നതിന്, നിങ്ങൾ openssh, openssh-clients, openssh-servers പാക്കേജുകൾ ഇൻസ്റ്റാൾ ചെയ്യേണ്ടതുണ്ട്. ഇനിപ്പറയുന്ന കമാൻഡ് റിമോട്ട് ലോഗിൻ പ്രോഗ്രാം മാത്രമല്ല, സുരക്ഷിതമായ ഫയൽ ട്രാൻസ്ഫർ ടൂളും റിമോട്ട് ഫയൽ കോപ്പി യൂട്ടിലിറ്റിയും ഇൻസ്റ്റാൾ ചെയ്യും:

# yum update && yum install openssh openssh-clients openssh-servers

ഏതെങ്കിലും ഘട്ടത്തിൽ അല്ലെങ്കിൽ മറ്റൊരു സമയത്ത് ക്ലയന്റും സെർവറും പോലെ ഒരേ മെഷീൻ ഉപയോഗിക്കാൻ നിങ്ങൾ ആഗ്രഹിച്ചേക്കാവുന്നതിനാൽ സെർവർ എതിരാളികൾ ഇൻസ്റ്റാൾ ചെയ്യുന്നത് നല്ല ആശയമാണെന്ന കാര്യം ശ്രദ്ധിക്കുക.

ഇൻസ്റ്റാളേഷന് ശേഷം, നിങ്ങളുടെ SSH സെർവറിലേക്ക് വിദൂര ആക്uസസ് സുരക്ഷിതമാക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെങ്കിൽ നിങ്ങൾ കണക്കിലെടുക്കേണ്ട രണ്ട് അടിസ്ഥാന കാര്യങ്ങളുണ്ട്. ഇനിപ്പറയുന്ന ക്രമീകരണങ്ങൾ /etc/ssh/sshd_config ഫയലിൽ ഉണ്ടായിരിക്കണം.

1. sshd ഡെമൺ കേൾക്കുന്ന പോർട്ട് 22 (സ്ഥിര മൂല്യം) എന്നതിൽ നിന്ന് ഉയർന്ന പോർട്ടിലേക്ക് (2000 അല്ലെങ്കിൽ അതിൽ കൂടുതലോ) മാറ്റുക, എന്നാൽ ആദ്യം തിരഞ്ഞെടുത്ത പോർട്ട് ഉപയോഗിക്കുന്നില്ലെന്ന് ഉറപ്പാക്കുക.

ഉദാഹരണത്തിന്, നിങ്ങൾ പോർട്ട് 2500 തിരഞ്ഞെടുത്തുവെന്ന് കരുതുക. തിരഞ്ഞെടുത്ത പോർട്ട് ഉപയോഗിക്കുന്നുണ്ടോ ഇല്ലയോ എന്ന് പരിശോധിക്കാൻ നെറ്റ്സ്റ്റാറ്റ് ഉപയോഗിക്കുക:

# netstat -npltu | grep 2500

netstat ഒന്നും തിരികെ നൽകുന്നില്ലെങ്കിൽ, നിങ്ങൾക്ക് sshd-നായി പോർട്ട് 2500 സുരക്ഷിതമായി ഉപയോഗിക്കാം, കോൺഫിഗറേഷൻ ഫയലിലെ പോർട്ട് സെറ്റിംഗ് ഇനിപ്പറയുന്ന രീതിയിൽ മാറ്റണം:

Port 2500

2. പ്രോട്ടോക്കോൾ 2 മാത്രം അനുവദിക്കുക:

Protocol 2

3. പ്രാമാണീകരണ സമയപരിധി 2 മിനിറ്റായി കോൺഫിഗർ ചെയ്യുക, റൂട്ട് ലോഗിനുകൾ അനുവദിക്കരുത്, കൂടാതെ ssh വഴി ലോഗിൻ ചെയ്യാൻ അനുവദിക്കുന്ന ഉപയോക്താക്കളുടെ ലിസ്റ്റ് ചുരുങ്ങിയത് പരിമിതപ്പെടുത്തുക:

LoginGraceTime 2m
PermitRootLogin no
AllowUsers gacanepa

4. സാധ്യമെങ്കിൽ, പാസ്uവേഡ് പ്രാമാണീകരണത്തിന് പകരം കീ അടിസ്ഥാനമാക്കിയുള്ളത് ഉപയോഗിക്കുക:

PasswordAuthentication no
RSAAuthentication yes
PubkeyAuthentication yes

നിങ്ങളുടെ ക്ലയന്റ് മെഷീനിൽ നിങ്ങളുടെ ഉപയോക്തൃനാമമുള്ള ഒരു കീ ജോടി നിങ്ങൾ ഇതിനകം സൃഷ്ടിച്ചിട്ടുണ്ടെന്നും ഇവിടെ വിശദീകരിച്ചിരിക്കുന്നതുപോലെ അത് നിങ്ങളുടെ സെർവറിലേക്ക് പകർത്തിയിട്ടുണ്ടെന്നും ഇത് അനുമാനിക്കുന്നു.

  1. SSH പാസ്uവേഡ് ഇല്ലാത്ത ലോഗിൻ പ്രവർത്തനക്ഷമമാക്കുക

നെറ്റ്uവർക്കിംഗും നെയിം റെസല്യൂഷനും കോൺഫിഗർ ചെയ്യുന്നു

1. ഓരോ സിസ്റ്റം അഡ്മിനിസ്ട്രേറ്ററും ഇനിപ്പറയുന്ന സിസ്റ്റം-വൈഡ് കോൺഫിഗറേഷൻ ഫയലുകൾ നന്നായി അറിഞ്ഞിരിക്കണം:

    ചെറിയ നെറ്റ്uവർക്കുകളിലെ <---> IP-കൾ പരിഹരിക്കാൻ
  1. /etc/hosts ഉപയോഗിക്കുന്നു.

/etc/hosts ഫയലിലെ എല്ലാ വരികൾക്കും ഇനിപ്പറയുന്ന ഘടനയുണ്ട്:

IP address - Hostname - FQDN

ഉദാഹരണത്തിന്,

192.168.0.10	laptop	laptop.gabrielcanepa.com.ar

2. /etc/resolv.conf DNS സെർവറുകളുടെയും തിരയൽ ഡൊമെയ്uനിന്റെയും IP വിലാസങ്ങൾ വ്യക്തമാക്കുന്നു, ഒരു ഡൊമെയ്uൻ സഫിക്uസ് നൽകാത്തപ്പോൾ നൽകിയിരിക്കുന്ന ചോദ്യ നാമം പൂർണ്ണമായി യോഗ്യതയുള്ള ഒരു ഡൊമെയ്uൻ നാമത്തിലേക്ക് പൂരിപ്പിക്കുന്നതിന് ഇത് ഉപയോഗിക്കുന്നു.

സാധാരണ സാഹചര്യങ്ങളിൽ, ഈ ഫയൽ സിസ്റ്റം നിയന്ത്രിക്കുന്നതിനാൽ നിങ്ങൾ എഡിറ്റ് ചെയ്യേണ്ടതില്ല. എന്നിരുന്നാലും, നിങ്ങൾക്ക് DNS സെർവറുകൾ മാറ്റണമെങ്കിൽ, ഓരോ വരിയിലും ഇനിപ്പറയുന്ന ഘടനയിൽ ഉറച്ചുനിൽക്കേണ്ടതുണ്ടെന്ന് അറിയിക്കുക:

nameserver - IP address

ഉദാഹരണത്തിന്,

nameserver 8.8.8.8

3. 3. /etc/host.conf ഒരു നെറ്റ്uവർക്കിനുള്ളിൽ ഹോസ്റ്റ്നാമങ്ങൾ പരിഹരിക്കുന്ന രീതികളും ക്രമവും വ്യക്തമാക്കുന്നു. മറ്റൊരു വിധത്തിൽ പറഞ്ഞാൽ, ഏത് സേവനങ്ങളാണ് ഉപയോഗിക്കേണ്ടതെന്നും ഏത് ക്രമത്തിലാണ് റിസോൾവറിന്റെ പേര് പറയുന്നത്.

ഈ ഫയലിന് നിരവധി ഓപ്ഷനുകൾ ഉണ്ടെങ്കിലും, ഏറ്റവും സാധാരണവും അടിസ്ഥാനപരവുമായ സജ്ജീകരണത്തിൽ ഇനിപ്പറയുന്ന വരികൾ ഉൾപ്പെടുന്നു:

order bind,hosts

റിസോൾവർ ആദ്യം resolv.conf-ൽ വ്യക്തമാക്കിയ നെയിംസെർവറുകളിലും തുടർന്ന് പേര് റെസല്യൂഷനായി /etc/hosts ഫയലിലും നോക്കണമെന്ന് ഇത് സൂചിപ്പിക്കുന്നു.

4. /etc/sysconfig/network എല്ലാ നെറ്റ്uവർക്ക് ഇന്റർഫേസുകൾക്കുമുള്ള റൂട്ടിംഗും ആഗോള ഹോസ്റ്റ് വിവരങ്ങളും ഉൾക്കൊള്ളുന്നു. ഇനിപ്പറയുന്ന മൂല്യങ്ങൾ ഉപയോഗിക്കാം:

NETWORKING=yes|no
HOSTNAME=value

മൂല്യം പൂർണ്ണ യോഗ്യതയുള്ള ഡൊമെയ്ൻ നാമം (FQDN) ആയിരിക്കണം.

GATEWAY=XXX.XXX.XXX.XXX

XXX.XXX.XXX.XXX എന്നത് നെറ്റ്uവർക്കിന്റെ ഗേറ്റ്uവേയുടെ IP വിലാസമാണ്.

GATEWAYDEV=value

ഒന്നിലധികം NIC-കളുള്ള ഒരു മെഷീനിൽ, enp0s3 പോലുള്ള ഗേറ്റ്uവേ ഉപകരണമാണ് മൂല്യം.

5. /etc/sysconfig/network-scripts ഉള്ളിലെ ഫയലുകൾ (നെറ്റ്uവർക്ക് അഡാപ്റ്ററുകൾ കോൺഫിഗറേഷൻ ഫയലുകൾ).

മുമ്പ് സൂചിപ്പിച്ച ഡയറക്uടറിക്കുള്ളിൽ, പേരുള്ള നിരവധി പ്ലെയിൻ ടെക്uസ്uറ്റ് ഫയലുകൾ നിങ്ങൾ കണ്ടെത്തും.

ifcfg-name

ഐപി ലിങ്ക് ഷോ നൽകുന്ന എൻഐസിയുടെ പേരാണ് എവിടെ?

ഉദാഹരണത്തിന്:

ലൂപ്പ്ബാക്ക് ഇന്റർഫേസിന് പുറമെ, നിങ്ങളുടെ NIC-കൾക്കായി സമാനമായ കോൺഫിഗറേഷൻ നിങ്ങൾക്ക് പ്രതീക്ഷിക്കാം. ചില വേരിയബിളുകൾ, സജ്ജമാക്കിയാൽ, ഈ പ്രത്യേക ഇന്റർഫേസിനായി /etc/sysconfig/network-ൽ നിലവിലുള്ളവയെ അസാധുവാക്കും. ഈ ലേഖനത്തിൽ വ്യക്തതയ്ക്കായി ഓരോ വരിയും കമന്റ് ചെയ്തിട്ടുണ്ട്, എന്നാൽ യഥാർത്ഥ ഫയലിൽ നിങ്ങൾ അഭിപ്രായങ്ങൾ ഒഴിവാക്കണം:

HWADDR=08:00:27:4E:59:37 # The MAC address of the NIC
TYPE=Ethernet # Type of connection
BOOTPROTO=static # This indicates that this NIC has been assigned a static IP. If this variable was set to dhcp, the NIC will be assigned an IP address by a DHCP server and thus the next two lines should not be present in that case.
IPADDR=192.168.0.18
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
NM_CONTROLLED=no # Should be added to the Ethernet interface to prevent NetworkManager from changing the file.
NAME=enp0s3
UUID=14033805-98ef-4049-bc7b-d4bea76ed2eb
ONBOOT=yes # The operating system should bring up this NIC during boot

ഹോസ്റ്റ്നാമങ്ങൾ ക്രമീകരിക്കുന്നു

Red Hat Enterprise Linux 7-ൽ, സിസ്റ്റത്തിന്റെ ഹോസ്റ്റ്നാമം അന്വേഷിക്കുന്നതിനും സജ്ജമാക്കുന്നതിനും hostnamectl കമാൻഡ് ഉപയോഗിക്കുന്നു.

നിലവിലെ ഹോസ്റ്റ്നാമം പ്രദർശിപ്പിക്കുന്നതിന്, ടൈപ്പ് ചെയ്യുക:

# hostnamectl status

ഹോസ്റ്റ്നാമം മാറ്റാൻ, ഉപയോഗിക്കുക

# hostnamectl set-hostname [new hostname]

ഉദാഹരണത്തിന്,

# hostnamectl set-hostname cinderella

മാറ്റങ്ങൾ പ്രാബല്യത്തിൽ വരുന്നതിന് നിങ്ങൾ ഹോസ്റ്റ് നെയിം ചെയ്ത ഡെമൺ പുനരാരംഭിക്കേണ്ടതുണ്ട് (അതുവഴി മാറ്റം പ്രയോഗിക്കുന്നതിന് നിങ്ങൾ ലോഗ് ഓഫ് ചെയ്ത് വീണ്ടും ഓണാക്കേണ്ടതില്ല):

# systemctl restart systemd-hostnamed

കൂടാതെ, RHEL 7-ൽ ഇതേ ആവശ്യത്തിനായി ഉപയോഗിക്കാവുന്ന nmcli യൂട്ടിലിറ്റിയും ഉൾപ്പെടുന്നു. ഹോസ്റ്റ്നാമം പ്രദർശിപ്പിക്കുന്നതിന്, പ്രവർത്തിപ്പിക്കുക:

# nmcli general hostname

അത് മാറ്റാനും:

# nmcli general hostname [new hostname]

ഉദാഹരണത്തിന്,

# nmcli general hostname rhel7

ബൂട്ടിൽ നെറ്റ്uവർക്ക് സേവനങ്ങൾ ആരംഭിക്കുന്നു

പൂർത്തിയാക്കാൻ, ബൂട്ടിൽ നെറ്റ്uവർക്ക് സേവനങ്ങൾ സ്വയമേവ ആരംഭിക്കുന്നുവെന്ന് എങ്ങനെ ഉറപ്പാക്കാമെന്ന് നമുക്ക് നോക്കാം. ലളിതമായി പറഞ്ഞാൽ, സേവന കോൺഫിഗറേഷൻ ഫയലുകളുടെ [ഇൻസ്റ്റാൾ] വിഭാഗത്തിൽ വ്യക്തമാക്കിയ ചില ഫയലുകളിലേക്ക് സിംലിങ്കുകൾ സൃഷ്ടിച്ചാണ് ഇത് ചെയ്യുന്നത്.

ഫയർവാൾഡിന്റെ കാര്യത്തിൽ (/usr/lib/systemd/system/firewalld.service):

[Install]
WantedBy=basic.target
Alias=dbus-org.fedoraproject.FirewallD1.service

സേവനം പ്രവർത്തനക്ഷമമാക്കാൻ:

# systemctl enable firewalld

മറുവശത്ത്, ഫയർവാൾഡ് പ്രവർത്തനരഹിതമാക്കുന്നത് സിംലിങ്കുകൾ നീക്കം ചെയ്യുന്നതിനുള്ള അവകാശങ്ങൾ നൽകുന്നു:

# systemctl disable firewalld

ഉപസംഹാരം

ഒരു RHEL സെർവറിലേക്ക് SSH വഴി കണക്ഷനുകൾ എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാമെന്നും സുരക്ഷിതമാക്കാമെന്നും അതിന്റെ പേര് എങ്ങനെ മാറ്റാമെന്നും ഒടുവിൽ നെറ്റ്uവർക്ക് സേവനങ്ങൾ ബൂട്ടിൽ ആരംഭിക്കുന്നുവെന്ന് ഉറപ്പാക്കാമെന്നും ഈ ലേഖനത്തിൽ ഞങ്ങൾ സംഗ്രഹിച്ചിരിക്കുന്നു. ഒരു നിശ്ചിത സേവനം ശരിയായി ആരംഭിക്കുന്നതിൽ പരാജയപ്പെട്ടതായി നിങ്ങൾ ശ്രദ്ധയിൽപ്പെട്ടാൽ, അത് പരിഹരിക്കുന്നതിന് നിങ്ങൾക്ക് systemctl status -l [service], journalctl -xn എന്നിവ ഉപയോഗിക്കാം.

ചുവടെയുള്ള അഭിപ്രായ ഫോം ഉപയോഗിച്ച് ഈ ലേഖനത്തെക്കുറിച്ച് നിങ്ങൾ എന്താണ് ചിന്തിക്കുന്നതെന്ന് ഞങ്ങളെ അറിയിക്കാൻ മടിക്കേണ്ടതില്ല. ചോദ്യങ്ങളും സ്വാഗതം ചെയ്യുന്നു. ഞങ്ങള് താങ്കള് പറയുന്നതു കേള്ക്കാനായി കാത്തിരിക്കുന്നു!