VPS-ல் UFW Firewall அமைப்பது எப்படி
UFW மூலம் VPS-ல் default-deny policy அமைத்து, தேவையான ports-ஐ மட்டும் allow செய்யுங்கள். SSH அணுகலைத் தடுக்காமல் firewall-ஐ பாதுகாப்பாக enable செய்வது எப்படி என்பதை அறியுங்கள்.
UFW என்றால் என்ன, அதை ஏன் பயன்படுத்த வேண்டும்
UFW என்பது Uncomplicated Firewall என்பதன் சுருக்கம். அதன் பெயர் அதன் நோக்கத்தைத் தெளிவாகக் காட்டுகிறது. Linux kernel-ல் ஏற்கனவே உள்ள firewall-க்கு இது எளிய front end ஆக செயல்படுகிறது. எனவே raw rules எழுதுவதற்குப் பதிலாக ufw allow 22/tcp போன்ற சுருக்கமான commands-ஐ உள்ளிடலாம். புதிதாக உருவாக்கப்பட்ட VPS-ல் listening நிலையில் உள்ள ஒவ்வொரு service-யும் இயல்பாக internet-இலிருந்து அணுகக்கூடியதாக இருக்கும். Firewall இதை மாற்றுகிறது: அனைத்தையும் deny செய்து, உண்மையில் பயன்படுத்தும் சில ports-ஐ மட்டும் allow செய்யலாம். இந்த ஒரே மாற்றம் சுமார் நான்கு commands-ல் உங்கள் exposure-ன் பெரும்பகுதியை நீக்குகிறது.
UFW-ஐ பயன்படுத்துவதற்கு முன், எந்த services listening நிலையில் உள்ளன என்பதை அறிந்துகொள்ளுங்கள். Firewall அந்த services-ன் network access-ஐ தீர்மானிக்கும். ss -tlnp மூலம் listening நிலையில் உள்ளவற்றைப் பார்ப்பது சரியான முதல் படியாகும்.
உங்களை நீங்களே அணுக முடியாத நிலையைத் தடுக்கும் ஒரே விதி
Firewall அமைப்புகளில் மக்கள் தயங்குவதற்கான பொதுவான காரணம் இதுதான். Default-deny policy-யுடன் UFW-ஐ enable செய்கிறீர்கள்; ஆனால் SSH-ஐ ஒருபோதும் allow செய்யவில்லை. Firewall செயல்பட்டவுடன் உங்கள் சொந்த connection துண்டிக்கப்படும். அதன் பிறகு மீண்டும் server-க்குள் செல்ல முடியாது. இதைத் தவிர்க்க, UFW-ஐ enable செய்வதற்கு முன் எப்போதும் SSH-ஐ allow செய்யுங்கள். இதுவே முழு நடைமுறை. கீழே உள்ள படிகள் இதை பாதுகாப்பான வரிசையில் செய்கின்றன.
இது நடந்தாலும் நீங்கள் சிக்கிக் கொள்ள வேண்டியதில்லை. உங்கள் provider வழங்கும் VNC அல்லது serial வழியிலான web console, SSH வழியாகச் செல்லாது. எனவே அங்கு login செய்து ufw disable-ஐ இயக்கலாம் அல்லது விடுபட்ட rule-ஐ சேர்க்கலாம்.
படி 1: இயல்புநிலை policies-ஐ அமைக்கவும்
UFW-க்கு உள்வரும் அனைத்து traffic-ஐ deny செய்யவும், வெளிச்செல்லும் அனைத்து traffic-ஐ allow செய்யவும் முதலில் கட்டளையிடவும்:
sudo ufw default deny incoming
sudo ufw default allow outgoingdeny incoming என்பது முக்கியமான பகுதி. Explicit allow rule இல்லாத எந்த port-உம் வெளியிலிருந்து அணுக முடியாத நிலையில் இருக்கும் என்று இது குறிப்பிடுகிறது; அந்த port-ல் service listening நிலையில் இருந்தாலும் இது பொருந்தும். allow outgoing காரணமாக updates மற்றும் இதுபோன்ற தேவைகளுக்காக உங்கள் server வழக்கம்போல் internet-ஐ அணுக முடியும். இந்த இரண்டு commands policy-யை மட்டும் மாற்றும்; step 3-ல் UFW-ஐ enable செய்யும் வரை எந்த policy-யும் அமல்படுத்தப்படாது.
படி 2: உங்களுக்கு உண்மையில் தேவையான ports-ஐ அனுமதிக்கவும்
Enable செய்வதற்கு முன், உங்கள் connection தொடர SSH-ஐ திறக்கவும்:
sudo ufw allow 22/tcpUFW மூலம் SSH-க்கு rate limiting-ஐயும் அமைக்கலாம்: sudo ufw limit 22/tcp அந்த port-ஐ அனுமதிக்கும். ஆனால் thirty seconds-க்குள் ஆறு அல்லது அதற்கு மேற்பட்ட connections செய்யும் எந்த address-ஐயும் block செய்யும். இதனால் கூடுதல் software இல்லாமல் brute-force scripts-ன் தாக்கம் குறையும்.
Web server இயக்கினால், HTTP மற்றும் HTTPS-ஐயும் அனுமதிக்கவும்:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcpPublic-ஆக வழங்கும் services-க்கு மட்டும் அனுமதி அளிக்கவும். 5432 port-ல் இயங்கும் Postgres போன்ற database-க்கு பொதுவாக allow rule தேவையில்லை. அதற்கு பதிலாக அதை 127.0.0.1-க்கு bind செய்யவும். அப்போது அதை அந்த machine-ல் மட்டுமே அணுக முடியும். நீங்கள் திறக்கும் ஒவ்வொரு port-ஐயும் பாதுகாக்க வேண்டும். எனவே பட்டியலைச் சுருக்கமாக வைத்திருக்கவும்.
உங்கள் server-க்கான ufw commands-ன் முழு வரிசையையும் இங்கே உருவாக்கி, பின்னர் அவற்றை வரிசைப்படி இயக்கலாம்:
படி 3: அதை Enable செய்து, இயங்குகிறது என்பதை உறுதிப்படுத்தவும்
sudo ufw enableஇந்த command ஏற்கனவே உள்ள SSH connections-ஐ பாதிக்கக்கூடும் என்று இது எச்சரிக்கும். படி 2-ல் 22/tcp-ஐ அனுமதித்ததால், உங்கள் session தொடரும். முடிவை உறுதிப்படுத்தவும்:
sudo ufw status verboseStatus: active
Default: deny (incoming), allow (outgoing)
To Action From
-- ------ ----
22/tcp ALLOW IN Anywhere
22/tcp (v6) ALLOW IN Anywhere (v6)
80/tcp ALLOW IN Anywhereஇங்கே இரண்டு விஷயங்களைப் பார்க்க வேண்டும். Status: active என்பது firewall இயங்குகிறது என்பதைக் குறிக்கிறது. ஒவ்வொரு rule-மும் இரண்டு முறை தோன்றும்: முதலில் சாதாரணமாகவும், அடுத்ததாக (v6) உடனும். இதனால் UFW, IPv4 மட்டுமின்றி IPv6-ஐயும் கையாளுகிறது என்பதை அறியலாம். (v6) lines காணப்படவில்லை என்றால், உங்கள் IPv6 பகுதி நிர்வகிக்கப்படாமல் உள்ளது. இது தனிப்பட்ட சிக்கல்; இதைப் பற்றி IPv6 firewall பற்றிய பதிவில் விளக்கப்பட்டுள்ளது.
பின்னர் rules-ஐ நிர்வகித்தல்
ஒரு rule-ஐ நீக்குவதற்காக, rules-ஐ எண்களுடன் பார்க்க:
sudo ufw status numbered
sudo ufw delete 3ஒரு port-ஐ ஒரே address-இலிருந்து மட்டும் அனுமதிக்க, பின்வரும் முறையைப் பயன்படுத்தவும். உங்கள் சொந்த IP-க்கு மட்டும் admin service-ஐ வெளிப்படுத்த இது சிறந்த வழியாகும்:
sudo ufw allow from 10.0.0.24 to any port 5432 proto tcpஉங்கள் சொந்த address மாறும்போது அல்லது பல machines அணுக வேண்டியிருக்கும் போது, அந்த அணுகுமுறை செயலிழக்கும். பொதுவாக, port-ஐ public-ஆக திறப்பதை முற்றிலும் நிறுத்தி, அதற்குப் பதிலாக private network மூலம் service-ஐ அணுகுவதே சரியான தீர்வாகும். இதற்காகத்தான் server-ன் private subnet-ஐ உங்கள் tailnet-க்கு விளம்பரப்படுத்துதல் பயன்படுகிறது.
Firewall என்பது ஒரு security layer மட்டுமே. ஒரு port-ஐ அடையக்கூடிய network traffic-ஐ அது கட்டுப்படுத்தும். ஆனால் SSH போன்ற திறந்த port-ஐ தொடர்ந்து அணுக முயலும் ஒருவரின் செயல்களை அது தடுக்காது. அதற்காக SSH-க்கு முன்பாக Fail2ban அமைத்தல் செய்து, மீண்டும் மீண்டும் விதிமீறும் addresses-ஐ ban செய்யவும். Defence in depth என்பது, ஒவ்வொரு layer-மும் மற்ற layers கையாள முடியாதவற்றை கையாள்வதாகும்.
Ports என்றால் என்ன, services எவ்வாறு listen செய்கின்றன என்பதை முதலில் புரிந்துகொண்ட பிறகே firewall-ஐ பயன்படுத்துவது பொருத்தமானது. Firewall-ஐ configure செய்வது புதிய VPS-ல் முதல் 10 நிமிடங்களுக்குள் செய்ய வேண்டிய பணிகளில் ஒன்றாகும்.
FAQ
UFW-ஐ enable செய்தால் எனது SSH session துண்டிக்கப்படுமா?
முதலில் SSH-ஐ allow செய்தால் துண்டிக்கப்படாது. sudo ufw enable-க்கு முன் sudo ufw allow 22/tcp-ஐ இயக்கவும். அப்போது firewall port 22-ஐ அனுமதிப்பதால் உங்கள் connection தொடர்ந்து இயங்கும். SSH allow rule இல்லாமல் default-deny firewall-ஐ enable செய்வதே ஆபத்து. அது உங்கள் அணுகலைத் துண்டித்துவிடும். அப்படி நடந்தால், உங்கள் provider-ன் VNC அல்லது serial console மூலம் login செய்து ufw disable-ஐ இயக்கவும்.
VPS-ல் எந்த ports-ஐ open செய்ய வேண்டும்?
Public-ஆக வழங்கும் services-க்குத் தேவையான ports-ஐ மட்டும் open செய்ய வேண்டும். Server-ஐ நிர்வகிக்க SSH (22/tcp) தேவை. Website இயக்கினால் HTTP மற்றும் HTTPS (80/tcp, 443/tcp) தேவை. மற்ற அனைத்தையும் denied நிலையில் விடவும். Databases போன்ற internal services 127.0.0.1-க்கு bind ஆக வேண்டும். அவற்றுக்கு firewall rule எதையும் உருவாக்க வேண்டாம். இதனால் அவை network-லிருந்து ஒருபோதும் reachable ஆகாது.
UFW IPv6-ஐ கையாளுமா?
Modern Ubuntu-ல் கையாளும். /etc/default/ufw-ல் IPV6=yes அமைக்கப்பட்டிருப்பதால், ஒவ்வொரு rule-மும் இரண்டு protocol stacks-க்கும் பொருந்தும். ufw status கட்டளை IPv6 rules-ஐ (v6) suffix-உடன் காட்டும். இது இன்னும் தவறாக இயங்கக்கூடிய வழிகள் IPv6 firewall சிக்கல் பகுதியில் விளக்கப்பட்டுள்ளன.
UFW rule-ஐ எவ்வாறு remove செய்வது?
Index numbers உடன் rules-ஐ பட்டியலிட sudo ufw status numbered-ஐ இயக்கவும். பின்னர் நீக்க வேண்டிய rule-ன் எண்ணை N-ஆகக் கொண்டு sudo ufw delete N-ஐ இயக்கவும். Specification மூலம் நீக்கவும் முடியும். எடுத்துக்காட்டாக, sudo ufw delete allow 80/tcp.
ஒரு port-ஐ ஒரே IP address-லிருந்து மட்டும் allow செய்வது எப்படி?
Plain allow-க்கு பதிலாக from rule-ஐ பயன்படுத்தவும். உங்கள் office address-லிருந்து மட்டும் PostgreSQL-ஐ அணுக அனுமதிக்க sudo ufw allow from 10.0.0.10 to any port 5432 proto tcp-ஐ இயக்கவும். Default-deny policy இருந்தால், rule மூலம் திறக்கும் வரை அந்த port அனைவருக்கும் மூடப்பட்டிருக்கும். எனவே இந்த from rule மட்டுமே அணுகல் வழியாக இருக்கும். முழு internet-க்கும் access தடுக்கப்படும்; நீங்கள் குறிப்பிடும் address-க்கு மட்டும் traffic அனுமதிக்கப்படும். Plain allow 5432/tcp-ஐ கூடுதலாகச் சேர்க்க வேண்டாம். அது port-ஐ அனைவருக்கும் open செய்துவிடும். Database அல்லது admin panel-ஐ வெளிப்படுத்த இது பாதுகாப்பான முறையாகும். Source address-ஐ port-க்கு அருகில் காட்டும் sudo ufw status verbose மூலம் அமைப்பை உறுதிப்படுத்தவும்.