ആർuഎച്ച്uസിuഎസ്uഎ സീരീസ്: ഫയർവാൾ എസൻഷ്യൽസും നെറ്റ്uവർക്ക് ട്രാഫിക് നിയന്ത്രണവും ഫയർവാൾഡിയും ഇപ്റ്റബിളുകളും ഉപയോഗിച്ച് - ഭാഗം 11


ലളിതമായി പറഞ്ഞാൽ, ഒരു നെറ്റ്uവർക്കിലെ ഇൻകമിംഗ്, ഔട്ട്uഗോയിംഗ് ട്രാഫിക്കിനെ നിയന്ത്രിക്കുന്ന ഒരു സുരക്ഷാ സംവിധാനമാണ് ഫയർവാൾ, ഒരു കൂട്ടം മുൻനിശ്ചയിച്ച നിയമങ്ങളെ അടിസ്ഥാനമാക്കി (ഉദാഹരണത്തിന്, പാക്കറ്റ് ലക്ഷ്യസ്ഥാനം/ഉറവിടം അല്ലെങ്കിൽ ട്രാഫിക് തരം).

Red Hat Enterprise Linux 7-ലെ സ്വതവേയുള്ള ഡൈനാമിക് ഫയർവാൾ ഡെമൺ ആയ Firewalld, ലിനക്സിനുള്ള ലെഗസി ഫയർവാൾ സേവനമായ iptables സേവനം, മിക്ക സിസ്റ്റം, നെറ്റ്uവർക്ക് അഡ്uമിനിസ്uട്രേറ്റർമാർക്കും നന്നായി പരിചിതമായതും ലഭ്യമായതും ഈ ലേഖനത്തിൽ ഞങ്ങൾ അവലോകനം ചെയ്യും. RHEL 7-ൽ.

FirewallD ഉം Iptables ഉം തമ്മിലുള്ള ഒരു താരതമ്യം

ഹൂഡിന് കീഴിൽ, ഫയർവാൾഡും iptables സേവനവും ഒരേ ഇന്റർഫേസിലൂടെ കേർണലിലെ നെറ്റ്ഫിൽറ്റർ ചട്ടക്കൂടുമായി സംസാരിക്കുന്നു, അതിശയിക്കാനില്ല, iptables കമാൻഡ്. എന്നിരുന്നാലും, iptables സേവനത്തിന് വിപരീതമായി, നിലവിലുള്ള കണക്ഷനുകൾ നഷ്uടപ്പെടാതെ തന്നെ സാധാരണ സിസ്റ്റം പ്രവർത്തന സമയത്ത് ഫയർവാൾഡിന് ക്രമീകരണങ്ങൾ മാറ്റാനാകും.

ഫയർവാൾഡ് നിങ്ങളുടെ RHEL സിസ്റ്റത്തിൽ സ്ഥിരസ്ഥിതിയായി ഇൻസ്റ്റാൾ ചെയ്യണം, അത് പ്രവർത്തിക്കുന്നില്ലെങ്കിലും. ഇനിപ്പറയുന്ന കമാൻഡുകൾ ഉപയോഗിച്ച് നിങ്ങൾക്ക് പരിശോധിക്കാവുന്നതാണ് (ഫയർവാൾ-കോൺഫിഗറേഷൻ ഉപയോക്തൃ ഇന്റർഫേസ് കോൺഫിഗറേഷൻ ടൂളാണ്):

# yum info firewalld firewall-config

ഒപ്പം,

# systemctl status -l firewalld.service

മറുവശത്ത്, iptables സേവനം സ്ഥിരസ്ഥിതിയായി ഉൾപ്പെടുത്തിയിട്ടില്ല, പക്ഷേ അതിലൂടെ ഇൻസ്റ്റാൾ ചെയ്യാൻ കഴിയും.

# yum update && yum install iptables-services

സാധാരണ systemd കമാൻഡുകൾ ഉപയോഗിച്ച് ബൂട്ടിൽ ആരംഭിക്കുന്നതിന് രണ്ട് ഡെമണുകളും ആരംഭിക്കുകയും പ്രവർത്തനക്ഷമമാക്കുകയും ചെയ്യാം:

