லினக்ஸ் சர்வர் பாதுகாப்பு. முதலில் என்ன செய்வது

லினக்ஸ் சர்வர் பாதுகாப்பு. முதலில் என்ன செய்வது
ஹபீப் மஹென்னி/விக்கிமீடியா காமன்ஸ், CC BY-SA

இப்போதெல்லாம், ஹோஸ்டிங்கில் ஒரு சேவையகத்தை உயர்த்துவது என்பது இரண்டு நிமிடங்கள் மற்றும் சில மவுஸ் கிளிக்குகளின் விஷயம். ஆனால் தொடங்கப்பட்ட உடனேயே, அவர் ஒரு விரோதமான சூழலில் தன்னைக் காண்கிறார், ஏனென்றால் அவர் ராக்கர் டிஸ்கோவில் ஒரு அப்பாவி பெண்ணைப் போல முழு இணையத்திற்கும் திறந்திருக்கிறார். ஸ்கேனர்கள் அதை விரைவாகக் கண்டுபிடித்து, பாதிப்புகள் மற்றும் தவறான உள்ளமைவுகளைத் தேடும் நெட்வொர்க்கைத் தேடும் ஆயிரக்கணக்கான தானாக ஸ்கிரிப்ட் செய்யப்பட்ட போட்களைக் கண்டறியும். அடிப்படை பாதுகாப்பை உறுதிசெய்ய, ஏவப்பட்ட உடனேயே நீங்கள் செய்ய வேண்டிய சில விஷயங்கள் உள்ளன.

உள்ளடக்கம்

ரூட் அல்லாத பயனர்

உங்களுக்கான ரூட் அல்லாத பயனரை உருவாக்குவது முதல் படி. பயனாளர் என்பதுதான் புள்ளி root கணினியில் முழுமையான சலுகைகள், மற்றும் நீங்கள் அவரை தொலை நிர்வாகத்தை அனுமதித்தால், நீங்கள் ஹேக்கருக்கு பாதி வேலையைச் செய்வீர்கள், அவருக்கு சரியான பயனர்பெயரை விட்டுவிடுவீர்கள்.

எனவே, நீங்கள் மற்றொரு பயனரை உருவாக்கி, ரூட்டிற்காக SSH வழியாக தொலை நிர்வாகத்தை முடக்க வேண்டும்.

கட்டளை மூலம் புதிய பயனர் தொடங்கப்படுகிறார் useradd:

useradd [options] <username>

பின்னர் கட்டளையுடன் கடவுச்சொல் சேர்க்கப்படும் passwd:

passwd <username>

இறுதியாக, இந்த பயனரை உயர்த்தப்பட்ட கட்டளைகளை இயக்க உரிமை உள்ள குழுவில் சேர்க்கப்பட வேண்டும் sudo. லினக்ஸ் விநியோகத்தைப் பொறுத்து, இவை வெவ்வேறு குழுக்களாக இருக்கலாம். எடுத்துக்காட்டாக, CentOS மற்றும் Red Hat இல், பயனர் குழுவில் சேர்க்கப்படுகிறார் wheel:

usermod -aG wheel <username>

உபுண்டுவில் இது குழுவில் சேர்க்கப்பட்டுள்ளது sudo:

usermod -aG sudo <username>

SSH கடவுச்சொற்களுக்குப் பதிலாக விசைகள்

ப்ரூட் ஃபோர்ஸ் அல்லது பாஸ்வேர்டு கசிவுகள் ஒரு நிலையான தாக்குதல் வெக்டராகும், எனவே SSH (Secure Shell) இல் கடவுச்சொல் அங்கீகாரத்தை முடக்கிவிட்டு, அதற்குப் பதிலாக முக்கிய அங்கீகாரத்தைப் பயன்படுத்துவது சிறந்தது.

SSH நெறிமுறையை செயல்படுத்த பல்வேறு திட்டங்கள் உள்ளன lsh и டிராப்பியர், ஆனால் மிகவும் பிரபலமானது OpenSSH ஆகும். உபுண்டுவில் OpenSSH கிளையண்டை நிறுவுதல்:

sudo apt install openssh-client

சேவையக நிறுவல்:

sudo apt install openssh-server

உபுண்டு சர்வரில் SSH டீமனை (sshd) தொடங்குதல்:

sudo systemctl start sshd

ஒவ்வொரு துவக்கத்திலும் தானாக டீமானைத் தொடங்கவும்:

