Usanidi wa Seva ya Awali na Ubuntu 20.04/18.04 na 16.04


Mafunzo haya yatakuongoza kwenye hatua za kwanza za msingi unazohitaji kusanidi kwenye seva mpya ya Ubuntu iliyosakinishwa ili kuongeza usalama na kutegemewa kwa seva yako.

Mipangilio iliyoelezewa katika mada hii ni karibu sawa kwa mifumo yote ya seva ya Ubuntu, kuhusu jukwaa la msingi la OS, iwe Ubuntu imewekwa kwenye seva ya chuma-wazi, kwenye mashine ya kibinafsi ya kibinafsi au mashine ya kawaida iliyosokotwa kwenye VPS ya umma. wingu.

  • Usakinishaji wa Seva ya Ubuntu 20.04
  • Usakinishaji wa Seva ya Ubuntu 18.04
  • Usakinishaji wa Seva ya Ubuntu 16.04

Sasisha na Uboresha Mfumo wa Ubuntu

Hatua ya kwanza unayohitaji kutunza ikiwa utasakinisha upya seva ya Ubuntu au Ubuntu VPS mpya iliyotumwa ni kuhakikisha mfumo na vipengee vyote vya mfumo, kama vile punje, viraka vya usalama.

Ili kusasisha seva ya Ubuntu, ingia kwenye kiweko cha seva ukitumia akaunti iliyo na haki za mizizi au moja kwa moja kama mzizi na utekeleze amri zilizo hapa chini ili kutekeleza mchakato wa kusasisha na kuboresha.

$ sudo apt update 

Baada ya kutekeleza amri ya sasisho, utaona idadi ya vifurushi vinavyopatikana kwa mchakato wa uboreshaji na amri inayotumika kuorodhesha visasisho vya vifurushi.

$ sudo apt list --upgradable

Baada ya kushauriana na orodha ya vifurushi vinavyopatikana kwa uboreshaji, toa amri iliyo hapa chini ili kuanza mchakato wa uboreshaji wa mfumo.

$ sudo apt upgrade

Ili kuondoa vifurushi vyote vya deni vilivyopakuliwa ndani na kache zingine zote za apt-get, tekeleza amri iliyo hapa chini.

$ sudo apt autoremove
$ sudo apt clean

Unda Akaunti Mpya katika Ubuntu

Kwa chaguo-msingi, kama kipimo cha usalama, akaunti ya mizizi imezimwa kabisa katika Ubuntu. Ili kuunda akaunti mpya kwenye mfumo, ingia kwenye mfumo na mtumiaji wa akaunti aliye na haki za mizizi na uunda akaunti mpya na amri iliyo hapa chini.

Akaunti hii mpya itapewa haki za nguvu za mizizi kupitia amri ya sudo na itatumika kutekeleza majukumu ya kiutawala katika mfumo. Hakikisha umeweka nenosiri thabiti ili kulinda akaunti hii. Fuata kidokezo cha mtumiaji ili kusanidi maelezo ya mtumiaji na nenosiri.

$ sudo adduser ubuntu_user

Ikiwa akaunti hii itakabidhiwa kwa msimamizi mwingine wa mfumo, unaweza kumlazimisha mtumiaji kubadilisha nenosiri lake katika jaribio la kwanza la kuingia kwa kutoa amri ifuatayo.

$ sudo chage -d0 ubuntu_user

Kwa sasa, mtumiaji mpya aliyeongezwa hawezi kufanya kazi za kiutawala kupitia matumizi ya sudo. Ili kutoa akaunti hii mpya ya mtumiaji na mapendeleo ya kiutawala unapaswa kuongeza mtumiaji kwenye kikundi cha mfumo wa \sudo kwa kutoa amri iliyo hapa chini.

$ sudo usermod -a -G sudo ubuntu_user

Kwa chaguo-msingi, watumiaji wote wa kikundi cha sudo wanaruhusiwa kutekeleza amri na haki za mizizi kupitia matumizi ya sudo. Amri ya Sudo lazima itumike kabla ya kuandika amri inayohitajika kwa utekelezaji, kama inavyoonyeshwa kwenye mfano hapa chini.

$ sudo apt install package_name

Jaribu ikiwa mtumiaji mpya ana haki za mizizi zilizotolewa, kwa kuingia kwenye mfumo na endesha amri ya sasisho ya apt iliyowekwa na sudo.

$ su - ubuntu_user
$ sudo apt update

Sanidi Jina la Mpangishi wa Mfumo katika Ubuntu