# systemctl start firewalld.service | iptables-service.service
# systemctl enable firewalld.service | iptables-service.service

ഇതും വായിക്കുക: Systemd സേവനങ്ങൾ നിയന്ത്രിക്കുന്നതിനുള്ള ഉപയോഗപ്രദമായ കമാൻഡുകൾ

കോൺഫിഗറേഷൻ ഫയലുകളെ സംബന്ധിച്ചിടത്തോളം, iptables സേവനം /etc/sysconfig/iptables ഉപയോഗിക്കുന്നു (നിങ്ങളുടെ സിസ്റ്റത്തിൽ പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്തിട്ടില്ലെങ്കിൽ ഇത് നിലവിലില്ല). ഒരു ക്ലസ്റ്റർ നോഡായി ഉപയോഗിക്കുന്ന RHEL 7 ബോക്സിൽ, ഈ ഫയൽ ഇതുപോലെ കാണപ്പെടുന്നു:

/usr/lib/firewalld, /etc/firewalld എന്നീ രണ്ട് ഡയറക്ടറികളിൽ ഫയർവാൾഡ് അതിന്റെ കോൺഫിഗറേഷൻ സംഭരിക്കുന്നു:

# ls /usr/lib/firewalld /etc/firewalld

ഞങ്ങൾ ഈ ലേഖനത്തിൽ പിന്നീട് ഈ കോൺഫിഗറേഷൻ ഫയലുകൾ പരിശോധിക്കും, അവിടെയും ഇവിടെയും കുറച്ച് നിയമങ്ങൾ ചേർത്തതിന് ശേഷം. രണ്ട് ടൂളുകളെക്കുറിച്ചും നിങ്ങൾക്ക് എല്ലായ്പ്പോഴും കൂടുതൽ വിവരങ്ങൾ കണ്ടെത്താനാകുമെന്ന് ഇപ്പോൾ നിങ്ങളെ ഓർമ്മിപ്പിച്ചാൽ മതിയാകും.

# man firewalld.conf
# man firewall-cmd
# man iptables

അതുകൂടാതെ, എസൻഷ്യൽ കമാൻഡുകൾ & സിസ്റ്റം ഡോക്യുമെന്റേഷൻ അവലോകനം ചെയ്യുക - നിലവിലെ സീരീസിന്റെ ഭാഗം 1, നിങ്ങളുടെ RHEL 7 സിസ്റ്റത്തിൽ ഇൻസ്റ്റാൾ ചെയ്തിരിക്കുന്ന പാക്കേജുകളെക്കുറിച്ചുള്ള വിവരങ്ങൾ ലഭിക്കുന്ന നിരവധി ഉറവിടങ്ങൾ ഞാൻ വിവരിച്ചിട്ടുണ്ട്.

നെറ്റ്uവർക്ക് ട്രാഫിക് നിയന്ത്രിക്കാൻ Iptables ഉപയോഗിക്കുന്നു

കൂടുതൽ മുന്നോട്ട് പോകുന്നതിന് മുമ്പ് iptables ഇന്റേണലുകളെ കുറിച്ചുള്ള നിങ്ങളുടെ മെമ്മറി പുതുക്കുന്നതിന്, Iptables ഫയർവാൾ കോൺഫിഗർ ചെയ്യുക - Linux Foundation Certified Engineer (LFCE) സീരീസിന്റെ ഭാഗം 8 റഫർ ചെയ്യാൻ നിങ്ങൾ ആഗ്രഹിച്ചേക്കാം. അങ്ങനെ, നമുക്ക് ഉദാഹരണങ്ങളിലേക്ക് നേരിട്ട് പോകാൻ കഴിയും.