sudo systemctl enable sshd

OpenSSH இன் சேவையக பகுதி கிளையன்ட் பகுதியை உள்ளடக்கியது என்பதை கவனத்தில் கொள்ள வேண்டும். அதாவது, மூலம் openssh-server நீங்கள் மற்ற சேவையகங்களுடன் இணைக்க முடியும். மேலும், உங்கள் கிளையன்ட் மெஷினிலிருந்து, ரிமோட் சர்வரிலிருந்து மூன்றாம் தரப்பு ஹோஸ்டுக்கு SSH டன்னலைத் தொடங்கலாம், பின்னர் மூன்றாம் தரப்பு ஹோஸ்ட் ரிமோட் சர்வரை கோரிக்கைகளின் ஆதாரமாகக் கருதும். உங்கள் கணினியை மறைப்பதற்கு மிகவும் எளிமையான அம்சம். விவரங்களுக்கு கட்டுரையைப் பார்க்கவும் "நடைமுறை உதவிக்குறிப்புகள், எடுத்துக்காட்டுகள் மற்றும் SSH சுரங்கங்கள்".

கிளையன்ட் கணினியில், கணினியுடன் (பாதுகாப்பு காரணங்களுக்காக) தொலைநிலை இணைப்பு சாத்தியத்தைத் தடுக்க முழு அளவிலான சேவையகத்தை நிறுவுவதில் பொதுவாக அர்த்தமில்லை.

எனவே, உங்கள் புதிய பயனருக்கு, நீங்கள் முதலில் சேவையகத்தை அணுகும் கணினியில் SSH விசைகளை உருவாக்க வேண்டும்:

ssh-keygen -t rsa

பொது விசை ஒரு கோப்பில் சேமிக்கப்படுகிறது .pub மற்றும் தொடங்கும் சீரற்ற எழுத்துக்களின் சரம் போல் தெரிகிறது ssh-rsa.

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ3GIJzTX7J6zsCrywcjAM/7Kq3O9ZIvDw2OFOSXAFVqilSFNkHlefm1iMtPeqsIBp2t9cbGUf55xNDULz/bD/4BCV43yZ5lh0cUYuXALg9NI29ui7PEGReXjSpNwUD6ceN/78YOK41KAcecq+SS0bJ4b4amKZIJG3JWm49NWvoo0hdM71sblF956IXY3cRLcTjPlQ84mChKL1X7+D645c7O4Z1N3KtL7l5nVKSG81ejkeZsGFzJFNqvr5DuHdDL5FAudW23me3BDmrM9ifUmt1a00mWci/1qUlaVFft085yvVq7KZbF2OP2NQACUkwfwh+iSTP username@hostname

பின்னர், ரூட்டின் கீழ் இருந்து, பயனரின் ஹோம் டைரக்டரியில் உள்ள சர்வரில் ஒரு SSH கோப்பகத்தை உருவாக்கி, கோப்பில் SSH பொது விசையைச் சேர்க்கவும். authorized_keys, Vim போன்ற உரை திருத்தியைப் பயன்படுத்துதல்:

mkdir -p /home/user_name/.ssh && touch /home/user_name/.ssh/authorized_keys

vim /home/user_name/.ssh/authorized_keys

இறுதியாக, கோப்பிற்கான சரியான அனுமதிகளை அமைக்கவும்:

chmod 700 /home/user_name/.ssh && chmod 600 /home/user_name/.ssh/authorized_keys

இந்த பயனருக்கு உரிமையை மாற்றவும்:

chown -R username:username /home/username/.ssh

கிளையன்ட் பக்கத்தில், அங்கீகாரத்திற்கான ரகசிய விசையின் இருப்பிடத்தை நீங்கள் குறிப்பிட வேண்டும்:

ssh-add DIR_PATH/keylocation

இப்போது நீங்கள் இந்த விசையைப் பயன்படுத்தி பயனர்பெயரின் கீழ் சேவையகத்தில் உள்நுழையலாம்:

ssh [username]@hostname

அங்கீகாரத்திற்குப் பிறகு, நீங்கள் கோப்புகளை நகலெடுக்க scp கட்டளையைப் பயன்படுத்தலாம், பயன்பாடு sshfs ஒரு கோப்பு முறைமை அல்லது கோப்பகங்களை தொலைவிலிருந்து ஏற்றுவதற்கு.

