ഷോർവാൾ - ലിനക്സ് സെർവറുകൾ ക്രമീകരിക്കുന്നതിനുള്ള ഒരു ഹൈ-ലെവൽ ഫയർവാൾ


Linux-ൽ ഒരു ഫയർവാൾ സജ്ജീകരിക്കുന്നത് ഒരു പുതിയ വ്യക്തിക്ക് അല്ലെങ്കിൽ iptables-നെ കുറിച്ച് അത്ര പരിചിതമല്ലാത്ത ഒരാൾക്ക് വളരെ ബുദ്ധിമുട്ടായിരിക്കും. ഭാഗ്യവശാൽ, ഷോർവാളിൽ വളരെ എളുപ്പത്തിൽ ഉപയോഗിക്കാവുന്ന ഒരു പരിഹാരം ഉണ്ട്.

ഈ മൾട്ടി-പാർട്ട് ട്യൂട്ടോറിയലിൽ, ഞാൻ നിങ്ങളെ ഷോർവാൾ ഉപയോഗിച്ച് ആരംഭിക്കാൻ പോകുന്നു, കൂടാതെ ഈ ആകർഷണീയമായ ഫയർവാൾ സിസ്റ്റം ഉപയോഗിച്ച് കൂടുതൽ വിപുലമായ വിഷയങ്ങളിലൂടെ നിങ്ങളെ കൊണ്ടുപോകാൻ പോകുന്നു.

എന്താണ് ഷോർവാൾ?

ഷോർവാൾ പ്രധാനമായും iptables-ന്റെ ഒരു ഫ്രണ്ട്-എൻഡ് ആണ്, എന്നാൽ ഇത് ഒരു കമാൻഡ് ലൈൻ എൻവയോൺമെന്റ് ഫ്രണ്ട്-എൻഡ് ആണ്, അത് അതിന്റെ കോൺഫിഗറേഷനായി നിരവധി ടെക്സ്റ്റ് ഫയലുകൾ ഉപയോഗിക്കുന്നു. നിരവധി മെഷീനുകൾക്ക് സേവനം നൽകുന്ന വളരെ വലിയ നെറ്റ്uവർക്കുകളിൽ സ്കെയിൽ ചെയ്യാൻ കഴിയുന്ന ശക്തമായ ഫയർവാൾ സിസ്റ്റമാണ് ഷോർവാൾ, ഞങ്ങൾ ഒരു അടിസ്ഥാന രണ്ട്-ഇന്റർഫേസ് കോൺഫിഗറേഷനിൽ നിന്ന് ആരംഭിച്ച് അടിസ്ഥാനകാര്യങ്ങൾ പരിശോധിക്കാൻ പോകുന്നു.

രണ്ട്-ഇന്റർഫേസ് കോൺഫിഗറേഷനിൽ രണ്ട് ഇഥർനെറ്റ് പോർട്ടുകളുള്ള ഒരു മെഷീൻ ഉൾപ്പെടുന്നു, ഒന്ന് വരുന്നു, ഒന്ന് ലോക്കൽ നെറ്റ്uവർക്കിലേക്ക് പോകുന്നു.

ലിനക്സിൽ ഷോർവാളിന്റെ ഇൻസ്റ്റാളേഷൻ

apt-get, yum പാക്കേജ് മാനേജർ ടൂളുകൾ ഉപയോഗിച്ച് ഷോർവാൾ ഇൻസ്റ്റാൾ ചെയ്യാൻ കഴിയും.

$ sudo apt-get install shorewall6
$ sudo yum install shorewall6

ഇൻസ്റ്റാളേഷന് ശേഷം, /usr/share/doc/shorewall ഡയറക്uടറിയിൽ നിന്നും ഷോർവാളിന്റെ ഡിഫോൾട്ട് ഡയറക്uടറി /etc/shorewall ലേക്ക് ഞങ്ങൾ ഒരു സാമ്പിൾ കോൺഫിഗറേഷൻ പകർത്തേണ്ടതുണ്ട്.

