ഉബുണ്ടുവിലും ഡെബിയനിലും UFW ഫയർവാൾ എങ്ങനെ സജ്ജീകരിക്കാം


സമ്പൂർണ്ണ ലിനക്സ് സിസ്റ്റം സുരക്ഷയുടെ ഏറ്റവും നിർണായകമായ ഭാഗമാണ് ശരിയായി പ്രവർത്തിക്കുന്ന ഫയർവാൾ. ഡിഫോൾട്ടായി, ഡെബിയൻ, ഉബുണ്ടു വിതരണം, UFW (Uncomplicated Firewall) എന്ന ഫയർവാൾ കോൺഫിഗറേഷൻ ടൂളുമായി വരുന്നു, ഉബുണ്ടു, ഡെബിയൻ വിതരണങ്ങളിൽ ഫയർവാൾ ക്രമീകരിക്കുന്നതിനും കൈകാര്യം ചെയ്യുന്നതിനുമുള്ള ഏറ്റവും ജനപ്രിയവും ഉപയോഗിക്കാൻ എളുപ്പമുള്ളതുമായ കമാൻഡ് ലൈൻ ഉപകരണമാണിത്.

ഈ ലേഖനത്തിൽ, ഉബുണ്ടു, ഡെബിയൻ വിതരണങ്ങളിൽ UFW ഫയർവാൾ എങ്ങനെ ഇൻസ്റ്റാൾ ചെയ്യാമെന്നും സജ്ജീകരിക്കാമെന്നും ഞങ്ങൾ വിശദീകരിക്കും.

നിങ്ങൾ ഈ ലേഖനം ആരംഭിക്കുന്നതിന് മുമ്പ്, നിങ്ങളുടെ ഉബുണ്ടു അല്ലെങ്കിൽ ഡെബിയൻ സെർവറിലേക്ക് sudo ഉപയോക്താവ് അല്ലെങ്കിൽ റൂട്ട് അക്കൗണ്ട് ഉപയോഗിച്ച് ലോഗിൻ ചെയ്തിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക. നിങ്ങൾക്ക് ഒരു സുഡോ ഉപയോക്താവ് ഇല്ലെങ്കിൽ, റൂട്ട് ഉപയോക്താവായി ഇനിപ്പറയുന്ന നിർദ്ദേശങ്ങൾ ഉപയോഗിച്ച് നിങ്ങൾക്ക് ഒരെണ്ണം സൃഷ്ടിക്കാൻ കഴിയും.

# adduser username
# usermod -aG sudo username 
# su - username
$ sudo whoami

ഉബുണ്ടുവിലും ഡെബിയനിലും UFW ഫയർവാൾ ഇൻസ്റ്റാൾ ചെയ്യുക

UFW (Uncomplicated Firewall) ഉബുണ്ടുവിലും ഡെബിയനിലും സ്ഥിരസ്ഥിതിയായി ഇൻസ്റ്റാൾ ചെയ്യണം, ഇല്ലെങ്കിൽ, ഇനിപ്പറയുന്ന കമാൻഡ് ഉപയോഗിച്ച് APT പാക്കേജ് മാനേജർ ഉപയോഗിച്ച് ഇത് ഇൻസ്റ്റാൾ ചെയ്യുക.

$ sudo apt install ufw

ഇൻസ്റ്റാളേഷൻ പൂർത്തിയായിക്കഴിഞ്ഞാൽ നിങ്ങൾക്ക് ടൈപ്പ് ചെയ്തുകൊണ്ട് UFW-ന്റെ നില പരിശോധിക്കാം.

$ sudo ufw status verbose

ആദ്യ ഇൻസ്റ്റാളിൽ, UFW ഫയർവാൾ ഡിഫോൾട്ടായി പ്രവർത്തനരഹിതമാക്കുന്നു, ഔട്ട്പുട്ട് താഴെയുള്ളതിന് സമാനമായിരിക്കും.

Status: inactive

ഇനിപ്പറയുന്ന കമാൻഡ് ഉപയോഗിച്ച് നിങ്ങൾക്ക് UFW ഫയർവാൾ സജീവമാക്കാനോ പ്രവർത്തനക്ഷമമാക്കാനോ കഴിയും, അത് ഫയർവാൾ ലോഡ് ചെയ്യുകയും ബൂട്ടിൽ ആരംഭിക്കാൻ പ്രാപ്തമാക്കുകയും ചെയ്യും.

$ sudo ufw enable

