የሊኑክስ አገልጋይ ጥበቃ. መጀመሪያ ምን ማድረግ እንዳለበት

የሊኑክስ አገልጋይ ጥበቃ. መጀመሪያ ምን ማድረግ እንዳለበት
Habib M'henni/Wikimedia Commons, CC BY-SA

በአሁኑ ጊዜ አገልጋይን በአስተናጋጅ ላይ ማሳደግ የሁለት ደቂቃዎች እና ጥቂት የመዳፊት ጠቅታዎች ጉዳይ ነው። ነገር ግን ወዲያው ስራውን ከጀመረ በኋላ እራሱን በጥላቻ አከባቢ ውስጥ አገኘው ምክንያቱም እሱ በሮከር ዲስኮ ውስጥ እንደ ንፁህ ሴት ልጅ ለመላው ኢንተርኔት ክፍት ነው ። ስካነሮች በፍጥነት ያገኙታል እና ተጋላጭነቶችን እና የተሳሳቱ ውቅሮችን በመፈለግ አውታረ መረቡን የሚቃኙ በሺዎች የሚቆጠሩ በራስ-ሰር የተፃፉ ቦቶች ያገኙታል። መሰረታዊ ጥበቃን ለማረጋገጥ ከተጀመረ በኋላ ወዲያውኑ ማድረግ ያለብዎት ጥቂት ነገሮች አሉ።

ይዘቶች

ሥር ያልሆነ ተጠቃሚ

የመጀመሪያው እርምጃ ለራስህ ስር ያልሆነ ተጠቃሚ መፍጠር ነው። ነጥቡ ተጠቃሚው ነው። root በስርዓቱ ውስጥ ፍጹም መብቶች ፣ እና እሱን የርቀት አስተዳደር ከፈቀዱ ፣ ከዚያ ለጠላፊው ግማሹን ስራ ይሰራሉ ​​፣ ለእሱ ትክክለኛ የተጠቃሚ ስም ይተዉታል።

ስለዚህ፣ ሌላ ተጠቃሚ መፍጠር አለብህ፣ እና የርቀት አስተዳደርን በSSH ለ root አሰናክል።

አዲስ ተጠቃሚ በትእዛዙ ይጀምራል useradd:

useradd [options] <username>

ከዚያ በትእዛዙ ላይ የይለፍ ቃል ይጨመርለታል passwd:

passwd <username>

በመጨረሻም፣ ይህ ተጠቃሚ ከፍ ያሉ ትዕዛዞችን የማስፈጸም መብት ወዳለው ቡድን መጨመር አለበት። sudo. በሊኑክስ ስርጭት ላይ በመመስረት, እነዚህ የተለያዩ ቡድኖች ሊሆኑ ይችላሉ. ለምሳሌ በCentOS እና Red Hat ውስጥ ተጠቃሚው ወደ ቡድኑ ተጨምሯል። wheel:

usermod -aG wheel <username>

በኡቡንቱ ውስጥ ወደ ቡድኑ ታክሏል sudo:

usermod -aG sudo <username>

ከSSH ይለፍ ቃል ይልቅ ቁልፎች

የብሩት ሃይል ወይም የይለፍ ቃል ፍንጣቂዎች መደበኛ የጥቃት ቬክተር ናቸው፣ስለዚህ የይለፍ ቃል ማረጋገጫን በኤስኤስኤች (Secure Shell) ማሰናከል እና በምትኩ ቁልፍ ማረጋገጫን መጠቀም ጥሩ ነው።

የኤስኤስኤች ፕሮቶኮልን ለመተግበር የተለያዩ ፕሮግራሞች አሉ፣ ለምሳሌ lsh и ሽርሽር፣ ግን በጣም ታዋቂው OpenSSH ነው። የOpenSSH ደንበኛን በኡቡንቱ ላይ መጫን፡-

sudo apt install openssh-client

የአገልጋይ ጭነት;

sudo apt install openssh-server