$ sudo cp /usr/share/doc/shorewall/example/two-interfaces/* /etc/shorewall

തുടർന്ന് cd to /etc/shorewall.

$ cd /etc/shorewall

ഈ ഡയറക്uടറിയിൽ നോക്കിയാൽ, നമുക്ക് ഒരു കൂട്ടം ഫയലുകളും shorewall.conf ഫയലും കാണാം. ഷോർവാൾ നെറ്റ്uവർക്കിനെ വ്യത്യസ്ത സോണുകളുടെ ഒരു ഗ്രൂപ്പായി കാണുന്നു, അതിനാൽ നമ്മൾ ആദ്യം നോക്കാൻ ആഗ്രഹിക്കുന്ന ഫയൽ “/etc/shorewall/zones” ഫയലാണ്.

ഇവിടെ, ഡിഫോൾട്ടായി നിർവചിച്ചിരിക്കുന്ന മൂന്ന് സോണുകൾ ഉണ്ടെന്ന് ഞങ്ങൾ കാണുന്നു: നെറ്റ്, ലോക്ക്, എല്ലാം. ഷോർവാൾ ഫയർവാൾ മെഷീനെ തന്നെ അതിന്റെ സ്വന്തം സോണായി കണക്കാക്കുകയും $FW എന്ന വേരിയബിളിൽ സൂക്ഷിക്കുകയും ചെയ്യുന്നു എന്നത് ശ്രദ്ധിക്കേണ്ടതാണ്. ബാക്കിയുള്ള കോൺഫിഗറേഷൻ ഫയലുകളിലുടനീളം നിങ്ങൾ ഈ വേരിയബിൾ കാണും.

“/etc/shorewall/zones” ഫയൽ സ്വയം വിശദീകരിക്കുന്നതാണ്. നിങ്ങൾക്ക് നെറ്റ് സോൺ (ഇന്റർനെറ്റ് അഭിമുഖീകരിക്കുന്ന ഇന്റർഫേസ്), ലോക്ക് സോൺ (ലാൻ അഭിമുഖീകരിക്കുന്ന ഇന്റർഫേസ്) കൂടാതെ എല്ലാം ഉണ്ട്, അതാണ് എല്ലാം.

ഈ സജ്ജീകരണം ഇനിപ്പറയുന്നവ നൽകുന്നു:

  1. ലോക്ക് സോണിൽ (LAN) നിന്ന് നെറ്റ് സോണിലേക്കുള്ള (ഇന്റർനെറ്റ്) എല്ലാ കണക്ഷൻ അഭ്യർത്ഥനകളും ഇത് അനുവദിക്കുന്നു.
  2. നെറ്റ് സോണിൽ നിന്ന് ഫയർവാളിലേക്കും LAN ലേക്ക് എല്ലാ കണക്ഷൻ അഭ്യർത്ഥനകളും (അവഗണിക്കുന്നു) ഡ്രോപ്പ് ചെയ്യുന്നു.
  3. മറ്റെല്ലാ അഭ്യർത്ഥനകളും നിരസിക്കുകയും ലോഗ് ചെയ്യുകയും ചെയ്യുന്നു.

Apache, MySQL അല്ലെങ്കിൽ മറ്റേതെങ്കിലും FOSS പ്രോഗ്രാമുകൾ ഉപയോഗിച്ച് അഡ്മിനിസ്ട്രേഷൻ നടത്തിയിട്ടുള്ള ആർക്കും ലോഗ് ലെവൽ ബിറ്റ് പരിചിതമായിരിക്കണം. ഈ സാഹചര്യത്തിൽ, ലോഗിംഗിന്റെ വിവര നില ഉപയോഗിക്കാൻ ഞങ്ങൾ ഷോർവാളിനോട് പറയുന്നു.

നിങ്ങളുടെ LAN-ൽ നിന്ന് അഡ്uമിനിസ്uറ്റർ ചെയ്യുന്നതിനായി നിങ്ങളുടെ ഫയർവാൾ ലഭ്യമാക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെങ്കിൽ, നിങ്ങളുടെ /etc/shorewall/policy ഫയലിലേക്ക് ഇനിപ്പറയുന്ന വരികൾ ചേർക്കാവുന്നതാണ്.

#SOURCE		DEST	POLICY		LOG		LEVEL		LIMIT:BURST
loc			$FW		ACCEPT
$FW			loc		ACCEPT

ഇപ്പോൾ ഞങ്ങളുടെ സോണുകളും നയവും സജ്ജീകരിച്ചിരിക്കുന്നു, ഞങ്ങൾ ഞങ്ങളുടെ ഇന്റർഫേസുകൾ കോൺഫിഗർ ചെയ്യേണ്ടതുണ്ട്. /etc/shorewall/interfaces ഫയൽ എഡിറ്റ് ചെയ്തുകൊണ്ടാണ് നിങ്ങൾ ഇത് ചെയ്യുന്നത്.

ഇവിടെ, ഞങ്ങൾ ഇന്റർനെറ്റ് അഭിമുഖീകരിക്കുന്ന ഇന്റർഫേസ് eth0 ആയി നെറ്റ് സോണിലേക്ക് സജ്ജമാക്കി. ഞങ്ങളുടെ LAN വശത്ത്, ഞങ്ങൾ മറ്റൊരു ഇന്റർഫേസ്, eth1, ലോക്ക് സോണിലേക്ക് സജ്ജമാക്കി. നിങ്ങളുടെ കോൺഫിഗറേഷൻ ശരിയായി ക്രമീകരിക്കുന്നതിന് ഈ ഫയൽ ക്രമീകരിക്കുക.

ഈ ഇന്റർഫേസുകളിലേതെങ്കിലും നിങ്ങൾക്ക് സ്ഥാപിക്കാൻ കഴിയുന്ന വിവിധ ഓപ്ഷനുകൾ വിപുലമാണ്, അവ മാൻ പേജിൽ വിശദമായി വിവരിച്ചിരിക്കുന്നു.

$ man shorewall-interfaces

അവയിൽ ചിലതിന്റെ പെട്ടെന്നുള്ള റൺ ഡൌൺ ഇപ്രകാരമാണ്:

  1. nosmurfs – ബ്രോഡ്uകാസ്റ്റ് വിലാസം ഉറവിടമായി ഉള്ള ഫിൽട്ടർ പാക്കറ്റുകൾ.
  2. logmartians - അസാധ്യമായ ഉറവിട വിലാസമുള്ള ലോഗ് പാക്കറ്റുകൾ.
  3. റൂട്ട്ഫിൽറ്റർ – ആന്റി സ്പൂഫിങ്ങിനുള്ള കേർണൽ റൂട്ട് ഫിൽട്ടറിംഗ്.

തീർച്ചയായും, ഇപ്പോൾ ഞങ്ങളുടെ സിസ്റ്റം ഫയർവാൾഡ് ആയതിനാൽ, നമ്മൾ ചെയ്യേണ്ടത് ചെയ്യുന്നതിനായി ചില കണക്ഷനുകൾ അനുവദിക്കേണ്ടതുണ്ട്. /etc/shorewall/rules എന്നതിലെ റൂൾസ് ഫയലിൽ നിങ്ങൾ ഇവ നിർവ്വചിക്കുന്നു.

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

അടുത്തതായി, പാക്കറ്റ് ഉത്ഭവിക്കുന്ന സോൺ നിർവ്വചിക്കുന്ന ഒരു സോഴ്സ് ഹെഡർ നിങ്ങൾക്കുണ്ട്. തുടർന്ന്, നിങ്ങൾക്ക് നിങ്ങളുടെ DEST അല്ലെങ്കിൽ ലക്ഷ്യസ്ഥാനം ഉണ്ട്, അത് ലക്ഷ്യസ്ഥാനത്തിന്റെ സോൺ അല്ലെങ്കിൽ IP വിലാസമാണ്. ഒരു ഉദാഹരണം ഉപയോഗിക്കാം.

192.168.1.25 എന്ന IP വിലാസം ഉപയോഗിച്ച് മെഷീനിൽ നിങ്ങളുടെ ഫയർവാളിന് പിന്നിൽ ഒരു SSH സെർവർ പ്രവർത്തിപ്പിക്കണമെന്ന് കരുതുക. നിങ്ങളുടെ ഫയർവാളിൽ ഒരു പോർട്ട് തുറക്കേണ്ടിവരുമെന്ന് മാത്രമല്ല, പോർട്ട് 22-ൽ വരുന്ന ഏത് ട്രാഫിക്കും 192.168.1.25-ൽ മെഷീനിലേക്ക് റൂട്ട് ചെയ്യണമെന്ന് ഫയർവാളിനോട് പറയേണ്ടിവരും.

പോർട്ട് ഫോർവേഡിംഗ് എന്നാണ് ഇത് അറിയപ്പെടുന്നത്. മിക്ക ഫയർവാൾ/റൂട്ടറുകളിലും ഇത് ഒരു സാധാരണ സവിശേഷതയാണ്. /etc/shorewall/rules എന്നതിൽ, ഇതുപോലുള്ള ഒരു ലൈൻ ചേർത്തുകൊണ്ട് നിങ്ങൾ ഇത് പൂർത്തിയാക്കും:

SSH(DNAT)	net		loc:192.168.1.25

മുകളിൽ, നെറ്റ് സോണിൽ നിന്ന് ഫയർവാളിലേക്ക് വരുന്ന ഏതെങ്കിലും SSH ഡെസ്റ്റിനഡ് പാക്കറ്റുകൾ 192.168.1.25 എന്ന വിലാസത്തിൽ മെഷീനിൽ പോർട്ട് 22 ലേക്ക് റൂട്ട് ചെയ്യണം (DNAT) എന്ന് ഞങ്ങൾ നിർവ്വചിച്ചിട്ടുണ്ട്.

ഇതിനെ നെറ്റ്uവർക്ക് വിലാസ വിവർത്തനം അല്ലെങ്കിൽ NAT എന്ന് വിളിക്കുന്നു. ഇത് ഒരു ലക്ഷ്യ വിലാസത്തിനുള്ള NAT ആണെന്ന് \D ഷോർവാളിനോട് പറയുന്നു.

ഇത് പ്രവർത്തിക്കുന്നതിന്, നിങ്ങളുടെ കെർണലിൽ NAT പിന്തുണ പ്രവർത്തനക്ഷമമാക്കിയിരിക്കണം. നിങ്ങൾക്ക് NAT ആവശ്യമുണ്ടെങ്കിൽ അത് ഇല്ലെങ്കിൽ, ഒരു ഡെബിയൻ കേർണൽ വീണ്ടും കംപൈൽ ചെയ്യുന്നതിനെക്കുറിച്ചുള്ള എന്റെ ട്യൂട്ടോറിയൽ കാണുക.

റഫറൻസ് ലിങ്കുകൾ

ഷോർവാൾ ഹോംപേജ്

അടുത്ത ലേഖനത്തിൽ, ഞങ്ങൾ കൂടുതൽ വിപുലമായ വിഷയങ്ങളിലൂടെ കടന്നുപോകും, എന്നാൽ ഇപ്പോൾ നിങ്ങൾക്ക് ആരംഭിക്കാൻ ഇവിടെ ധാരാളം ഉണ്ടായിരിക്കണം. എല്ലായ്പ്പോഴും എന്നപോലെ, കൂടുതൽ ആഴത്തിലുള്ള ധാരണയ്ക്കായി ദയവായി മാൻ പേജുകൾ നോക്കുക.