UFW ഫയർവാൾ പ്രവർത്തനരഹിതമാക്കുന്നതിന്, ഇനിപ്പറയുന്ന കമാൻഡ് ഉപയോഗിക്കുക, അത് ഫയർവാൾ അൺലോഡ് ചെയ്യുകയും ബൂട്ടിൽ ആരംഭിക്കുന്നത് പ്രവർത്തനരഹിതമാക്കുകയും ചെയ്യുന്നു.

$ sudo ufw disable 

സ്ഥിരസ്ഥിതിയായി, UFW ഫയർവാൾ എല്ലാ ഇൻകമിംഗ് കണക്ഷനുകളും നിരസിക്കുന്നു കൂടാതെ എല്ലാ ഔട്ട്ബൗണ്ട് കണക്ഷനുകളും സെർവറിലേക്ക് മാത്രമേ അനുവദിക്കൂ. ഇതിനർത്ഥം, നിങ്ങൾ പ്രത്യേകമായി പോർട്ട് തുറക്കുന്നില്ലെങ്കിൽ ആർക്കും നിങ്ങളുടെ സെർവർ ആക്uസസ് ചെയ്യാൻ കഴിയില്ല, അതേസമയം നിങ്ങളുടെ സെർവറിൽ പ്രവർത്തിക്കുന്ന എല്ലാ സേവനങ്ങൾക്കും ആപ്ലിക്കേഷനുകൾക്കും പുറത്തുള്ള നെറ്റ്uവർക്ക് ആക്uസസ് ചെയ്യാൻ കഴിയും.

സ്ഥിരസ്ഥിതി UFW ഫയർവാൾ പോളിസികൾ /etc/default/ufw ഫയലിൽ സ്ഥാപിച്ചിരിക്കുന്നു, താഴെ പറയുന്ന കമാൻഡ് ഉപയോഗിച്ച് ഇത് മാറ്റാവുന്നതാണ്.

$ sudo ufw default deny incoming
$ sudo ufw default allow outgoing

APT പാക്കേജ് മാനേജർ ഉപയോഗിച്ച് ഒരു സോഫ്uറ്റ്uവെയർ പാക്കേജ് ഇൻസ്uറ്റാൾ ചെയ്യുമ്പോൾ, അത് /etc/ufw/applications.d ഡയറക്uടറിയിലെ ഒരു ആപ്ലിക്കേഷൻ പ്രൊഫൈൽ ഉൾപ്പെടുത്തും, അത് സേവനത്തെ നിർവചിക്കുകയും UFW ക്രമീകരണങ്ങൾ ഹോൾഡ് ചെയ്യുകയും ചെയ്യും.

ഇനിപ്പറയുന്ന കമാൻഡ് ഉപയോഗിച്ച് നിങ്ങളുടെ സെർവറിൽ ലഭ്യമായ എല്ലാ ആപ്ലിക്കേഷൻ പ്രൊഫൈലുകളും നിങ്ങൾക്ക് ലിസ്റ്റ് ചെയ്യാം.

$ sudo ufw app list

നിങ്ങളുടെ സിസ്റ്റത്തിലെ സോഫ്uറ്റ്uവെയർ പാക്കേജ് ഇൻസ്റ്റാളേഷനുകളെ ആശ്രയിച്ച് ഔട്ട്uപുട്ട് ഇനിപ്പറയുന്നതിന് സമാനമായി കാണപ്പെടും:

Available applications:
  APACHE
  APACHE Full
  APACHE SECURE
  CUPS
  OpenSSH
  Postfix
  Postfix SMTPS
  Postfix Submission

ഒരു പ്രത്യേക പ്രൊഫൈലിനെക്കുറിച്ചും നിർവചിക്കപ്പെട്ട നിയമങ്ങളെക്കുറിച്ചും കൂടുതൽ വിവരങ്ങൾ ലഭിക്കണമെങ്കിൽ നിങ്ങൾക്ക് ഇനിപ്പറയുന്ന കമാൻഡ് ഉപയോഗിക്കാം.

$ sudo ufw app info 'Apache'
Profile: Apache
Title: Web Server 
Description: Apache V2 is the next generation f the omnipresent Apache web server.

Ports:
  80/tcp

നിങ്ങളുടെ സെർവർ IPv6 ഉപയോഗിച്ചാണ് ക്രമീകരിച്ചിരിക്കുന്നതെങ്കിൽ, IPv6, IPv4 പിന്തുണയോടെയാണ് നിങ്ങളുടെ UFW കോൺഫിഗർ ചെയ്തിരിക്കുന്നതെന്ന് ഉറപ്പാക്കുക. ഇത് സ്ഥിരീകരിക്കുന്നതിന്, നിങ്ങളുടെ പ്രിയപ്പെട്ട എഡിറ്റർ ഉപയോഗിച്ച് UFW കോൺഫിഗറേഷൻ ഫയൽ തുറക്കുക.