தனிப்பட்ட விசையின் பல காப்பு பிரதிகளை உருவாக்குவது நல்லது, ஏனென்றால் நீங்கள் கடவுச்சொல் அங்கீகாரத்தை முடக்கி அதை இழந்தால், உங்கள் சொந்த சேவையகத்தில் உள்நுழைய உங்களுக்கு எந்த வழியும் இருக்காது.

மேலே குறிப்பிட்டுள்ளபடி, SSH இல் நீங்கள் ரூட்டிற்கான அங்கீகாரத்தை முடக்க வேண்டும் (நாங்கள் ஒரு புதிய பயனரைத் தொடங்குவதற்கு இதுவே காரணம்).

CentOS/Red Hat இல் நாம் வரியைக் காண்கிறோம் PermitRootLogin yes config கோப்பில் /etc/ssh/sshd_config மற்றும் அதை மாற்றவும்:

PermitRootLogin no

உபுண்டுவில் வரியைச் சேர்க்கவும் PermitRootLogin no config கோப்புக்கு 10-my-sshd-settings.conf:

sudo echo "PermitRootLogin no" >> /etc/ssh/sshd_config.d/10-my-sshd-settings.conf

புதிய பயனர் தங்கள் விசையுடன் அங்கீகரிக்கிறார் என்பதைச் சரிபார்த்த பிறகு, கடவுச்சொல் கசிவு அல்லது முரட்டுத்தனமான ஆபத்தை அகற்ற கடவுச்சொல் அங்கீகாரத்தை முடக்கலாம். இப்போது, ​​சேவையகத்தை அணுக, தாக்குபவர் தனிப்பட்ட விசையைப் பெற வேண்டும்.

CentOS/Red Hat இல் நாம் வரியைக் காண்கிறோம் PasswordAuthentication yes config கோப்பில் /etc/ssh/sshd_config மற்றும் இதை இப்படி மாற்றவும்:

PasswordAuthentication no

உபுண்டுவில் வரியைச் சேர்க்கவும் PasswordAuthentication no தாக்கல் செய்ய 10-my-sshd-settings.conf:

sudo echo "PasswordAuthentication no" >> /etc/ssh/sshd_config.d/10-my-sshd-settings.conf

SSH வழியாக இரு காரணி அங்கீகாரத்தை இயக்குவதற்கான வழிமுறைகளுக்கு, பார்க்கவும் இங்கே.

ஃபயர்வால்

நீங்கள் நேரடியாக அனுமதிக்கும் போர்ட்களின் ட்ராஃபிக் மட்டுமே சர்வருக்குச் செல்லும் என்பதை ஃபயர்வால் உறுதி செய்கிறது. இது மற்ற சேவைகளுடன் தற்செயலாக இயக்கப்பட்ட துறைமுகங்களின் சுரண்டலுக்கு எதிராக பாதுகாக்கிறது, இது தாக்குதல் மேற்பரப்பை வெகுவாகக் குறைக்கிறது.

ஃபயர்வாலை நிறுவும் முன், SSH விலக்கு பட்டியலில் சேர்க்கப்பட்டுள்ளதா மற்றும் தடுக்கப்படாது என்பதை உறுதி செய்ய வேண்டும். இல்லையெனில், ஃபயர்வாலைத் தொடங்கிய பிறகு, நாங்கள் சேவையகத்துடன் இணைக்க முடியாது.

உபுண்டு விநியோகம் சிக்கலற்ற ஃபயர்வாலுடன் வருகிறது (ufw), மற்றும் CentOS/Red Hat உடன் - firewalld.

உபுண்டுவில் ஃபயர்வாலில் SSH ஐ அனுமதிக்கிறது:

sudo ufw allow ssh

CentOS/Red Hat இல் கட்டளையைப் பயன்படுத்தவும் firewall-cmd:

sudo firewall-cmd --zone=public --add-service=ssh --permanent

இந்த நடைமுறைக்குப் பிறகு, நீங்கள் ஃபயர்வாலைத் தொடங்கலாம்.

CentOS/Red Hat இல், ஃபயர்வால்டுக்கான systemd சேவையைத் தொடங்கவும்:

sudo systemctl start firewalld
sudo systemctl enable firewalld

உபுண்டுவில் நாம் பின்வரும் கட்டளையைப் பயன்படுத்துகிறோம்:

sudo ufw enable

Fail2Ban

