−25%

በWindows ዓመታዊ ክፍያ ላይ፣ እስከ ኦክቶበር 31። ዕቅዶችን ይመልከቱ

EQVPS
ጀምር

የAlpine Linux VPS እንዴት እንደሚዘጋጅ፦ apk፣ doas፣ OpenRC እና ፋየርዎል

በአዲስ Alpine Linux 3.21 VPS ላይ የመጀመሪያ እርምጃዎች፦ ማዘመንና ዳግም ማስጀመር፣ በእርግጥ መግባት የሚችል የdoas ተጠቃሚ መፍጠር፣ የroot እና የይለፍ ቃል SSH መግቢያን ማጥፋት፣ ufw መጫን፣ cron እና ዕለታዊ ዝማኔዎችን ማብራት። ufw የማያግደው የDocker ወደብም ተካቷል።

Alpine Linux የምናቀርበው ትንሹ ምስል ነው። በአገልጋዮቻችን ላይ አዲስ Alpine 3.21 ስራ ሳይሰራ 55 MB RAM እና 153 MB ዲስክ ተጠቅሟል፣ Ubuntu 24.04 ደግሞ 313 MB እና 2.7 GB። ዋጋው የለመዷቸውን መሳሪያዎች መተው ነው። Alpine ከapt ይልቅ apk፣ ከsudo ይልቅ doas፣ ከsystemd ይልቅ OpenRC እና ከglibc ይልቅ musl ይጠቀማል።

ከታች ያሉት እርምጃዎች በDebian ወይም በUbuntu ላይ ያሉት ተመሳሳይ የመጀመሪያ አስር ደቂቃዎች ናቸው፣ ለAlpine የተስተካከሉ። ከማተማችን በፊት እያንዳንዱን ትዕዛዝ በAlpine 3.21 ምስላችን ላይ አሂደናል፣ ከነሱም ሁለቱ በመጀመሪያው ሙከራ አደናቀፉን። ከዳሽቦርድዎ ባለው ይለፍ ቃል እንደ root ይግቡ።

1. ያዘምኑ፣ ከዚያ አንድ ጊዜ ዳግም ያስጀምሩ

apk update && apk upgrade
uname -r
ls /lib/modules

አገልጋይዎ በመጀመሪያው ማስነሻ ላይ ያሉትን ዝማኔዎች አስቀድሞ ጭኗል፣ ስለዚህ apk upgrade አብዛኛውን ጊዜ ብዙ የሚሰራው አይቀረውም። ይልቁንስ የመጨረሻዎቹን ሁለት መስመሮች ይመልከቱ። ያ የመጀመሪያው ዝማኔ አዲስ ከርነል ካመጣ፣ እየሰራ ያለው ከርነል (uname -r) ሞጁሎቹ በዲስክ ላይ የሉም። ሞጁል የሚጭን ማንኛውም ነገር ዳግም እስኪያስጀምሩ ድረስ ይወድቃል። በሙከራ አገልጋያችን ላይ ፋየርዎሉን መጫን ERROR: Couldn't determine iptables version አሳየ። ሁለቱ ስሪቶች የተለያዩ ከሆኑ አሁኑኑ ዳግም ያስጀምሩ፦

reboot

የሙከራ አገልጋያችን ከአንድ ደቂቃ ባነሰ ጊዜ ተመለሰ።

2. መግባት የሚችል ተጠቃሚ ይፍጠሩ

adduser -D deploy
passwd deploy
adduser deploy wheel

passwdን አይዝለሉ። adduser -D መለያውን ያለ ይለፍ ቃል ይፈጥራል፣ Alpine እንደተቆለፈ ይመዘግበዋል፣ sshd ደግሞ የተቆለፈ መለያን ትክክለኛ ቁልፍ ቢኖርም ይከለክላል። በሙከራችን ውስጥ ብቸኛው ፍንጭ በ/var/log/messages ውስጥ ያለው ይህ መስመር ነበር፦

User deploy not allowed because account is locked

ይለፍ ቃሉ በኋላም ያስፈልጋል፦ doas የሚጠይቀው እሱን ነው።