$ sudo vi /etc/default/ufw

തുടർന്ന് കാണിച്ചിരിക്കുന്നതുപോലെ കോൺഫിഗറേഷൻ ഫയലിൽ IPV6 \yes\ ആയി സജ്ജീകരിച്ചിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക.

IPV6=yes

സംരക്ഷിച്ച് ഉപേക്ഷിക്കുക. തുടർന്ന് ഇനിപ്പറയുന്ന കമാൻഡുകൾ ഉപയോഗിച്ച് നിങ്ങളുടെ ഫയർവാൾ പുനരാരംഭിക്കുക:

$ sudo ufw disable
$ sudo ufw enable

നിങ്ങൾ ഇപ്പോൾ UFW ഫയർവാൾ പ്രവർത്തനക്ഷമമാക്കിയിട്ടുണ്ടെങ്കിൽ, അത് എല്ലാ ഇൻകമിംഗ് കണക്ഷനുകളെയും തടയും കൂടാതെ നിങ്ങൾ ഒരു വിദൂര ലൊക്കേഷനിൽ നിന്ന് SSH വഴി നിങ്ങളുടെ സെർവറിലേക്ക് കണക്റ്റുചെയ്uതിട്ടുണ്ടെങ്കിൽ, നിങ്ങൾക്ക് അത് വീണ്ടും കണക്റ്റുചെയ്യാൻ കഴിയില്ല.

ഇനിപ്പറയുന്ന കമാൻഡ് ഉപയോഗിച്ച് അത് സംഭവിക്കുന്നത് തടയാൻ നമുക്ക് ഞങ്ങളുടെ സെർവറിലേക്ക് SSH കണക്ഷനുകൾ പ്രവർത്തനക്ഷമമാക്കാം:

$ sudo ufw allow ssh

നിങ്ങൾ ഇഷ്uടാനുസൃത എസ്എസ്എച്ച് പോർട്ട് ഉപയോഗിക്കുകയാണെങ്കിൽ (ഉദാഹരണത്തിന് പോർട്ട് 2222), ഇനിപ്പറയുന്ന കമാൻഡ് ഉപയോഗിച്ച് നിങ്ങൾ ആ പോർട്ട് UFW ഫയർവാളിൽ തുറക്കേണ്ടതുണ്ട്.

$ sudo ufw allow 2222/tcp

എല്ലാ SSH കണക്ഷനുകളും തടയുന്നതിന് ഇനിപ്പറയുന്ന കമാൻഡ് ടൈപ്പ് ചെയ്യുക.

$ sudo ufw deny ssh/tcp
$ sudo ufw deny 2222/tcp  [If using custom SSH port]

ഒരു നിശ്ചിത സേവനത്തിലേക്കുള്ള കണക്ഷനുകൾ അനുവദിക്കുന്നതിന് നിങ്ങൾക്ക് ഫയർവാളിൽ ഒരു നിർദ്ദിഷ്ട പോർട്ട് തുറക്കാനും കഴിയും. ഉദാഹരണത്തിന്, നിങ്ങൾക്ക് സ്ഥിരസ്ഥിതിയായി പോർട്ട് 80 (HTTP), 443 (HTTPS) എന്നിവയിൽ കേൾക്കുന്ന ഒരു വെബ് സെർവർ സജ്ജീകരിക്കണമെങ്കിൽ.

അപ്പാച്ചെ സേവനങ്ങളിലേക്ക് ഇൻകമിംഗ് കണക്ഷനുകൾ എങ്ങനെ അനുവദിക്കാം എന്നതിന്റെ കുറച്ച് ഉദാഹരണങ്ങൾ ചുവടെയുണ്ട്.

$ sudo ufw allow http     [By service name]
$ sudo ufw allow 80/tcp   [By port number]
$ sudo ufw allow 'Apache' [By application profile]
$ sudo ufw allow https
$ sudo ufw allow 443/tcp
$ sudo ufw allow 'Apache Secure'

നിങ്ങൾക്ക് നിരവധി പോർട്ടുകളിൽ (5000-5003) പ്രവർത്തിപ്പിക്കാൻ ആഗ്രഹിക്കുന്ന ചില ആപ്ലിക്കേഷനുകൾ ഉണ്ടെന്ന് കരുതുക, ഇനിപ്പറയുന്ന കമാൻഡുകൾ ഉപയോഗിച്ച് നിങ്ങൾക്ക് ഈ പോർട്ടുകളെല്ലാം ചേർക്കാവുന്നതാണ്.