சேவை Fail2Ban சர்வரில் உள்ள பதிவுகளை பகுப்பாய்வு செய்து ஒவ்வொரு ஐபி முகவரியிலிருந்தும் அணுகல் முயற்சிகளின் எண்ணிக்கையை கணக்கிடுகிறது. ஒரு குறிப்பிட்ட இடைவெளியில் எத்தனை அணுகல் முயற்சிகள் அனுமதிக்கப்படுகின்றன என்பதற்கான விதிகளை அமைப்புகள் குறிப்பிடுகின்றன - அதன் பிறகு இந்த ஐபி முகவரி ஒரு குறிப்பிட்ட காலத்திற்கு தடுக்கப்படும். எடுத்துக்காட்டாக, 5 மணிநேரத்திற்குள் 2 தோல்வியுற்ற SSH அங்கீகார முயற்சிகளை அனுமதிப்போம், பின்னர் கொடுக்கப்பட்ட IP முகவரியை 12 மணிநேரத்திற்குத் தடுப்போம்.

CentOS மற்றும் Red Hat இல் Fail2Ban ஐ நிறுவுதல்:

sudo yum install fail2ban

உபுண்டு மற்றும் டெபியனில் நிறுவுதல்:

sudo apt install fail2ban

துவக்கு:

systemctl start fail2ban
systemctl enable fail2ban

நிரலில் இரண்டு உள்ளமைவு கோப்புகள் உள்ளன: /etc/fail2ban/fail2ban.conf и /etc/fail2ban/jail.conf. தடை கட்டுப்பாடுகள் இரண்டாவது கோப்பில் குறிப்பிடப்பட்டுள்ளன.

இயல்புநிலை அமைப்புகளுடன் (5 முயற்சிகள், இடைவெளி 10 நிமிடங்கள், 10 நிமிடங்களுக்கு தடை) இயல்புநிலையாக SSHக்கான சிறைச்சாலை இயக்கப்படுகிறது.

[DEFAULT] புறக்கணிப்பு கட்டளை= bantime=10m findtime=10m maxretry=5

SSH க்கு கூடுதலாக, Fail2Ban ஆனது nginx அல்லது Apache இணைய சேவையகத்தில் பிற சேவைகளைப் பாதுகாக்க முடியும்.

தானியங்கி பாதுகாப்பு புதுப்பிப்புகள்

உங்களுக்குத் தெரியும், எல்லா நிரல்களிலும் புதிய பாதிப்புகள் தொடர்ந்து காணப்படுகின்றன. தகவல் வெளியிடப்பட்ட பிறகு, பிரபலமான சுரண்டல் தொகுப்புகளில் சுரண்டல்கள் சேர்க்கப்படுகின்றன, அவை ஹேக்கர்கள் மற்றும் இளைஞர்களால் ஒரு வரிசையில் அனைத்து சேவையகங்களையும் ஸ்கேன் செய்யும் போது பெருமளவில் பயன்படுத்தப்படுகின்றன. எனவே, பாதுகாப்பு புதுப்பிப்புகள் தோன்றியவுடன் அவற்றை நிறுவுவது மிகவும் முக்கியம்.

உபுண்டு சர்வரில், தானியங்கி பாதுகாப்பு புதுப்பிப்புகள் முன்னிருப்பாக இயக்கப்படும், எனவே மேற்கொண்டு எந்த நடவடிக்கையும் தேவையில்லை.

CentOS/Red Hat இல் நீங்கள் பயன்பாட்டை நிறுவ வேண்டும் dnf-தானியங்கி மற்றும் டைமரை இயக்கவும்:

sudo dnf upgrade
sudo dnf install dnf-automatic -y
sudo systemctl enable --now dnf-automatic.timer

டைமர் சோதனை:

sudo systemctl status dnf-automatic.timer

இயல்புநிலை துறைமுகங்களை மாற்றுதல்

SSH 1995 இல் டெல்நெட் (போர்ட் 23) மற்றும் ftp (போர்ட் 21) ஆகியவற்றை மாற்றுவதற்காக உருவாக்கப்பட்டது, எனவே திட்டத்தின் ஆசிரியர் டாட்டு இல்டோனென் முன்னிருப்பாக போர்ட் 22 தேர்ந்தெடுக்கப்பட்டது, மற்றும் IANA ஆல் அங்கீகரிக்கப்பட்டது.