በኡቡንቱ አገልጋይ ላይ SSH daemon (sshd) በመጀመር ላይ፡-

sudo systemctl start sshd

በእያንዳንዱ ቡት ላይ ዴሞንን በራስ-ሰር ያስጀምሩ፦

sudo systemctl enable sshd

የ OpenSSH የአገልጋይ ክፍል የደንበኛውን ክፍል እንደሚያካትት ልብ ሊባል ይገባል። ይህም በኩል ነው openssh-server ከሌሎች አገልጋዮች ጋር መገናኘት ይችላሉ. ከዚህም በላይ ከደንበኛዎ ማሽን የኤስኤስኤች ዋሻን ከርቀት አገልጋይ ወደ ሶስተኛ ወገን አስተናጋጅ መጀመር ይችላሉ, ከዚያም የሶስተኛ ወገን አስተናጋጅ የርቀት አገልጋዩን እንደ የጥያቄ ምንጭ ይቆጥረዋል. ስርዓትዎን ለመደበቅ በጣም ጠቃሚ ባህሪ። ለተጨማሪ ዝርዝሮች ጽሑፉን ይመልከቱ "ተግባራዊ ምክሮች፣ ምሳሌዎች እና SSH ዋሻዎች".

በደንበኛ ማሽን ላይ ከኮምፒዩተር ጋር የርቀት ግንኙነትን ለመከላከል (ለደህንነት ሲባል) ብዙውን ጊዜ ሙሉ አገልጋይ መጫን ምንም ትርጉም የለውም.

ስለዚህ፣ ለአዲሱ ተጠቃሚህ፣ መጀመሪያ አገልጋዩን በምትደርስበት ኮምፒውተር ላይ የኤስኤስኤች ቁልፎችን መፍጠር አለብህ፡-

ssh-keygen -t rsa

የወል ቁልፉ በፋይል ውስጥ ተከማችቷል። .pub እና የሚጀምር የዘፈቀደ ቁምፊዎች ሕብረቁምፊ ይመስላል ssh-rsa.

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

ከዚያ፣ ከስር ስር፣ በአገልጋዩ ላይ የSSH ማውጫ በተጠቃሚው የቤት ማውጫ ውስጥ ይፍጠሩ እና የኤስኤስኤች የህዝብ ቁልፍን ወደ ፋይሉ ያክሉት። authorized_keysእንደ ቪም የጽሑፍ አርታዒ በመጠቀም፡-

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 የፋይል ስርዓት ወይም ማውጫዎችን በርቀት ለመጫን.

የግል ቁልፍን ብዙ የመጠባበቂያ ቅጂዎችን ማድረግ ጥሩ ነው, ምክንያቱም የይለፍ ቃል ማረጋገጥን ካሰናከሉ እና ከጠፋብዎት, ወደ እራስዎ አገልጋይ ለመግባት ምንም አይነት መንገድ አይኖርዎትም.

ከላይ እንደተጠቀሰው በኤስኤስኤች ውስጥ ለ root ማረጋገጫን ማሰናከል ያስፈልግዎታል (ይህ አዲስ ተጠቃሚ የጀመርንበት ምክንያት ነው)።

በCentOS/Red Hat ላይ መስመሩን እናገኛለን PermitRootLogin yes በማዋቀር ፋይል ውስጥ /etc/ssh/sshd_config እና ቀይር፡-

PermitRootLogin no

በኡቡንቱ ላይ መስመሩን ያክሉ PermitRootLogin no ወደ ውቅር ፋይል 10-my-sshd-settings.conf:

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

አዲሱ ተጠቃሚ በእነሱ ቁልፍ እያረጋገጠ መሆኑን ካረጋገጡ በኋላ የይለፍ ቃል ማረጋገጫን በማሰናከል የይለፍ ቃል የመውጣት ወይም የጭካኔ ሃይልን አደጋ ለማስወገድ ይችላሉ። አሁን፣ አገልጋዩን ለማግኘት አጥቂ የግል ቁልፍ ማግኘት አለበት።