Kawaida, jina la mwenyeji wa mashine huwekwa wakati wa mchakato wa usakinishaji wa mfumo au wakati VPS imeundwa kwenye wingu. Hata hivyo, unapaswa kubadilisha jina la mashine yako ili kuakisi vyema lengwa la seva yako au kuelezea vyema madhumuni yake ya mwisho.

Katika kampuni kubwa, mashine hupewa jina la miradi ngumu ya kutaja ili kutambua kwa urahisi mashine kwenye rafu za datacenter. Kwa mfano, ikiwa mashine yako ya Ubuntu itatumia seva ya barua, jina la mashine linapaswa kuonyesha ukweli huu na unaweza kusanidi jina la mpangishi wa mashine kama mx01.mydomain.lan, kwa mfano.

Ili kuonyesha maelezo kuhusu jina la mwenyeji wa mashine yako endesha amri ifuatayo.

$ hostnamectl

Ili kubadilisha jina la mashine yako, toa amri ya hostnamectl na jina jipya utakalosanidi kwa mashine yako, kama inavyoonyeshwa kwenye dondoo hapa chini.

$ sudo hostnamectl set-hostname tecmint

Thibitisha jina jipya la mfumo wako na mojawapo ya amri zilizo hapa chini.

$ hostname
$ hostname -s
$ cat /etc/hostname 

Sanidi SSH na Uthibitishaji wa Ufunguo wa Umma katika Ubuntu

Ili kuongeza kiwango cha usalama wa mfumo wa seva ya Ubuntu, unapaswa kusanidi uthibitishaji wa ufunguo wa umma wa SSH kwa akaunti ya karibu. Ili kutengeneza Jozi ya Ufunguo wa SSH, ufunguo wa umma na wa faragha, wenye urefu wa ufunguo unaobainisha, kama vile biti 2048, tekeleza amri ifuatayo kwenye kiweko cha seva yako.

Hakikisha umeingia kwenye mfumo na mtumiaji unayeweka ufunguo wa SSH.

$ su - ubuntu_user
$ ssh-keygen -t RSA -b 2048

Wakati ufunguo unatolewa, utaombwa kuongeza kaulisiri ili kulinda ufunguo. Unaweza kuweka kaulisiri dhabiti au uchague kuacha neno la siri tupu ikiwa unataka kufanyia kazi kiotomatiki kupitia seva ya SSH.

Baada ya ufunguo wa SSH kuzalishwa, unaweza kunakili ufunguo wa umma kwa seva ya mbali kwa kutekeleza amri iliyo hapa chini. Ili kusakinisha ufunguo wa umma kwa seva ya mbali ya SSH utahitaji akaunti ya mtumiaji ya mbali iliyo na ruhusa na stakabadhi zinazofaa ili kuingia kwenye seva ya mbali.