አገልጋዩን ሲያዝዙ የSSH ቁልፍ ካከሉ፣ በroot authorized_keys ውስጥ ይገኛል። ለአዲሱ ተጠቃሚ ይቅዱት፦

install -d -m 700 -o deploy -g deploy /home/deploy/.ssh
install -m 600 -o deploy -g deploy /root/.ssh/authorized_keys /home/deploy/.ssh/authorized_keys

እስካሁን ቁልፍ የለዎትም? በኮምፒውተርዎ ላይ አንድ ይፍጠሩ እና ይፋዊውን ክፍል ወደ /home/deploy/.ssh/authorized_keys ይለጥፉ።

3. doas ይለፍ ቃል እንዲጠይቅ ያድርጉ

Alpine ከsudo ይልቅ doas ይጠቀማል፣ ምስላችንም ለwheel ቡድን አስቀድሞ ይፈቅዳል። በ/etc/doas.d/wheel.conf ውስጥ ያለው ደንብ permit nopass :wheel ነው፣ ማለትም ማንኛውም የwheel አባል ምንም ሳይተይብ root ይሆናል። ይለፍ ቃል እንዲጠይቅና ለጥቂት ደቂቃዎች እንዲያስታውሰው ያድርጉ፦

echo 'permit persist :wheel' > /etc/doas.d/wheel.conf

ከአሁን ጀምሮ doas apk add nano በUbuntu ላይ እንዳለው sudo apt install nano ይሰራል።

4. SSH፦ ቁልፎች ብቻ፣ root የለም

sshd በ/etc/ssh/sshd_config.d/ ውስጥ ያሉትን ፋይሎች በስም ቅደም ተከተል ያነባል፣ ለእያንዳንዱ ቅንብርም ያገኘውን የመጀመሪያ እሴት ይይዛል። በምስላችን ውስጥ የመጀመሪያው ፋይል 00-eqvps.conf ነው፣ በመጀመሪያው ቀን መግባት እንዲችሉ root እና ይለፍ ቃልን ይፈቅዳል። ይዘቱን ይተኩ፦

cat > /etc/ssh/sshd_config.d/00-eqvps.conf <<'EOF'
PermitRootLogin no
PasswordAuthentication no
KbdInteractiveAuthentication no
EOF
sshd -t && rc-service sshd restart
sshd -T | grep -E '^(permitrootlogin|passwordauthentication|kbdinteractiveauthentication) '

ሦስተኛው መስመር በAlpine ላይ አስፈላጊ ነው። ምስሉ የPAM ስሪት OpenSSHን ይጠቀማል፣ በመጀመሪያዎቹ ሁለት መስመሮች ብቻ የሙከራ አገልጋያችን አሁንም የkeyboard-interactive መግቢያ ያቀርብ ነበር። ሦስቱም ሲኖሩ ያለ ቁልፍ የሚደረግ የመግቢያ ሙከራ ይህንን ያገኛል፦

Permission denied (publickey).

የroot ክፍለ ጊዜዎን ክፍት ይተዉት። በሁለተኛ ተርሚናል ssh deploy@YOUR.SERVER.IP እንደሚሰራ (በNAT ጥቅል ላይ -p እና ከዳሽቦርዱ ያለውን የግል ወደብ ያክሉ) እና doas id ይለፍ ቃሉን እንደሚቀበል ያረጋግጡ።

5. ፋየርዎል፦ ufw

ufw በcommunity ማከማቻ ውስጥ ይገኛል፣ ይህም በምስላችን ላይ በርቷል፦

apk add ufw
ufw limit 22/tcp
ufw --force enable
rc-update add ufw default
ufw status