sudo ufw allow 5000:5003/tcp
sudo ufw allow 5000:5003/udp

നിർദ്ദിഷ്ട IP വിലാസം 192.168.56.1-ൽ നിന്ന് എല്ലാ പോർട്ടുകളിലും കണക്ഷനുകൾ അനുവദിക്കണമെങ്കിൽ, IP വിലാസത്തിന് മുമ്പായി നിങ്ങൾ വ്യക്തമാക്കേണ്ടതുണ്ട്.

$ sudo ufw allow from 192.168.56.1

192.168.56.1 എന്ന IP വിലാസമുള്ള നിങ്ങളുടെ ഹോം മെഷീനിൽ നിന്ന് ഒരു നിർദ്ദിഷ്uട പോർട്ടിൽ (ഉദാഹരണത്തിന് പോർട്ട് 22) കണക്ഷൻ അനുവദിക്കുന്നതിന്, കാണിച്ചിരിക്കുന്നതുപോലെ IP വിലാസത്തിന് ശേഷം നിങ്ങൾ ഏതെങ്കിലും പോർട്ടും പോർട്ട് നമ്പറും ചേർക്കേണ്ടതുണ്ട്.

$ sudo ufw allow from 192.168.56.1 to any port 22

192.168.1.1 മുതൽ 192.168.1.254 മുതൽ പോർട്ട് 22 (എസ്എസ്എച്ച്) വരെയുള്ള പ്രത്യേക ഐപി വിലാസങ്ങൾക്കായി കണക്ഷനുകൾ അനുവദിക്കുന്നതിന്, ഇനിപ്പറയുന്ന കമാൻഡ് പ്രവർത്തിപ്പിക്കുക.

$ sudo ufw allow from 192.168.1.0/24 to any port 22

ഒരു പ്രത്യേക പോർട്ട് 22 (എസ്uഎസ്uഎച്ച്) നുള്ള നിർദ്ദിഷ്ട നെറ്റ്uവർക്ക് ഇന്റർഫേസ് eth2-ലേക്കുള്ള കണക്ഷനുകൾ അനുവദിക്കുന്നതിന്, ഇനിപ്പറയുന്ന കമാൻഡ് പ്രവർത്തിപ്പിക്കുക.

$ sudo ufw allow in on eth2 to any port 22

ഡിഫോൾട്ടായി, നിങ്ങൾ UFW-ൽ പ്രത്യേകമായി കണക്ഷൻ തുറന്നിട്ടില്ലെങ്കിൽ, എല്ലാ ഇൻകമിംഗ് കണക്ഷനുകളും ബ്ലോക്ക് ചെയ്യപ്പെടും. ഉദാഹരണത്തിന്, നിങ്ങൾ 80, 443 എന്നീ പോർട്ടുകൾ തുറന്നിരിക്കുന്നു, നിങ്ങളുടെ വെബ് സെർവർ 11.12.13.0/24 എന്ന അജ്ഞാത നെറ്റ്uവർക്കിൽ നിന്നുള്ള ആക്രമണത്തിലാണ്.

ഈ പ്രത്യേക 11.12.13.0/24 നെറ്റ്uവർക്ക് ശ്രേണിയിൽ നിന്നുള്ള എല്ലാ കണക്ഷനുകളും തടയുന്നതിന്, നിങ്ങൾക്ക് ഇനിപ്പറയുന്ന കമാൻഡ് ഉപയോഗിക്കാം.

$ sudo ufw deny from 11.12.13.0/24

80, 443 എന്നീ പോർട്ടുകളിലെ കണക്ഷനുകൾ മാത്രം തടയാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെങ്കിൽ, നിങ്ങൾക്ക് ഇനിപ്പറയുന്ന കമാൻഡുകൾ ഉപയോഗിക്കാം.

$ sudo ufw deny from 11.12.13.0/24 to any port 80
$ sudo ufw deny from 11.12.13.0/24 to any port 443

UFW റൂളുകൾ ഇല്ലാതാക്കാൻ 2 വഴികളുണ്ട്, റൂൾ നമ്പറും യഥാർത്ഥ റൂളും.

റൂൾ നമ്പർ ഉപയോഗിച്ച് ഒരു UFW റൂളുകൾ ഇല്ലാതാക്കാൻ, നിങ്ങൾ ആദ്യം താഴെ പറയുന്ന കമാൻഡ് ഉപയോഗിച്ച് നമ്പറുകൾ പ്രകാരം നിയമങ്ങൾ ലിസ്റ്റ് ചെയ്യേണ്ടതുണ്ട്.