$ ssh-copy-id [email _server

Unapaswa kuwa na uwezo wa kuingia kiotomatiki kupitia SSH kwa seva ya mbali kwa kutumia njia ya uthibitishaji wa ufunguo wa umma. Hutahitaji kuongeza nenosiri la mtumiaji wa mbali unapotumia uthibitishaji wa ufunguo wa umma wa SSH.

Baada ya kuingia kwenye seva ya mbali, unaweza kuanza kutekeleza amri, kama vile w amri ya kuorodhesha watumiaji walioingia kwenye kidhibiti cha ssh, kama inavyoonyeshwa kwenye picha ya skrini iliyo hapa chini.

Andika kutoka kwenye kiweko ili kufunga kipindi cha mbali cha SSH.

$ ssh [email _server
$ w
$ exit

Ili kuona maudhui ya ufunguo wako wa SSH wa umma ili usakinishe ufunguo kwa seva ya mbali ya SSH, toa amri ifuatayo.

$ cat ~/.ssh/id_rsa.pub

Salama Seva ya SSH katika Ubuntu

Ili kupata daemoni ya SSH unapaswa kubadilisha nambari ya bandari chaguo-msingi ya SSH kutoka 22 hadi lango la nasibu, la juu kuliko 1024, na usiruhusu ufikiaji wa mbali wa SSH kwa akaunti ya mizizi kupitia nenosiri au ufunguo, kwa kufungua faili kuu ya usanidi ya seva ya SSH na kufanya kufuatia mabadiliko.

$ sudo vi /etc/ssh/sshd_config

Kwanza, tafuta mstari uliotolewa maoni #Port22 na uongeze laini mpya chini (badilisha nambari ya bandari ya kusikiliza ipasavyo):

Port 2345

Usifunge faili, telezesha chini na utafute mstari #PermitRootLogin ndiyo, ondoa mstari kwa kutoa alama # (hashtag) kutoka mwanzo wa mstari na urekebishe mstari kuwa kama inavyoonyeshwa kwenye dondoo hapa chini.

PermitRootLogin no

Baadaye, anzisha upya seva ya SSH ili kutumia mipangilio mipya na ujaribu usanidi kwa kujaribu kuingia kutoka kwa mashine ya mbali hadi kwenye seva hii na akaunti ya mizizi kupitia nambari mpya ya mlango. Ufikiaji wa akaunti ya mizizi kupitia SSH unapaswa kuzuiwa.

$ sudo systemctl restart sshd

Pia, endesha amri ya grep ili kuonyesha nambari mpya ya bandari ya kusikiliza kwa seva ya SSH.

$ sudo ss -tlpn| grep ssh
$ sudo netstat -tlpn| grep ssh

Kuna hali ambapo unaweza kutaka kukata kiotomatiki miunganisho yote ya mbali ya SSH iliyoanzishwa kwenye seva yako baada ya muda wa kutofanya kazi.

Ili kuwezesha kipengele hiki, tekeleza amri iliyo hapa chini, ambayo huongeza kigeu cha TMOUT bash kwenye akaunti yako .bashrc faili iliyofichwa na kulazimisha kila muunganisho wa SSH unaofanywa kwa jina la mtumiaji kukatishwa au kuachwa baada ya dakika 5 za kutotumika.

$ echo 'TMOUT=300' >> .bashrc

Endesha amri ya mkia ili kuangalia ikiwa kigezo kimeongezwa ipasavyo mwishoni mwa faili ya .bashrc. Miunganisho yote inayofuata ya SSH itafungwa kiotomatiki baada ya dakika 5 za kutokuwa na shughuli kuanzia sasa na kuendelea.

$ tail .bashrc

Katika picha ya skrini iliyo hapa chini, kipindi cha mbali cha SSH kutoka kwa drupal hadi seva ya Ubuntu kupitia akaunti ya ubuntu_user kimekatizwa na kuondoka kiotomatiki baada ya dakika 5.

Sanidi Ubuntu Firewall UFW

Kila seva inahitaji ngome iliyosanidiwa vyema ili kulinda mfumo katika kiwango cha mtandao. Seva ya Ubuntu hutumia programu ya UFW kudhibiti sheria za iptables kwenye seva.

Angalia hali ya UFW firewall application katika Ubuntu kwa kutoa amri zilizo hapa chini.

$ sudo systemctl status ufw
$ sudo ufw status

Kawaida, daemon ya firewall ya UFW iko kwenye seva ya Ubuntu, lakini sheria hazitumiki kwa chaguo-msingi. Kabla ya kuwezesha sera ya ngome ya UFW kwenye mfumo wako, kwanza unapaswa kuongeza sheria mpya ili kuruhusu trafiki ya SSH kupita kwenye ngome kupitia lango la SSH lililobadilishwa. Sheria inaweza kuongezwa kwa kutekeleza amri hapa chini.

$ sudo ufw allow 2345/tcp

Baada ya kuruhusu trafiki ya SSH, unaweza kuwezesha na kuangalia programu ya ngome ya UFW kwa amri zifuatazo.

$ sudo ufw enable
$ sudo ufw status

Ili kuongeza sheria mpya za ngome kwa huduma zingine za mtandao ambazo zimesakinishwa kwenye seva yako, kama vile seva ya HTTP, seva ya barua au huduma zingine za mtandao, tumia mifano iliyo hapa chini ya amri za ngome kama mwongozo.

$ sudo ufw allow http  #allow http traffic
$ sudo ufw allow proto tcp from any to any port 25,443  # allow https and smtp traffic

Ili kuorodhesha sheria zote za firewall endesha amri hapa chini.

$ sudo ufw status verbose

Weka Wakati wa Seva ya Ubuntu

Ili kudhibiti au kuuliza saa ya seva ya Ubuntu na mipangilio mingine inayohusiana, tekeleza amri ya timedatectl bila hoja.

Ili kubadilisha mipangilio ya saa za eneo la seva yako, kwanza tekeleza amri ya timedatectl kwa hoja ya saa za eneo ili kuorodhesha saa zote zinazopatikana na, kisha, weka saa za eneo la mfumo wako kama inavyoonyeshwa katika dondoo lililo hapa chini.

$ sudo timedatectl 
$ sudo timedatectl list-timezones 
$ sudo timedatectl set-timezone Europe/Vienna

Kiteja kipya cha daemon cha systemd-timesyncd kinaweza kutumika katika Ubuntu ili kutoa muda sahihi kwa seva yako kwenye mtandao na kusawazisha muda na seva rika ya wakati wa juu.

Ili kutumia kipengele hiki kipya cha Systemd, rekebisha faili ya usanidi ya daemon ya systemd-timesyncd na uongeze seva za NTP zilizo karibu zaidi kijiografia kwenye mstari wa taarifa wa NTP, kama inavyoonyeshwa katika dondoo la faili lililo hapa chini:

$ sudo nano /etc/systemd/timesyncd.conf

Ongeza usanidi ufuatao kwenye faili ya timesyncd.conf:

[Time]
NTP=0.pool.ntp.org 1.pool.ntp.org
FallbackNTP=ntp.ubuntu.com

Ili kuongeza seva za NTP za kijiografia zilizo karibu nawe, tazama orodha ya seva ya mradi wa bwawa la NTP kwenye anwani ifuatayo: http://www.pool.ntp.org/en/

Baadaye, anzisha upya daemon ya Systemd timesync ili kuonyesha mabadiliko na kuangalia hali ya daemon kwa kutekeleza amri zilizo hapa chini. Baada ya kuwasha upya, daemon itaanza kusawazisha muda na programu rika mpya ya ntp.

$ sudo systemctl restart systemd-timesyncd.service 
$ sudo systemctl status systemd-timesyncd.service

Lemaza na Ondoa Huduma Zisizohitajika katika Ubuntu

Ili kupata orodha ya huduma zote za mtandao za TCP na UDP zinazoendeshwa kwa msingi katika seva yako ya Ubuntu, tekeleza amri ya ss au netstat.

$ sudo netstat -tulpn
OR
$ sudo ss -tulpn

Ikitegemea toleo la Ubuntu 16.10, kisuluhishi chaguo-msingi cha DNS sasa kinadhibitiwa na huduma iliyotatuliwa kwa mfumo, kama inavyoonyeshwa na matokeo ya netstat au ss amri.

Unapaswa pia kuangalia hali ya huduma iliyotatuliwa kwa mfumo kwa kuendesha amri ifuatayo.

$ sudo systemctl status systemd-resolved.service

Huduma iliyotatuliwa kwa mfumo hufunga violesura vyote vya mtandao vilivyowezeshwa na kusikiliza kwenye bandari 53 na 5355 TCP na UDP.

Uendeshaji akiba iliyosuluhishwa na mfumo wa daemoni ya DNS kwenye seva ya uzalishaji inaweza kuwa hatari kutokana na idadi nyingi ya mashambulizi ya DDOS yanayofanywa na wavamizi hasidi dhidi ya seva za DNS zisizolindwa.

Ili kusimamisha na kuzima huduma hii, tekeleza amri zifuatazo.

$ sudo systemctl stop systemd-resolved
$ sudo systemctl disable systemd-resolved

Thibitisha ikiwa huduma imesimamishwa na kuzimwa kwa kutoa ss au netstat amri. Lango la kusikiliza lililotatuliwa kwa mfumo, 53 na 5355 TCP na UDP, hazipaswi kuorodheshwa katika netstat au pato la amri ya ss, kama inavyoonyeshwa hapa chini.

Unapaswa pia kuwasha tena mashine ili kuzima kabisa huduma zote za daemon zilizosuluhishwa na mfumo na kurejesha faili chaguo-msingi /etc/resolv.conf.

$ sudo ss -tulpn
$ sudo netstat -tulpn
$ sudo systemctl reboot

Ingawa, umezima baadhi ya huduma za mtandao zisizotakikana ili kuendesha katika seva yako, pia kuna huduma zingine zilizosakinishwa na zinazoendeshwa katika mfumo wako, kama vile mchakato wa lxc na huduma ya snapd. Huduma hizi zinaweza kutambuliwa kwa urahisi kupitia amri za juu au pstree.

$ sudo ps aux
$ sudo top
$ sudo pstree

Iwapo hutatumia uboreshaji wa chombo cha LXC kwenye seva yako au uanze kusakinisha programu iliyopakiwa kupitia kidhibiti cha kifurushi cha Snap, unapaswa kuzima kabisa na kuondoa huduma hizi, kwa kutoa amri zilizo hapa chini.

$ sudo apt autoremove --purge lxc-common lxcfs
$ sudo apt autoremove --purge snapd

Ni hayo tu! Sasa, seva ya Ubuntu sasa imetayarishwa kwa ajili ya kusakinisha programu ya ziada inayohitajika kwa huduma au programu maalum za mtandao, kama vile kusakinisha na kusanidi seva ya wavuti, seva ya hifadhidata, huduma ya kushiriki faili au programu zingine mahususi.