በCentOS/Red Hat ላይ መስመሩን እናገኛለን PasswordAuthentication yes በማዋቀር ፋይል ውስጥ /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 በኩል ለማንቃት መመሪያዎችን ለማግኘት ይመልከቱ እዚህ.

ፋየርዎል

ፋየርዎል እርስዎ በቀጥታ በሚፈቅዷቸው ወደቦች ላይ ያለው ትራፊክ ብቻ ወደ አገልጋዩ እንደሚሄድ ያረጋግጣል። ይህ ከሌሎች አገልግሎቶች ጋር በአጋጣሚ የነቁ ወደቦችን ብዝበዛ ይከላከላል ይህም የጥቃት ገፅን በእጅጉ ይቀንሳል።

ፋየርዎልን ከመጫንዎ በፊት ኤስኤስኤች በማግለል ዝርዝር ውስጥ መካተቱን እና እንደማይታገድ ማረጋገጥ አለብዎት። አለበለዚያ ፋየርዎልን ከጀመርን በኋላ ከአገልጋዩ ጋር መገናኘት አንችልም።

የኡቡንቱ ስርጭት ካልተወሳሰበ ፋየርዎል ጋር ይመጣልufw), እና በሴንትኦኤስ/ቀይ ኮፍያ - እሳት.

በኡቡንቱ ፋየርዎል ውስጥ SSH መፍቀድ፡-

sudo ufw allow ssh

በ CentOS/Red Hat ላይ ትዕዛዙን ይጠቀሙ firewall-cmd:

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

ከዚህ አሰራር በኋላ ፋየርዎልን መጀመር ይችላሉ.

በCentOS/Red Hat፣የፋየርዎልድ የስርዓት አገልግሎትን ይጀምሩ፡

sudo systemctl start firewalld
sudo systemctl enable firewalld

በኡቡንቱ ላይ የሚከተለውን ትዕዛዝ እንጠቀማለን-

sudo ufw enable

Fail2Ban

አገልግሎት Fail2Ban በአገልጋዩ ላይ የምዝግብ ማስታወሻዎችን ይመረምራል እና ከእያንዳንዱ የአይፒ አድራሻ የመዳረሻ ሙከራዎችን ብዛት ይቆጥራል። ቅንብሮቹ ለተወሰነ ጊዜ ምን ያህል የመዳረሻ ሙከራዎች እንደሚፈቀዱ ደንቦቹን ይገልፃሉ - ከዚያ በኋላ ይህ የአይፒ አድራሻ ለተወሰነ ጊዜ ታግዷል። ለምሳሌ፣ በ5-ሰአት ልዩነት ውስጥ 2 ያልተሳኩ የኤስኤስኤች የማረጋገጫ ሙከራዎችን እንፍቀድ፣ከዚያ በኋላ ይህን አይፒ አድራሻ ለ12 ሰአታት እንገድበዋለን።

Fail2Ban በ CentOS እና Red Hat ላይ መጫን፡-

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 ደቂቃዎች እገዳ) በነባሪነት ነቅቷል።

[ነባሪ] ችላ ማለት = bantime = 10 ሜትር ግኝት = 10 ሜትር ከፍተኛ = 5

ከኤስኤስኤች በተጨማሪ 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

ነባሪ ወደቦችን በመቀየር ላይ

ኤስኤስኤች በ 1995 ቴልኔትን (ወደብ 23) እና ኤፍቲፒ (ወደብ 21ን) ለመተካት ተዘጋጅቷል ፣ ስለዚህ የፕሮግራሙ ደራሲ ታቱ ኢልቶነን የተመረጠ ወደብ 22 በነባሪ፣ እና በ IANA ጸድቋል።