limit SSHን ያሳልፋል፣ ነገር ግን በተከታታይ ብዙ ግንኙነቶችን የሚከፍትን ያዘገያል። rc-update እዚህ አስፈላጊ ነው፣ ምክንያቱም ወደ runlevel ካላከሉት OpenRC ዳግም ከተነሳ በኋላ ፋየርዎሉን አያስጀምርም። ዳግም ከተነሳ በኋላ አገልጋያችን በStatus: active ተመለሰ። በNAT ጥቅል ላይ SSHን በወደብ 22 ላይ ይተዉት፦ የግል ውጫዊ ወደብዎ በአገልጋዩ ውስጥ ወዳለው 22 ይተላለፋል። የራሱ IPv4 ባለው ጥቅል ላይ የድር ወደቦችን ሲያስፈልጉ ይክፈቱ (ufw allow 80/tcp፣ ufw allow 443/tcp)። የቀረው በufw መመሪያ ውስጥ አለ።

6. cron እና ዕለታዊ ዝማኔዎችን ያብሩ

አዲስ የAlpine አገልጋይ cronን በፍጹም አያሂድም። ያብሩት፦

rc-update add crond default
rc-service crond start

በAlpine ላይ የroot crontab በ/etc/periodic/daily ውስጥ ያለውን ሁሉ በ02:00 ሰዓት አስቀድሞ ያሂዳል። እዚያ የማዘመኛ ስክሪፕት ያስቀምጡ፦

cat > /etc/periodic/daily/apk-upgrade <<'EOF'
#!/bin/sh
apk upgrade --update-cache --no-progress >> /var/log/apk-auto.log 2>&1
EOF
chmod +x /etc/periodic/daily/apk-upgrade
run-parts --test /etc/periodic/daily

የመጨረሻው ትዕዛዝ cron የሚያሂዳቸውን ስክሪፕቶች ይዘረዝራል፣ የእርስዎም በዝርዝሩ ውስጥ መሆን አለበት። በዚህ መንገድ የ3.21 ማስተካከያዎችን ያገኛሉ። ወደሚቀጥለው የAlpine ልቀት መሸጋገር የተለየ፣ በእጅ የሚደረግ እርምጃ ነው። የከርነል ዝማኔዎች አሁንም ዳግም ማስጀመር ይፈልጋሉ፦ ከደረጃ 1 ያለውን የuname -r / ls /lib/modules ፍተሻ አልፎ አልፎ ይድገሙ።

7. OpenRC በአንድ ሰንጠረዥ

systemdን ካወቁ የሚቀየረው አብዛኛው ይህ ነው፦

ተግባርsystemdAlpine (OpenRC)
አገልግሎት ማስጀመርsystemctl start nginxrc-service nginx start
በማስነሻ ጊዜ ማስጀመርsystemctl enable nginxrc-update add nginx default
ሁኔታsystemctl status nginxrc-service nginx status
ምን እየሰራ ነውsystemctl list-unitsrc-status
የስርዓት ምዝግብjournalctl/var/log/messages

8. Docker፣ እና ufw የማያግደው ወደብ

Alpine ለDocker ጥሩ አስተናጋጅ ነው፣ ምክንያቱም ስርዓቱ ራሱ መንገድ አይዘጋም፦

apk add docker docker-cli-compose
rc-update add docker default
rc-service docker start
docker run --rm hello-world

በአገልጋያችን ላይ ይህ ማውረዱን ጨምሮ 12 ሰከንድ ወሰደ። የDocker አገልግሎት ሲሰራ ጥቅም ላይ የዋለው ማህደረ ትውስታ ከ57 MB ወደ 124 MB ከፍ አለ።

ለAlpine ብቻ ያልሆነ አንድ ወጥመድ፦ Docker የራሱን የፋየርዎል ደንቦች ይጽፋል። ufw SSHን ብቻ ሲፈቅድ nginxን በ-p 8080:80 አስጀመርን እና ከአገልጋዩ ውጭ በወደብ 8080 ደረስንበት። ufw አላገደውም። አንድ ኮንቴይነር በዚያው አገልጋይ ላይ ባለ reverse proxy ብቻ መድረስ ካለበት በlocalhost ላይ ያትሙት፦

docker run -d -p 127.0.0.1:8080:80 nginx:alpine

የትኛው ጥቅል

