Setup Inizjali tas-Server b'Ubuntu 20.04/18.04 u 16.04


Dan it-tutorja jiggwidak dwar l-ewwel passi bażiċi li għandek bżonn tikkonfigura fuq server Ubuntu installat ġdid sabiex iżżid is-sigurtà u l-affidabbiltà għas-server tiegħek.

Il-konfigurazzjonijiet spjegati f'dan is-suġġett huma kważi l-istess għas-sistemi kollha tas-server Ubuntu, fir-rigward tal-pjattaforma tal-OS sottostanti, kemm jekk Ubuntu hijiex installata fuq server bare-metal, f'magna virtwali privata jew magna virtwali mdawra f'VPS pubbliku. sħaba.

  • Installazzjoni tas-Server Ubuntu 20.04
  • Installazzjoni tas-Server Ubuntu 18.04
  • Installazzjoni ta' Server Ubuntu 16.04

Aġġorna u Aġġorna s-Sistema Ubuntu

L-ewwel pass li għandek bżonn tieħu ħsieb f'każ ta 'installazzjoni ġdida ta' server Ubuntu jew Ubuntu VPS skjerat ġdid huwa li tiżgura li s-sistema u l-komponenti kollha tas-sistema, bħall-qalba, l-irqajja tas-sigurtà.

Biex taġġorna s-server Ubuntu, biex tidħol fil-console tas-server b'kont bi privileġġi ta 'l-għeruq jew direttament bħala root u mexxi l-kmandi ta' hawn taħt sabiex twettaq il-proċess ta 'aġġornament u taġġorna.

$ sudo apt update 

Wara li tħaddem il-kmand tal-aġġornament, tara n-numru ta 'pakketti disponibbli għall-proċess ta' aġġornament u l-kmand użat biex jelenka l-aġġornamenti tal-pakketti.

$ sudo apt list --upgradable

Wara li tkun ikkonsultajt il-lista ta 'pakketti disponibbli għall-aġġornament, ħarġet il-kmand hawn taħt biex tibda l-proċess ta' aġġornament tas-sistema.

$ sudo apt upgrade

Sabiex tneħħi l-pakketti deb kollha mniżżla lokalment u l-caches apt-get l-oħra kollha, eżegwixxi l-kmand hawn taħt.

$ sudo apt autoremove
$ sudo apt clean

Oħloq Kont Ġdid f'Ubuntu

B'mod awtomatiku, bħala miżura ta 'sigurtà, il-kont root huwa kompletament diżattivat f'Ubuntu. Sabiex toħloq kont ġdid fis-sistema, idħol fis-sistema mal-utent tal-kont bi privileġġi tal-għeruq u oħloq kont ġdid bil-kmand t'hawn taħt.

Dan il-kont il-ġdid se jingħata bi privileġġi tas-setgħat tal-għeruq permezz tal-kmand sudo u se jintuża biex iwettaq kompiti amministrattivi fis-sistema. Kun żgur li twaqqaf password b'saħħitha biex tipproteġi dan il-kont. Segwi l-pront tal-adduser biex issettja d-dettalji tal-utent u l-password.

$ sudo adduser ubuntu_user

Jekk dan il-kont se jiġi assenjat lil amministratur ta' sistema ieħor, tista' ġġiegħel lill-utent ibiddel il-password tiegħu fl-ewwel tentattiv ta' login billi toħroġ il-kmand li ġej.

$ sudo chage -d0 ubuntu_user

Għalissa, l-utent il-ġdid miżjud ma jistax iwettaq kompiti amministrattivi permezz ta 'utilità sudo. Biex tagħti dan il-kont tal-utent ġdid bi privileġġi amministrattivi għandek iżżid l-utent mal-grupp tas-sistema \sudo billi toħroġ il-kmand ta' hawn taħt.

$ sudo usermod -a -G sudo ubuntu_user

B'mod awtomatiku, l-utenti kollha li jappartjenu għall-grupp sudo huma permessi jeżegwixxu kmandi bi privileġġi tal-għeruq permezz tal-utilità sudo. Il-kmand Sudo għandu jintuża qabel ma tikteb il-kmand meħtieġ għall-eżekuzzjoni, kif muri fl-eżempju hawn taħt.

$ sudo apt install package_name

Ittestja jekk l-utent il-ġdid għandux il-privileġġi tal-għeruq mogħtija, billi tidħol fis-sistema u ħaddem il-kmand tal-aġġornament apt ipprefissat b'sudo.