இயற்கையாகவே, SSH எந்த போர்ட்டில் இயங்குகிறது என்பதை அனைத்து தாக்குபவர்களும் அறிந்திருக்கிறார்கள் - மேலும் மென்பொருள் பதிப்பைக் கண்டறிய, நிலையான ரூட் கடவுச்சொற்களைச் சரிபார்க்க மற்றும் பலவற்றிற்கு மற்ற நிலையான போர்ட்களுடன் அதை ஸ்கேன் செய்யவும்.

நிலையான துறைமுகங்களை மாற்றுவது - தெளிவற்ற தன்மை - பல முறை குப்பைப் போக்குவரத்தின் அளவு, பதிவுகளின் அளவு மற்றும் சர்வரில் உள்ள சுமை ஆகியவற்றைக் குறைக்கிறது, மேலும் தாக்குதல் மேற்பரப்பைக் குறைக்கிறது. இருந்தாலும் சில "தெளிவின் மூலம் பாதுகாப்பு" என்ற இந்த முறையை விமர்சிக்கவும் (தெளிவின் மூலம் பாதுகாப்பு). காரணம், இந்த நுட்பம் அடிப்படைக்கு எதிரானது கட்டிடக்கலை பாதுகாப்பு. எனவே, எடுத்துக்காட்டாக, அமெரிக்க தேசிய தரநிலைகள் மற்றும் தொழில்நுட்ப நிறுவனம் "சர்வர் பாதுகாப்பு வழிகாட்டி" திறந்த சேவையக கட்டமைப்பின் அவசியத்தை குறிக்கிறது: "ஒரு கணினியின் பாதுகாப்பு அதன் கூறுகளை செயல்படுத்தும் இரகசியத்தை நம்பியிருக்கக்கூடாது" என்று ஆவணம் கூறுகிறது.

கோட்பாட்டளவில், இயல்புநிலை துறைமுகங்களை மாற்றுவது திறந்த கட்டிடக்கலை நடைமுறைக்கு எதிரானது. ஆனால் நடைமுறையில், தீங்கிழைக்கும் போக்குவரத்தின் அளவு உண்மையில் குறைக்கப்படுகிறது, எனவே இது ஒரு எளிய மற்றும் பயனுள்ள நடவடிக்கையாகும்.

கட்டளையை மாற்றுவதன் மூலம் போர்ட் எண்ணை உள்ளமைக்க முடியும் Port 22 config கோப்பில் / போன்றவை / ssh / sshd_config. இது அளவுருவால் குறிக்கப்படுகிறது -p <port> в செயற்படுத்துவதற்கு sshd. SSH கிளையன்ட் மற்றும் நிரல்கள் வெளியிடுகிறீர்கள் விருப்பத்தை ஆதரிக்கவும் -p <port>.

அளவுரு -p <port> கட்டளையுடன் இணைக்கும்போது போர்ட் எண்ணைக் குறிப்பிட பயன்படுத்தலாம் ssh லினக்ஸில். IN வெளியிடுகிறீர்கள் и scp அளவுரு பயன்படுத்தப்படுகிறது -P <port> (மூலதனம் பி). கட்டளை வரி அறிவுறுத்தல் உள்ளமைவு கோப்புகளில் உள்ள எந்த மதிப்பையும் மீறுகிறது.

பல சேவையகங்கள் இருந்தால், லினக்ஸ் சேவையகத்தைப் பாதுகாப்பதற்கான இந்த நடவடிக்கைகள் அனைத்தும் ஸ்கிரிப்ட்டில் தானியங்கு செய்யப்படலாம். ஆனால் ஒரே ஒரு சேவையகம் இருந்தால், செயல்முறையை கைமுறையாக கட்டுப்படுத்துவது நல்லது.

விளம்பரம் உரிமைகள் மீது

உடனே ஆர்டர் செய்து வேலை செய்யுங்கள்! VDS உருவாக்கம் எந்த உள்ளமைவு மற்றும் எந்த இயக்க முறைமையுடனும் ஒரு நிமிடத்திற்குள். 128 சிபியு கோர்கள், 512 ஜிபி ரேம், 4000 ஜிபி என்விஎம்இ - அதிகபட்ச உள்ளமைவு உங்களை முழுமையாகப் பெற அனுமதிக்கும். காவியம் 🙂

லினக்ஸ் சர்வர் பாதுகாப்பு. முதலில் என்ன செய்வது

ஆதாரம்: www.habr.com