புதிய VPS சர்வரை பாதுகாப்பாக அமைப்பது எப்படி?
புதிய VPS சர்வரை வாங்கிய 10 நிமிடங்களில் செய்ய வேண்டிய பாதுகாப்பு மாற்றங்கள் இதோ. root access-ஐ முடக்கி, SSH keys அமைத்து, firewall-ஐ எவ்வாறு செயல்படுத்துவது என விரிவாகக் காண்போம்.
உங்கள் server-ன் பாதுகாப்பை முதல் 10 நிமிடங்களே தீர்மானிக்கின்றன
புதிதாக வாங்கப்பட்ட VPS பாதுகாப்பானது அல்ல. அதற்கு public IP கிடைத்த தருணத்திலிருந்தே, scanner-கள் login செய்ய முயற்சிக்கும். இயல்பான OS image-ல் root access அனுமதிக்கப்பட்டிருக்கும், password-கள் மூலம் நுழைய முடியும், firewall இருக்காது, மற்றும் patch-கள் உடனுக்குடன் செய்யப்படாது. ஆனால், இந்த ஓட்டைகளை அடைக்க பத்து நிமிடங்களும் சில கட்டளைகளும் மட்டுமே போதுமானது. எந்தவொரு application-ஐயும் நிறுவும் முன், நான் ஒவ்வொரு புதிய server-லும் பின்பற்றும் runbook இது.
ஒவ்வொரு படியும் அடுத்ததைச் சார்ந்து இருப்பதால், வரிசைப்படி செய்யவும். ஒவ்வொரு படிக்கும் தனி வழிகாட்டி உள்ளது, அவை இங்கே இணைக்கப்பட்டுள்ளன; இந்த பக்கம் அனைத்தையும் ஒருங்கிணைக்கும் விரைவான வழிமுறையாகும்.
நிமிடம் 1: அனைத்தையும் புதுப்பித்தல்
உங்கள் provider வழங்கிய credentials-ஐப் பயன்படுத்தி root பயனராக log in செய்யவும். வேறு எதையும் செய்வதற்கு முன்பு, கணினியை முழுமையாகப் புதுப்பிக்கவும்:
apt update && apt upgrade -yபாதுகாப்புத் திருத்தங்கள் (patches) செய்யப்படாத server-கள் எளிதில் ஊடுருவக்கூடியவை, எனவே இதுவே முதன்மையான பணி. இது முடிந்ததும், நீங்கள் நினைவில் கொள்ளாமலேயே கணினி தானாகவே பாதுகாப்புப் புதுப்பிப்புகளைப் பெறும் வகையில் அமைக்கவும்.
நிமிடம் 2: sudo வசதியுடன் ஒரு சாதாரண பயனரை உருவாக்குதல்
root பயனராகத் தொடர்ந்து பணியாற்ற வேண்டாம். உங்களுக்கென ஒரு பயனரை உருவாக்கி, அதற்கு sudo அதிகாரத்தை வழங்கவும்:
adduser matt
usermod -aG sudo mattஇங்கிருந்து, நீங்கள் இந்த பயனராகவே login செய்து, நிர்வாகப் பணிகளுக்கு sudo கட்டளையைப் பயன்படுத்த வேண்டும். எப்போதும் root பயனராகச் செயல்படுவது, ஒவ்வொரு தவறும் மற்றும் ஒவ்வொரு பாதுகாப்பு மீறலும் வரம்பற்ற அதிகாரத்துடன் நடப்பதற்கு வழிவகுக்கும்; இதைத் தடுப்பதற்காகவே சாதாரண பயனராகச் செயல்படுதல் முறை உருவாக்கப்பட்டுள்ளது.
நிமிடம் 4: SSH keys அமைத்தல்
கடவுச்சொற்கள் (passwords) யூகிக்கப்படலாம்; ஆனால் keys யூகிக்கப்படாது. உங்கள் சொந்த மடிக்கணினியில், உங்களிடம் ஏற்கனவே key இல்லை என்றால், ஒன்றை உருவாக்கவும்:
ssh-keygen -t ed25519பின்பு அதன் public பகுதியை server-க்கு நகலெடுக்கவும்:
ssh-copy-id matt@YOUR_SERVERssh-copy-id-க்கு புதிய பயனருக்கான password login தேவைப்படுகிறது; அது ஏற்கனவே முடக்கப்பட்டிருந்தால், root-ன் ~/.ssh/authorized_keys-ஐ /home/matt/.ssh/authorized_keys-க்கு (இது matt-க்கு சொந்தமானது) நகலெடுக்கவும், அல்லது அந்த கோப்பில் உங்கள் public key-ஐ கைமுறையாக ஒட்டவும்.
இந்த படிநிலையின் அடிப்படை தத்துவம், ஒவ்வொரு சாதனத்திற்கும் ஒரு key, key login-ஐ பாதிக்கும் அனுமதிகள் (permissions), மற்றும் தொலைந்துபோன key-ஐ நீக்குதல் ஆகியவை SSH key மேலாண்மை அடிப்படைகள் பகுதியில் விளக்கப்பட்டுள்ளன.
அடுத்த படிநிலைக்குச் செல்லும் முன், key-ஐப் பயன்படுத்தி matt ஆக வெளியேறி மீண்டும் உள்நுழைந்து, அது சரியாக வேலை செய்கிறதா என்பதை உறுதிப்படுத்தவும். key மூலம் உள்நுழைய முடியாத நிலையில் SSH-ஐ முடக்கினால், நீங்கள் உங்கள் சொந்த server-லேயே நுழைய முடியாமல் பூட்டிக்கொள்வீர்கள். அந்த login முயற்சியில் Permission denied (publickey) என்ற பிழை வந்தால், password-க்கு திரும்புவதற்குப் பதிலாக, இப்போதே அதைச் சரிசெய்யவும். ஏனெனில் அந்த ஒரு செய்தி ஐந்து வெவ்வேறு பிழைகளை குறிக்கலாம், மேலும் ssh -v வெளியீடு உங்களுக்கு எந்தப் பிழை ஏற்பட்டுள்ளது என்பதைத் தெரிவிக்கும்.
நிமிடம் 6: root login மற்றும் கடவுச்சொற்களை முடக்குதல்
இப்போது உங்கள் key சரியாக வேலை செய்வதால், ஸ்கேனர்கள் பயன்படுத்தும் இரண்டு வழிகளை மூடிவிடவும். தொகுப்பு மேம்படுத்தல்கள் (package upgrades) இதை மேலெழுதாமல் இருக்க, ஒரு drop-in கோப்பைப் பயன்படுத்தவும். இதற்கு 00- என்று பெயரிடவும், அப்போதுதான் இது 50-cloud-init.conf-க்கு முன்பாக வரிசைப்படுத்தப்படும். Ubuntu cloud images-ல் PasswordAuthentication yes ஏற்கனவே இருக்கும்; sshd தான் முதலில் படிக்கும் மதிப்பையே எடுத்துக்கொள்ளும் என்பதால், பிந்தைய வரிசை கொண்ட கோப்பு கவனிக்கப்படாமல் போக வாய்ப்புள்ளது:
sudo nano /etc/ssh/sshd_config.d/00-hardening.confPasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin noபிறகு SSH-ஐ மீண்டும் ஏற்றவும் (reload):
sudo systemctl restart sshஅதன்பின், sshd உண்மையில் பயன்படுத்தும் அமைப்புகளைச் சரிபார்க்கவும், அப்போதுதான் தவறான drop-in கோப்பு உங்களை ஏமாற்றாது:
sudo sshd -T | grep -Ei 'passwordauthentication|permitrootlogin'கடவுச்சொற்கள் முடக்கப்பட்ட நிலையில் மற்றும் root login நீக்கப்பட்ட நிலையில், உங்கள் server-க்கு எதிராக வரும் தொடர்ச்சியான brute-force traffic வெற்றிபெற முடியாது. விருப்பத்தேர்வாக port-ஐ மாற்றுவது உட்பட முழுமையான வழிமுறைகள் VPS-ல் SSH-ஐ பலப்படுத்துதல் பகுதியில் உள்ளன.
நிமிடம் 8: Firewall-ஐ ஆன் செய்தல்
உள்வரும் அனைத்து இணைப்புகளையும் இயல்பாகவே மறுக்கவும் (default-deny), பின்னர் தேவையானவற்றை மட்டும் அனுமதிக்கவும். SSH-ஐ enable செய்வதற்கு முன்பே அதை அனுமதித்துவிடவும், இல்லையெனில் உங்கள் இணைப்பு துண்டிக்கப்படும்:
sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw enableநீங்கள் இயக்கும் எந்தவொரு சேவைக்கும் allow விதிகளைச் சேர்க்கவும், உதாரணமாக இணையதளத்திற்கு 80/tcp மற்றும் 443/tcp ஆகியவற்றைச் சேர்க்கவும். இதைச் செய்த பிறகு புதிய SSH session இணைக்கப்படாவிட்டால், எதையும் மாற்றுவதற்கு முன் பிழைச் செய்தியைப் படிக்கவும், ஏனெனில் இணைப்பு மறுக்கப்பட்டால் sshd பதிலளித்துள்ளது என்றும், timeout ஏற்பட்டால் firewall பாக்கெட்டைத் தடுத்துள்ளது என்றும் பொருள். IPv4 மற்றும் IPv6 ஆகிய இரண்டிற்கும் விதிகள் உள்ளதா என்பதைச் சரிபார்க்கவும், ஏனெனில் IPv4-ஐ மட்டும் வடிகட்டும் firewall IPv6 பக்கத்தை முழுமையாகத் திறந்து வைத்திருக்கும். முழுமையான வழிகாட்டி VPS-ல் Firewall 101 என்பதில் உள்ளது. இந்த ufw கட்டளைகள் Ubuntu அல்லது Debian-க்கு உரியவை; Rocky அல்லது AlmaLinux-ல் இயல்பாகவே அனைத்தையும் மறுக்கும் (default-deny) இலக்கு ஒன்றுதான், ஆனால் அதற்கு firewalld கருவியைப் பயன்படுத்த வேண்டும், எனவே இந்த அடியின் firewalld பதிப்பை பின்பற்றவும்.
நிமிடம் 10: Fail2ban மூலம் ஸ்கேனர்களைக் கட்டுப்படுத்துதல்
இறுதியாக, உங்கள் ports-ஐத் தொடர்ந்து தாக்கும் IP முகவரிகளை வெளியேற்ற Fail2ban-ஐச் சேர்க்கவும்:
sudo apt install -y fail2banUbuntu 24.04-ல், இயல்பான நிறுவலே SSH-ஐ முதல் boot முதலே பாதுகாக்கிறது. ஏற்கனவே cryptographic keys கட்டாயமாக்கப்பட்டுள்ள நிலையில், இது log கோப்புகளில் தேவையற்ற பதிவுகளைக் குறைக்கவும், மீண்டும் மீண்டும் முயற்சிக்கும் தாக்குதலாளர்களைத் தடுக்கவும் உதவும் ஒரு கூடுதல் பாதுகாப்பு அரணாகும்; இது உங்கள் முதன்மைப் பாதுகாப்பு முறை அல்ல.
உங்கள் சரிபார்ப்புப் பட்டியல்
இதுவே runbook ஆகும். ஒவ்வொரு கட்டுப்பாட்டையும் சரிபார்த்து, உங்கள் server-உடன் வைத்திருக்கக்கூடிய தனிப்பயனாக்கப்பட்ட சரிபார்ப்புப் பட்டியலை உருவாக்க கீழே உள்ள generator-ஐப் பயன்படுத்தவும். இதில் ஒவ்வொரு படிநிலைக்கான துல்லியமான கட்டளையும் அடங்கும்:
ஒவ்வொரு புதிய server-க்கும் இதை வரிசையாகச் செய்து வாருங்கள்; இது உங்கள் பழக்கமாகிவிடும். இப்போது செலவிடும் பத்து நிமிடங்கள், server breached ஆகும்போது ஏற்படும் மோசமான பாதிப்புகளிலிருந்து உங்களைக் காக்கும்.
அடிப்படை வசதிகள் அமைக்கப்பட்ட பிறகு, Ubuntu-வில் தானியங்கி பாதுகாப்பு மேம்படுத்தல்கள் நீங்கள் மீண்டும் login செய்யாமலேயே server-ஐப் புதுப்பித்த நிலையில் வைத்திருக்கும். அதன் மேல் நீங்கள் நிறுவும் ஒவ்வொரு service-க்கும் தனித்தனியாகப் பாதுகாப்புச் சோதனைகளைச் செய்ய வேண்டும்; அப்போது பலவீனமான இடங்கள் மாறும்: self-hosted password vault பயன்படுத்தும்போது server-ல் plaintext தரவுகள் இருக்காது, எனவே Vaultwarden-ன் உண்மையான அபாயங்கள் என்பது admin token மற்றும் backup கோப்பு மட்டுமே.
FAQ
புதிய VPS-ல் நான் முதலில் என்ன செய்ய வேண்டும்?
apt update && apt upgrade -y மூலம் கணினியைப் புதுப்பிக்கவும், பின்னர் sudo வசதியுடன் ஒரு சாதாரண பயனரை உருவாக்கி root பயனராகச் செயல்படுவதைத் தவிர்க்கவும். அதன் பிறகு, SSH keys-ஐ அமைத்து, root login மற்றும் password authentication-ஐ முடக்கவும், default-deny firewall-ஐ இயக்கவும், மற்றும் Fail2ban-ஐ நிறுவவும். இந்த வரிசையில் செயல்படுவது, உங்களை நீங்களே வெளியேற்றிக்கொள்ளும் அபாயம் இன்றி ஒவ்வொரு படியையும் பாதுகாப்பாக முடிக்க உதவும்.
SSH-ஐ பலப்படுத்தும் போது நான் வெளியேற்றப்படாமல் இருப்பது எப்படி?
கடவுச்சொற்களையோ அல்லது root login-ஐயோ முடக்கும் முன்பே, உங்கள் SSH key login-ஐ அமைத்துச் சோதிக்கவும். அது வேலை செய்கிறதா என்பதை உறுதிப்படுத்த, வெளியேறி மீண்டும் அதே key மூலம் உள்நுழையவும். அதன் பிறகு மட்டுமே PasswordAuthentication மற்றும் PermitRootLogin ஆகியவற்றை முடக்கவும். Firewall-ஐ இயக்கும்போது, ufw enable-ஐ இயக்குவதற்கு முன்பே port 22-ஐ அனுமதிக்கவும். ஒருவேளை நீங்கள் வெளியேற்றப்பட்டால், உங்கள் சேவை வழங்குநரின் (provider) web console மூலம் SSH இன்றி மீண்டும் உள்ளே நுழையலாம்.
சிறிய server-க்கு இவை அனைத்தும் உண்மையிலேயே தேவையா?
ஆம், ஏனெனில் உங்கள் server எவ்வளவு சிறியது என்பதை ஸ்கேனர்கள் (scanners) கருத்தில் கொள்வதில்லை. அவை அனைத்து பொது IP-களையும் ஒரே மாதிரியாகவே சோதிக்கின்றன. இந்த முழு நடைமுறையும் சுமார் பத்து நிமிடங்கள் மட்டுமே எடுக்கும், ஆனால் இது எளிதான ஊடுருவல் வழிகளை நீக்குகிறது: root login இல்லை, கடவுச்சொல் ஊகிக்க முடியாது, நீங்கள் தேர்வு செய்யாத எதையும் வெளிப்படுத்தாது, மேலும் அறியப்பட்ட பிழைகள் தானாகவே சரிசெய்யப்படும்.
மிக முக்கியமான ஒரே படி எது?
Root login முடக்கப்பட்ட, key-only SSH முறை. புதிய VPS-ல் நடக்கும் பெரும்பாலான தாக்குதல்கள் root பயனருக்கான தானியங்கி கடவுச்சொல் ஊகங்களே. இவை இரண்டையும் முடக்குவதன் மூலம், அந்த வகை தாக்குதல்கள் முழுமையாகத் தடுக்கப்படுகின்றன. Firewall மற்றும் Fail2ban ஆகியவை எஞ்சியிருக்கும் அச்சுறுத்தல்களைக் கட்டுப்படுத்தி, அவற்றின் வேகத்தைக் குறைக்கின்றன.
server உண்மையில் பாதுகாப்பாக இருப்பதை நான் எப்படி உறுதிப்படுத்துவது?
நீங்கள் நம்புவதற்கு முன்பு மூன்று விஷயங்களை நீங்களே சரிபார்க்கவும். sudo ss -tlnp-ஐ இயக்கி, நீங்கள் திறக்க விரும்பிய ports மட்டுமே பொது முகவரியில் கேட்கின்றனவா என்பதை உறுதிப்படுத்தவும்; நீங்கள் மறந்துவிட்ட 0.0.0.0 அல்லது [::] சேவைகள் எதுவும் இயங்கவில்லை என்பதை உறுதிப்படுத்தவும். sudo ufw status verbose-ஐ இயக்கி, default incoming policy deny ஆக உள்ளதா என்பதையும், plain மற்றும் (v6) விதிகள் இரண்டும் உள்ளனவா என்பதையும் சரிபார்க்கவும். எப்போதும் முதல் SSH session-ஐ மூடுவதற்கு முன்பு இரண்டாவது session-ஐத் திறந்து வைக்கவும்; அப்போதுதான் SSH அமைப்பில் தவறு நேர்ந்தாலும் உங்களால் server-க்குள் நுழைய முடியும். இந்த மூன்றையும் சரிபார்த்தால், அடிப்படைப் பாதுகாப்பு சரியாக உள்ளது என்று அர்த்தம்.