$ sudo ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     ALLOW IN    Anywhere
[ 2] 80/tcp                     ALLOW IN    Anywhere

റൂൾ നമ്പർ 1 ഇല്ലാതാക്കാൻ, ഇനിപ്പറയുന്ന കമാൻഡ് ഉപയോഗിക്കുക.

$ sudo ufw delete 1

രണ്ടാമത്തെ രീതി യഥാർത്ഥ റൂൾ ഉപയോഗിച്ച് ഒരു നിയമം ഇല്ലാതാക്കുക എന്നതാണ്, ഉദാഹരണത്തിന് ഒരു റൂൾ ഇല്ലാതാക്കാൻ, കാണിച്ചിരിക്കുന്നതുപോലെ പ്രോട്ടോക്കോൾ ഉപയോഗിച്ച് പോർട്ട് നമ്പർ വ്യക്തമാക്കുക.

$ sudo ufw delete allow 22/tcp

--dry-run ഫ്ലാഗ് ഉപയോഗിച്ച് സിസ്റ്റം ഫയർവാളിൽ മാറ്റങ്ങളൊന്നും വരുത്താതെ തന്നെ നിങ്ങൾക്ക് ഏതെങ്കിലും ufw കമാൻഡുകൾ പ്രവർത്തിപ്പിക്കാൻ കഴിയും, ഇത് സംഭവിക്കേണ്ട മാറ്റങ്ങൾ കാണിക്കുന്നു.

$ sudo ufw --dry-run enable

ഒരു കാരണത്താലോ മറ്റെന്തെങ്കിലുമോ, എല്ലാ ഫയർവാൾ നിയമങ്ങളും ഇല്ലാതാക്കാനോ പുനഃസജ്ജമാക്കാനോ നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെങ്കിൽ, ഇനിപ്പറയുന്ന കമാൻഡുകൾ ടൈപ്പ് ചെയ്യുക, അത് നിങ്ങളുടെ എല്ലാ മാറ്റങ്ങളും പഴയപടിയാക്കുകയും പുതിയതായി ആരംഭിക്കുകയും ചെയ്യും.

$ sudo ufw reset
$ sudo ufw status

iptables ചെയ്യുന്ന എന്തും ചെയ്യാൻ UFW ഫയർവാളിന് കഴിയും. വ്യത്യസ്uത സെറ്റ് റൂൾസ് ഫയലുകൾ ഉപയോഗിച്ച് ഇത് ചെയ്യാൻ കഴിയും, അവ ഒന്നുമല്ല, എന്നാൽ ലളിതമായ iptables-restore text files.

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

  • /etc/default/ufw: മുൻകൂട്ടി നിശ്ചയിച്ച നിയമങ്ങളുള്ള പ്രധാന കോൺഫിഗറേഷൻ ഫയൽ.
  • /etc/ufw/before[6].rules: ഈ ഫയലിൽ ufw കമാൻഡ് വഴി ചേർക്കുന്നതിന് മുമ്പ് നിയമങ്ങൾ കണക്കാക്കുന്നു.
  • /etc/ufw/after[6].rules: ഈ ഫയലിൽ നിയമങ്ങൾ കണക്കാക്കുന്നത് ufw കമാൻഡ് വഴി ചേർത്തതിന് ശേഷമാണ്.
  • /etc/ufw/sysctl.conf: ഈ ഫയൽ കേർണൽ നെറ്റ്uവർക്ക് ട്യൂൺ ചെയ്യാൻ ഉപയോഗിക്കുന്നു.
  • /etc/ufw/ufw.conf: ഈ ഫയൽ ബൂട്ടിലെ ufw പ്രവർത്തനക്ഷമമാക്കുന്നു.

അത്രയേയുള്ളൂ! ഒരൊറ്റ ufw കമാൻഡ് ഉപയോഗിച്ച് സങ്കീർണ്ണമായ നിയമങ്ങൾ നിർവചിക്കുന്നതിന് ഉപയോക്തൃ സൗഹൃദ ഇന്റർഫേസുള്ള iptables-ന്റെ മികച്ച മുൻനിരയാണ് UFW.

ഈ യുuഎഫ്uഡബ്ല്യു ലേഖനത്തെക്കുറിച്ച് പങ്കിടാൻ നിങ്ങൾക്ക് എന്തെങ്കിലും ചോദ്യങ്ങളോ ചിന്തകളോ ഉണ്ടെങ്കിൽ, ഞങ്ങളെ ബന്ധപ്പെടുന്നതിന് ചുവടെയുള്ള അഭിപ്രായ ഫോം ഉപയോഗിക്കുക.