സാധാരണ (HTTP), സുരക്ഷിതമായ (HTTPS) വെബ് ട്രാഫിക് കൈകാര്യം ചെയ്യാൻ അപ്പാച്ചെ വെബ് സെർവർ ഉപയോഗിക്കുന്ന ഡിഫോൾട്ട് പോർട്ടുകളാണ് TCP പോർട്ടുകൾ 80, 443 എന്നിവ. enp0s3 ഇന്റർഫേസിലെ രണ്ട് പോർട്ടുകളിലൂടെയും നിങ്ങൾക്ക് ഇൻകമിംഗ്, ഔട്ട്uഗോയിംഗ് വെബ് ട്രാഫിക് അനുവദിക്കാം:

# iptables -A INPUT -i enp0s3 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
# iptables -A OUTPUT -o enp0s3 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
# iptables -A INPUT -i enp0s3 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
# iptables -A OUTPUT -o enp0s3 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT

ഒരു നിർദ്ദിഷ്uട നെറ്റ്uവർക്കിൽ നിന്ന് ഉത്ഭവിക്കുന്ന എല്ലാ (അല്ലെങ്കിൽ ചില) തരത്തിലുള്ള ട്രാഫിക്കും നിങ്ങൾക്ക് ബ്ലോക്ക് ചെയ്യേണ്ട സമയങ്ങൾ ഉണ്ടാകാം, ഉദാഹരണത്തിന് 192.168.1.0/24 എന്ന് പറയുക:

# iptables -I INPUT -s 192.168.1.0/24 -j DROP

192.168.1.0/24 നെറ്റ്uവർക്കിൽ നിന്ന് വരുന്ന എല്ലാ പാക്കേജുകളും ഉപേക്ഷിക്കും, അതേസമയം,

# iptables -A INPUT -s 192.168.1.0/24 --dport 22 -j ACCEPT

പോർട്ട് 22 വഴി മാത്രമേ ഇൻകമിംഗ് ട്രാഫിക് അനുവദിക്കൂ.

നിങ്ങളുടെ RHEL 7 ബോക്uസ് ഒരു സോഫ്uറ്റ്uവെയർ ഫയർവാളായി മാത്രമല്ല, യഥാർത്ഥ ഹാർഡ്uവെയർ അധിഷ്uഠിതമായി ഉപയോഗിക്കുകയാണെങ്കിൽ, അത് രണ്ട് വ്യത്യസ്ത നെറ്റ്uവർക്കുകൾക്കിടയിൽ ഇരിക്കുന്നതിനാൽ, നിങ്ങളുടെ സിസ്റ്റത്തിൽ ഐപി ഫോർവേഡിംഗ് ഇതിനകം പ്രവർത്തനക്ഷമമാക്കിയിരിക്കണം. ഇല്ലെങ്കിൽ, നിങ്ങൾ /etc/sysctl.conf എഡിറ്റ് ചെയ്യുകയും net.ipv4.ip_forward എന്നതിന്റെ മൂല്യം ഇനിപ്പറയുന്ന രീതിയിൽ 1 ആയി സജ്ജമാക്കുകയും വേണം:

net.ipv4.ip_forward = 1

തുടർന്ന് മാറ്റം സംരക്ഷിക്കുക, നിങ്ങളുടെ ടെക്സ്റ്റ് എഡിറ്റർ അടച്ച് അവസാനം മാറ്റം പ്രയോഗിക്കുന്നതിന് ഇനിപ്പറയുന്ന കമാൻഡ് പ്രവർത്തിപ്പിക്കുക:

# sysctl -p /etc/sysctl.conf

ഉദാഹരണത്തിന്, നിങ്ങൾക്ക് IP 192.168.0.10 ഉള്ള ഒരു ഇന്റേണൽ ബോക്സിൽ ഒരു പ്രിന്റർ ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ടാകാം, CUPS സേവനം പോർട്ട് 631-ൽ കേൾക്കുന്നു (പ്രിന്റ് സെർവറിലും നിങ്ങളുടെ ഫയർവാളിലും). ഫയർവാളിന്റെ മറുവശത്തുള്ള ക്ലയന്റുകളിൽ നിന്നുള്ള പ്രിന്റ് അഭ്യർത്ഥനകൾ കൈമാറുന്നതിന്, നിങ്ങൾ ഇനിപ്പറയുന്ന iptables റൂൾ ചേർക്കണം:

# iptables -t nat -A PREROUTING -i enp0s3 -p tcp --dport 631 -j DNAT --to 192.168.0.10:631

iptables അതിന്റെ നിയമങ്ങൾ തുടർച്ചയായി വായിക്കുന്നുവെന്നത് ദയവായി ഓർക്കുക, അതിനാൽ സ്ഥിരസ്ഥിതി നയങ്ങളോ പിന്നീടുള്ള നിയമങ്ങളോ മുകളിലെ ഉദാഹരണങ്ങളിൽ പറഞ്ഞിരിക്കുന്നവയെ മറികടക്കുന്നില്ലെന്ന് ഉറപ്പാക്കുക.

FirewallD ഉപയോഗിച്ച് ആരംഭിക്കുന്നു

ഫയർവാൾഡിനൊപ്പം അവതരിപ്പിച്ച മാറ്റങ്ങളിലൊന്ന് സോണുകളാണ്. ഈ ആശയം നെറ്റ്uവർക്കുകളെ ഉപകരണങ്ങളിലും ട്രാഫിക്കിലും സ്ഥാപിക്കാൻ ഉപയോക്താവ് തീരുമാനിച്ച വിശ്വാസത്തിന്റെ വ്യത്യസ്ത സോണുകളായി വേർതിരിക്കാൻ അനുവദിക്കുന്നു.

സജീവ സോണുകൾ ലിസ്റ്റുചെയ്യുന്നതിന്:

# firewall-cmd --get-active-zones

ചുവടെയുള്ള ഉദാഹരണത്തിൽ, പബ്ലിക് സോൺ സജീവമാണ്, കൂടാതെ enp0s3 ഇന്റർഫേസ് അതിന് സ്വയമേവ അസൈൻ ചെയ്uതിരിക്കുന്നു. ഒരു പ്രത്യേക സോണിനെക്കുറിച്ചുള്ള എല്ലാ വിവരങ്ങളും കാണുന്നതിന്:

# firewall-cmd --zone=public --list-all

RHEL 7 സെക്യൂരിറ്റി ഗൈഡിൽ നിങ്ങൾക്ക് സോണുകളെക്കുറിച്ച് കൂടുതൽ വായിക്കാൻ കഴിയുന്നതിനാൽ, ഞങ്ങൾ ചില പ്രത്യേക ഉദാഹരണങ്ങൾ മാത്രം ഇവിടെ ലിസ്റ്റ് ചെയ്യും.

പിന്തുണയ്ക്കുന്ന സേവനങ്ങളുടെ ഒരു ലിസ്റ്റ് ലഭിക്കാൻ, ഉപയോഗിക്കുക.

# firewall-cmd --get-services

ഫയർവാളിലൂടെ http, https വെബ് ട്രാഫിക് അനുവദിക്കുന്നതിന്, ഉടനടി പ്രാബല്യത്തിൽ വരും, തുടർന്നുള്ള ബൂട്ടുകളിലും:

# firewall-cmd --zone=MyZone --add-service=http
# firewall-cmd --zone=MyZone --permanent --add-service=http
# firewall-cmd --zone=MyZone --add-service=https
# firewall-cmd --zone=MyZone --permanent --add-service=https
# firewall-cmd --reload

കോഡ്>–zone ഒഴിവാക്കിയാൽ, ഡിഫോൾട്ട് സോൺ (നിങ്ങൾക്ക് firewall-cmd –get-default-zone ഉപയോഗിച്ച് പരിശോധിക്കാം) ഉപയോഗിക്കും.

റൂൾ നീക്കംചെയ്യുന്നതിന്, മുകളിലുള്ള കമാൻഡുകളിൽ add എന്ന വാക്കിന് പകരം നീക്കം ചെയ്യുക.