Alpine ከRAM ውስጥ አብዛኛውን ለራስዎ ሶፍትዌር ይተዋል። የNano ጥቅል (2 vCPU፣ 1 GB፣ 15 GB፣ በወር $3) ለትንሽ አገልግሎት ወይም ለጥቂት ኮንቴይነሮች ይበቃል። የNAT ጥቅል ስለሆነ SSH በግል ወደብ በኩል ይገባል። ወደቦች 80 እና 443 ለኢንተርኔት ክፍት መሆን ካለባቸው Nano-IP በወር $8 የራሱ IPv4 አለው። ለከበዱ የDocker ስብስቦች Micro በወር $5 2 GB ይሰጣል።

Alpine 3.21 በAlpine VPS ገጽ ላይ አለ፣ በVPS ውስጥ ባሉ ሁሉም የLinux ጥቅሎች ላይም ይገኛል። ክፍያ በBase፣ Ethereum ወይም Polygon አውታሮች ላይ በUSDT፣ USDC ወይም ETH ይፈጸማል፣ ያለ መታወቂያና ካርድ።

FAQ

Alpine ከUbuntu ወይም ከDebian በጣም ያነሰው ለምንድን ነው?

ከglibc ይልቅ musl፣ ለመሰረታዊ ትዕዛዞች BusyBox እና ከsystemd ይልቅ OpenRC ይጠቀማል። በአገልጋዮቻችን ላይ አዲስ Alpine 3.21 ስራ ሳይሰራ 55 MB RAM እና 153 MB ዲስክ ተጠቅሟል። Ubuntu 24.04 ደግሞ 313 MB እና 2.7 GB ተጠቅሟል።

ቁልፉ ትክክል ሆኖ አዲሱ ተጠቃሚ ለምን "account is locked" ያገኛል?

adduser -D መለያውን ያለ ይለፍ ቃል ይፈጥራል፣ Alpine እንደተቆለፈ ይመዘግበዋል፣ ከዚያም sshd ትክክለኛ ቁልፍ ቢኖርም ያንን ተጠቃሚ ይከለክላል። በምዝግብ ማስታወሻው ላይ የሚታየው መስመር "User deploy not allowed because account is locked" ነው። በpasswd ለተጠቃሚው ይለፍ ቃል ይስጡ፣ የቁልፍ መግቢያው ይሰራል።

በAlpine ላይ የSSH ዋሻ ለምን አይሰራም?

የAlpine ነባሪ /etc/ssh/sshd_config ፋይል AllowTcpForwarding no ይዟል፣ ስለዚህ የssh -L ማስተላለፎች ይከለከላሉ። ዋሻ ከፈለጉ በዚህ ፋይል ውስጥ እሴቱን ወደ yes ይቀይሩና rc-service sshd restart ያሂዱ።

ፕሮግራሜ በAlpine ላይ ይሰራል?

ከAlpine ማከማቻዎች የሚመጣ ሁሉ ይሰራል፣ በማንኛውም መሰረታዊ ምስል ላይ የተገነቡ የDocker ኮንቴይነሮችም እንዲሁ። ለglibc የተገነቡ ዝግጁ የLinux ፕሮግራሞች በmusl ላይ ብዙ ጊዜ አይጀምሩም። የAlpine ወይም የmusl ስሪት ይፈልጉ ወይም ፕሮግራሙን በDocker ውስጥ ያሂዱ። gcompat ጥቅል ለአንዳንድ ቀላል የglibc ፕሮግራሞች ይረዳል።

ለAlpine የትኛው ጥቅል ይበቃል?

በወር $3 የሆነው የ1 GB Nano ጥቅል ብዙ ቦታ አለው፦ ስርዓቱ ራሱ 55 MB ገደማ ብቻ ይጠቀማል። ወደቦች 80 እና 443 ለኢንተርኔት ክፍት መሆን ካለባቸው የራሱ IPv4 ያለውን በወር $8 የሆነውን Nano-IP ይምረጡ።

አስተያየቶች

እስካሁን አስተያየቶች የሉም። መጀመሪያ ይሁኑ።

አስተያየት ይተዉ

አስተያየቶች ከመታየታቸው በፊት ይጣራሉ።