$ su - ubuntu_user
$ sudo apt update

Ikkonfigura l-isem tal-Ospt tas-Sistema f'Ubuntu

Normalment, l-isem tal-host tal-magna huwa stabbilit waqt il-proċess ta 'installazzjoni tas-sistema jew meta l-VPS jinħoloq fis-sħab. Madankollu, għandek tibdel l-isem tal-magna tiegħek sabiex tirrifletti aħjar id-destinazzjoni tas-server tiegħek jew tiddeskrivi aħjar l-iskop finali tagħha.

F'kumpanija kbira, il-magni huma msemmijin wara skemi ta' ismijiet kumplessi sabiex jidentifikaw faċilment il-magna fl-ixkafef tad-datacenter. Pereżempju, jekk il-magna Ubuntu tiegħek se topera server tal-posta, l-isem tal-magna għandu jirrifletti dan il-fatt u tista' tissettja l-isem tal-host tal-magna bħala mx01.mydomain.lan, pereżempju.

Biex turi dettalji dwar l-isem tal-host tal-magna tiegħek mexxi l-kmand li ġej.

$ hostnamectl

Sabiex tibdel l-isem tal-magna tiegħek, agħti kmand hostnamectl bl-isem il-ġdid li se tikkonfigura għall-magna tiegħek, kif muri fis-silta t'hawn taħt.

$ sudo hostnamectl set-hostname tecmint

Ivverifika l-isem il-ġdid tas-sistema tiegħek b'wieħed mill-kmandi hawn taħt.

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

Issettja SSH b'Awtentikazzjoni taċ-Ċavetta Pubblika f'Ubuntu

Biex iżżid il-grad tas-sigurtà tas-sistema ta' server Ubuntu, għandek twaqqaf l-awtentikazzjoni taċ-ċavetta pubblika SSH għal kont lokali. Sabiex tiġġenera SSH Key Pair, iċ-ċavetta pubblika u privata, b'tul ta 'ċavetta li tispeċifika, bħal 2048 bit, tesegwixxi l-kmand li ġej fil-console tas-server tiegħek.

Kun żgur li int illoggjat fis-sistema mal-utent li qed issettja ċ-ċavetta SSH.

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

Waqt li ċ-ċavetta tiġi ġġenerata, tkun imħeġġa żżid passphrase sabiex tiżgura ċ-ċavetta. Tista' ddaħħal passphrase b'saħħitha jew tagħżel li tħalli l-passphrase vojta jekk trid awtomat il-kompiti permezz ta' server SSH.

Wara li ċ-ċavetta SSH tkun ġiet ġġenerata, tista 'tikkopja ċ-ċavetta pubblika għal server remot billi tesegwixxi l-kmand ta' hawn taħt. Biex tinstalla ċ-ċavetta pubblika għas-server SSH remot ser ikollok bżonn kont tal-utent remot bil-permessi u l-kredenzjali xierqa biex tidħol fis-server remot.