ആദ്യം, ആവശ്യമുള്ള സോണിനായി മാസ്ക്വേഡിംഗ് പ്രവർത്തനക്ഷമമാക്കിയിട്ടുണ്ടോ എന്ന് നിങ്ങൾ കണ്ടെത്തേണ്ടതുണ്ട്:

# firewall-cmd --zone=MyZone --query-masquerade

ചുവടെയുള്ള ചിത്രത്തിൽ, ബാഹ്യ മേഖലയ്uക്കായി മാസ്uക്വറേഡിംഗ് പ്രാപ്uതമാക്കിയിട്ടുണ്ടെന്ന് നമുക്ക് കാണാൻ കഴിയും, എന്നാൽ പൊതുവായുള്ളതല്ല:

പൊതുജനങ്ങൾക്കായി നിങ്ങൾക്ക് ഒന്നുകിൽ മാസ്uക്വേഡിംഗ് പ്രവർത്തനക്ഷമമാക്കാം:

# firewall-cmd --zone=public --add-masquerade

അല്ലെങ്കിൽ ബാഹ്യമായി മുഖംമൂടി ഉപയോഗിക്കുക. ഫയർവാൾഡ് ഉപയോഗിച്ച് ഉദാഹരണം 3 പകർത്താൻ ഞങ്ങൾ ചെയ്യേണ്ടത് ഇതാ:

# firewall-cmd --zone=external --add-forward-port=port=631:proto=tcp:toport=631:toaddr=192.168.0.10

ഫയർവാൾ വീണ്ടും ലോഡുചെയ്യാൻ മറക്കരുത്.

RHCSA സീരീസിന്റെ ഭാഗം 9-ൽ നിങ്ങൾക്ക് കൂടുതൽ ഉദാഹരണങ്ങൾ കണ്ടെത്താം, അവിടെ സാധാരണയായി ഒരു വെബ് സെർവറും ftp സെർവറും ഉപയോഗിക്കുന്ന പോർട്ടുകൾ എങ്ങനെ അനുവദിക്കാം അല്ലെങ്കിൽ പ്രവർത്തനരഹിതമാക്കാം, ആ സേവനങ്ങൾക്കുള്ള ഡിഫോൾട്ട് പോർട്ട് ആകുമ്പോൾ അനുബന്ധ നിയമം എങ്ങനെ മാറ്റാം എന്ന് ഞങ്ങൾ വിശദീകരിച്ചു. മാറ്റിയിരിക്കുന്നു. കൂടാതെ, കൂടുതൽ ഉദാഹരണങ്ങൾക്കായി നിങ്ങൾ ഫയർവാൾഡ് വിക്കിയിലേക്ക് റഫർ ചെയ്യാവുന്നതാണ്.

ഇതും വായിക്കുക: RHEL 7-ൽ ഫയർവാൾ കോൺഫിഗർ ചെയ്യുന്നതിനുള്ള ഉപയോഗപ്രദമായ FirewallD ഉദാഹരണങ്ങൾ

ഉപസംഹാരം

ഈ ലേഖനത്തിൽ, ഒരു ഫയർവാൾ എന്താണെന്നും RHEL 7-ൽ ഒന്ന് നടപ്പിലാക്കാൻ ലഭ്യമായ സേവനങ്ങൾ എന്തൊക്കെയാണെന്നും ഞങ്ങൾ വിശദീകരിച്ചിട്ടുണ്ട്, കൂടാതെ ഈ ടാസ്ക്ക് ആരംഭിക്കാൻ നിങ്ങളെ സഹായിക്കുന്ന കുറച്ച് ഉദാഹരണങ്ങളും നൽകിയിട്ടുണ്ട്. നിങ്ങൾക്ക് എന്തെങ്കിലും അഭിപ്രായങ്ങളോ നിർദ്ദേശങ്ങളോ ചോദ്യങ്ങളോ ഉണ്ടെങ്കിൽ, ചുവടെയുള്ള ഫോം ഉപയോഗിച്ച് ഞങ്ങളെ അറിയിക്കാൻ മടിക്കേണ്ടതില്ല. മുൻകൂർ നന്ദി!