በተፈጥሮ ሁሉም አጥቂዎች ኤስኤስኤች ወደብ በየትኛው ወደብ እንደሚሰራ ያውቃሉ - እና ከቀሪዎቹ መደበኛ ወደቦች ጋር ይቃኙት የሶፍትዌር ስሪቱን ለማወቅ ፣ መደበኛ ስርወ የይለፍ ቃሎችን ፣ ወዘተ.

መደበኛ ወደቦችን መቀየር - መደበቅ - ብዙ ጊዜ የቆሻሻ ትራፊክን መጠን, የምዝግብ ማስታወሻዎች መጠን እና በአገልጋዩ ላይ ያለውን ጭነት ይቀንሳል, እንዲሁም የጥቃቱን ገጽታ ይቀንሳል. ምንም እንኳን አንዳንድ ይህንን "በድብቅ ጥበቃ" የሚለውን ዘዴ ተቸ (ደህንነት በጨለማ). ምክንያቱ ይህ ዘዴ ከመሠረታዊነት ጋር የሚቃረን ነው የሕንፃ ጥበቃ. ስለዚህ፣ ለምሳሌ፣ የዩኤስ ብሔራዊ ደረጃዎች እና ቴክኖሎጂ ኢንስቲትዩት በ "የአገልጋይ ደህንነት መመሪያ" ክፍት የአገልጋይ አርክቴክቸር እንደሚያስፈልግ ያመላክታል፡- “የስርአቱ ደህንነት በአካላቶቹ አተገባበር ሚስጥራዊነት ላይ የተመሰረተ መሆን የለበትም” ይላል ሰነዱ።

በንድፈ ሀሳብ፣ ነባሪ ወደቦችን መቀየር የክፍት አርክቴክቸር አሰራርን ይቃረናል። ነገር ግን በተግባር, የተንኮል አዘል ትራፊክ መጠን በትክክል ይቀንሳል, ስለዚህ ይህ ቀላል እና ውጤታማ መለኪያ ነው.

የወደብ ቁጥሩ መመሪያውን በመቀየር ሊዋቀር ይችላል። Port 22 በማዋቀር ፋይል ውስጥ / etc / ssh / sshd_config. በተጨማሪም በመለኪያው ይገለጻል -p <port> в sshd. የኤስኤስኤች ደንበኛ እና ፕሮግራሞች sftp እንዲሁም ምርጫውን ይደግፉ -p <port>.

መለኪያ -p <port> ከትዕዛዙ ጋር ሲገናኙ የወደብ ቁጥሩን ለመጥቀስ ጥቅም ላይ ሊውል ይችላል ssh በሊኑክስ ውስጥ. ውስጥ sftp и scp መለኪያ ጥቅም ላይ ይውላል -P <port> (ካፒታል ፒ) የትእዛዝ መስመር መመሪያ በማዋቀር ፋይሎች ውስጥ ያለውን ማንኛውንም እሴት ይሽራል።

ብዙ አገልጋዮች ካሉ፣ ሁሉም ማለት ይቻላል እነዚህ የሊኑክስ አገልጋዩን ለመጠበቅ እርምጃዎች በስክሪፕት ውስጥ በራስ ሰር ሊሠሩ ይችላሉ። ነገር ግን አንድ አገልጋይ ብቻ ካለ, ሂደቱን በእጅ መቆጣጠር የተሻለ ነው.

በቅጂ መብቶች ላይ

ይዘዙ እና ወዲያውኑ ይጀምሩ! የ VDS መፈጠር ማንኛውንም ውቅረት እና ከማንኛውም ኦፕሬቲንግ ሲስተም ጋር በአንድ ደቂቃ ውስጥ። ከፍተኛው ውቅር ወደ ሙሉ ለሙሉ እንዲመጡ ይፈቅድልዎታል - 128 ሲፒዩ ኮሮች ፣ 512 ጊባ ራም ፣ 4000 ጂቢ NVMe። Epic 🙂

የሊኑክስ አገልጋይ ጥበቃ. መጀመሪያ ምን ማድረግ እንዳለበት

ምንጭ: hab.com