$ ssh-copy-id [email _server

Għandek tkun tista' tilloggja awtomatikament permezz ta' SSH fis-server remot billi tuża l-metodu ta' awtentikazzjoni taċ-ċavetta pubblika. Mhux se jkollok bżonn iżżid il-password tal-utent remot waqt li tuża l-awtentikazzjoni taċ-ċavetta pubblika SSH.

Wara li tkun illoggjat fis-server remot, tista 'tibda tesegwixxi kmandi, bħal kmand w biex telenka l-utenti illoggjati ssh remoti, kif muri fil-screenshot ta' hawn taħt.

Ittajpja exit fil-console biex tagħlaq is-sessjoni SSH remota.

$ ssh [email _server
$ w
$ exit

Biex tara l-kontenut taċ-ċavetta pubblika SSH tiegħek sabiex tinstalla manwalment iċ-ċavetta għal server SSH remot, agħti l-kmand li ġej.

$ cat ~/.ssh/id_rsa.pub

Sikura SSH Server f'Ubuntu

Sabiex tiżgura d-daemon SSH għandek tibdel in-numru tal-port SSH default minn 22 għal port każwali, ogħla minn 1024, u ma tħallix aċċess SSH mill-bogħod għall-kont root permezz ta 'password jew ċavetta, billi tiftaħ il-fajl tal-konfigurazzjoni prinċipali tas-server SSH u tagħmel il- bidliet li ġejjin.

$ sudo vi /etc/ssh/sshd_config

L-ewwel, fittex il-linja kkummentata #Port22 u żid linja ġdida taħt (issostitwixxi n-numru tal-port tas-smigħ kif xieraq):

Port 2345

Tagħlaqx il-fajl, iskrollja 'l isfel u fittex il-linja #PermitRootLogin iva, neħħi l-kumment tal-linja billi tneħħi s-sinjal # (hashtag) mill-bidu tal-linja u timmodifika l-linja biex tidher bħal dik murija fis-silta ta' hawn taħt.

PermitRootLogin no

Wara, ibda mill-ġdid is-server SSH biex tapplika s-settings il-ġodda u ttestja l-konfigurazzjoni billi tipprova tidħol minn magna remota għal dan is-server bil-kont root permezz tan-numru tal-port il-ġdid. L-aċċess għall-kont root permezz ta' SSH għandu jkun ristrett.

$ sudo systemctl restart sshd

Ukoll, mexxi kmand grep sabiex turi n-numru tal-port tas-smigħ il-ġdid għas-server SSH.

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

Hemm sitwazzjonijiet fejn tista' tkun trid tiskonnettja awtomatikament il-konnessjonijiet SSH remoti kollha stabbiliti fis-server tiegħek wara perjodu ta' inattività.

Sabiex tippermetti din il-karatteristika, eżegwixxi l-kmand ta 'hawn taħt, li jżid il-varjabbli TMOUT bash mal-fajl moħbi tal-kont tiegħek .bashrc u jġiegħel kull konnessjoni SSH magħmula bl-isem tal-utent tiġi skonnettjata jew titneħħa wara 5 minuti ta' inattività.

$ echo 'TMOUT=300' >> .bashrc

Mexxi kmand tad-denb biex tivverifika jekk il-varjabbli ġietx miżjuda b'mod korrett fl-aħħar tal-fajl .bashrc. Il-konnessjonijiet SSH sussegwenti kollha se jingħalqu awtomatikament wara 5 minuti ta' inattività minn issa 'l quddiem.

$ tail .bashrc

Fil-screenshot ta 'hawn taħt, is-sessjoni SSH remota minn magna drupal għal server Ubuntu permezz tal-kont ubuntu_user ġiet skaduta u awto-logout wara 5 minuti.

Ikkonfigura Ubuntu Firewall UFW

Kull server jeħtieġ firewall konfigurat tajjeb sabiex jiżgura s-sistema fil-livell tan-netwerk. Is-server Ubuntu juża applikazzjoni UFW biex jimmaniġġja r-regoli iptables fuq is-server.

Iċċekkja l-istatus tal-applikazzjoni tal-firewall UFW f'Ubuntu billi toħroġ il-kmandi hawn taħt.

$ sudo systemctl status ufw
$ sudo ufw status

Normalment, id-daemon tal-firewall UFW ikun qed jaħdem fis-server Ubuntu, iżda r-regoli mhumiex applikati awtomatikament. Qabel ma tippermetti l-politika tal-firewall UFW fis-sistema tiegħek, l-ewwel għandek iżżid regola ġdida biex tippermetti lit-traffiku SSH jgħaddi minn firewall permezz tal-port SSH mibdul. Ir-regola tista 'tiġi miżjuda billi tesegwixxi l-kmand ta' hawn taħt.

$ sudo ufw allow 2345/tcp

Wara li tkun ippermettit it-traffiku SSH, tista 'tippermetti u tiċċekkja l-applikazzjoni tal-firewall UFW bil-kmandi li ġejjin.

$ sudo ufw enable
$ sudo ufw status

Biex iżżid regoli ġodda tal-firewall għal servizzi tan-netwerk oħra installati sussegwentement fuq is-server tiegħek, bħal server HTTP, server tal-posta jew servizzi oħra tan-netwerk, uża l-eżempji tal-kmandi tal-firewall hawn taħt bħala gwida.

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

Biex telenka r-regoli kollha tal-firewall mexxi l-kmand t'hawn taħt.

$ sudo ufw status verbose

Issettja l-Ħin tas-Server Ubuntu

Biex tikkontrolla jew tistaqsi l-arloġġ tas-server Ubuntu u settings oħra tal-ħin relatati, eżegwixxi kmand timedatectl mingħajr ebda argument.

Sabiex tibdel is-settings taż-żona tal-ħin tas-server tiegħek, l-ewwel eżegwixxi kmand timedatectl bl-argument list-timezones biex telenka ż-żoni tal-ħin kollha disponibbli u, imbagħad, issettja ż-żona tal-ħin tas-sistema tiegħek kif muri fis-silta hawn taħt.

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

Il-klijent il-ġdid systemd-timesyncd systemd daemon jista 'jiġi utilizzat f'Ubuntu sabiex jipprovdi ħin preċiż għas-server tiegħek fin-netwerk u jissinkronizza l-ħin ma' server peer time ta 'fuq.

Biex tapplika din il-karatteristika ġdida ta' Systemd, immodifika l-fajl tal-konfigurazzjoni tad-demon systemd-timesyncd u żid l-eqreb servers NTP ġeografikament mal-linja tad-dikjarazzjoni NTP, kif muri fis-silta tal-fajl hawn taħt:

$ sudo nano /etc/systemd/timesyncd.conf

Żid il-konfigurazzjoni li ġejja mal-fajl timesyncd.conf:

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

Biex iżżid l-eqreb servers NTP ġeografikament tiegħek, ikkonsulta l-lista tas-server tal-proġett tal-grupp NTP fl-indirizz li ġej: http://www.pool.ntp.org/en/

Wara, ibda mill-ġdid id-demon Systemd timesync biex jirrifletti l-bidliet u ċċekkja l-istatus tad-daemon billi tħaddem il-kmandi hawn taħt. Wara l-bidu mill-ġdid, id-daemon jibda jissinkronizza l-ħin mal-peer tas-server ntp il-ġdid.

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

Itfi u Neħħi s-Servizzi mhux meħtieġa f'Ubuntu

Sabiex tikseb lista tas-servizzi kollha tan-netwerk TCP u UDP li jaħdmu b'mod awtomatiku fis-server Ubuntu tiegħek, eżegwixxi l-kmand ss jew netstat.

$ sudo netstat -tulpn
OR
$ sudo ss -tulpn

Meta wieħed iħares bir-rilaxx ta 'Ubuntu 16.10, is-solvent tad-DNS default issa huwa kkontrollat minn servizz riżolt minn systemd, kif żvelat mill-output ta' kmandi netstat jew ss.

Għandek tiċċekkja wkoll l-istatus tas-servizz riżolt bis-sistema billi tħaddem il-kmand li ġej.

$ sudo systemctl status systemd-resolved.service

Is-servizz riżolt bis-sistema jorbot fuq l-interfaces tan-netwerk attivati kollha u jisma fuq il-portijiet 53 u 5355 TCP u UDP.

It-tħaddim tad-daemon DNS tal-caching riżolt mis-sistema fuq server ta' produzzjoni jista' jkun perikoluż minħabba n-numru kbir ta' attakki DDOS imwettqa minn hackers malizzjużi kontra servers DNS mhux assigurati.

Sabiex twaqqaf u tiddiżattiva dan is-servizz, tesegwixxi l-kmandi li ġejjin.

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

Ivverifika jekk is-servizz twaqqafx u ġiex diżattivat billi toħroġ kmand ss jew netstat. Il-portijiet tas-smigħ solvuti bis-sistema, 53 u 5355 TCP u UDP, m'għandhomx ikunu elenkati fl-output tal-kmand netstat jew ss, kif muri hawn taħt.

Għandek ukoll tirristartja l-magna sabiex tiddiżattiva kompletament is-servizzi kollha tad-demon solvuti bis-systemd u tirrestawra l-fajl default /etc/resolv.conf.

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

Għalkemm, inti ddiżattivajt xi servizzi ta 'netwerking mhux mixtieqa biex jaħdmu fis-server tiegħek, hemm ukoll servizzi oħra installati u jaħdmu fis-sistema tiegħek, bħal proċess lxc u servizz snapd. Dawn is-servizzi jistgħu jiġu skoperti faċilment permezz ta 'kmandi top jew pstree.

$ sudo ps aux
$ sudo top
$ sudo pstree

F'każ li m'intix ser tuża l-virtwalizzazzjoni tal-kontejners LXC fis-server tiegħek jew tibda tinstalla softwer ippakkjat permezz tal-maniġer tal-pakkett Snap, għandek tiddiżattiva kompletament u tneħħi dawn is-servizzi, billi toħroġ il-kmandi hawn taħt.

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

Dak kollox! Issa, is-server Ubuntu issa huwa ppreparat biex jinstalla softwer addizzjonali meħtieġ għal servizzi jew applikazzjonijiet tan-netwerk tad-dwana, bħall-installazzjoni u l-konfigurazzjoni ta 'server tal-web, server ta' database, servizz ta 'qsim ta' fajls jew applikazzjonijiet speċifiċi oħra.