Inisyal nga Pag-setup sa Server nga adunay Ubuntu 20.04/18.04 ug 16.04


Kini nga panudlo mogiya kanimo sa una nga sukaranan nga mga lakang nga kinahanglan nimo nga i-configure sa usa ka bag-ong na-install nga server sa Ubuntu aron madugangan ang seguridad ug kasaligan sa imong server.

Ang mga pag-configure nga gipatin-aw niini nga hilisgutan halos parehas alang sa tanan nga mga sistema sa server sa Ubuntu, bahin sa nagpahiping OS nga plataporma, kung ang Ubuntu na-install sa usa ka hubo nga metal nga server, sa usa ka pribado nga virtual machine o usa ka virtual nga makina nga gipatuyok sa usa ka publiko nga VPS. panganod.

  • Ubuntu 20.04 Server Installation
  • Pag-install sa Ubuntu 18.04 Server
  • Pag-install sa Ubuntu 16.04 Server

Pag-update ug Pag-upgrade sa Sistema sa Ubuntu

Ang una nga lakang nga kinahanglan nimong atimanon kung adunay bag-ong pag-install sa Ubuntu server o usa ka bag-ong gipakatap nga Ubuntu VPS mao ang pagsiguro nga ang sistema ug ang tanan nga mga sangkap sa sistema, sama sa kernel, ang mga patch sa seguridad.

Aron ma-update ang server sa Ubuntu, mag-log in sa console sa server nga adunay usa ka account nga adunay mga pribilehiyo sa gamut o direkta ingon gamut ug ipadagan ang mga mando sa ubos aron mahimo ang proseso sa pag-update ug pag-upgrade.

$ sudo apt update 

Human sa pagpadagan sa update command, imong makita ang gidaghanon sa mga available nga mga pakete para sa proseso sa pag-upgrade ug ang command nga gigamit sa paglista sa mga package upgrades.

$ sudo apt list --upgradable

Human nimo makonsulta ang listahan sa mga pakete nga magamit alang sa pag-upgrade, i-isyu ang ubos nga sugo aron masugdan ang proseso sa pag-upgrade sa sistema.

$ sudo apt upgrade

Aron matangtang ang tanan nga lokal nga na-download nga mga pakete sa deb ug tanan nga uban pang mga apt-get cache, ipatuman ang mando sa ubos.

$ sudo apt autoremove
$ sudo apt clean

Paghimo Bag-ong Account sa Ubuntu

Sa kasagaran, isip usa ka sukod sa seguridad, ang root account hingpit nga gi-disable sa Ubuntu. Aron makahimo og bag-ong account sa sistema, pag-log in sa sistema gamit ang account user nga adunay root privileges ug paghimo og bag-ong account gamit ang ubos nga sugo.

Kining bag-ong account hatagan ug mga pribilihiyo sa root powers pinaagi sa sudo command ug gamiton sa paghimo sa mga administratibong buluhaton sa sistema. Siguruha nga nag-setup ka usa ka lig-on nga password aron mapanalipdan kini nga account. Sunda ang adduser prompt aron ma-setup ang mga detalye sa user ug password.

$ sudo adduser ubuntu_user

Kung kini nga account ma-assign sa lain nga admin sa sistema, mahimo nimong pugson ang user nga usbon ang password sa una nga pagsulay sa pag-log pinaagi sa pag-isyu sa mosunod nga mando.

$ sudo chage -d0 ubuntu_user

Sa pagkakaron, ang bag-ong gidugang nga tiggamit dili makahimo sa mga buluhaton sa pagdumala pinaagi sa sudo utility. Aron mahatagan kining bag-ong user account nga adunay mga pribilehiyong administratibo kinahanglan nimong idugang ang user sa \sudo nga grupo sa sistema pinaagi sa pag-isyu sa ubos nga sugo.

$ sudo usermod -a -G sudo ubuntu_user

Sa kasagaran, ang tanan nga tiggamit nga sakop sa sudo nga grupo gitugotan sa pagpatuman sa mga sugo nga adunay mga pribilehiyo sa gamut pinaagi sa sudo utility. Ang Sudo nga sugo kinahanglang gamiton sa dili pa isulat ang sugo nga gikinahanglan alang sa pagpatuman, sama sa gipakita sa ubos nga pananglitan.

$ sudo apt install package_name

Sulayi kung ang bag-ong tiggamit adunay mga pribilehiyo sa gamut nga gihatag, pinaagi sa pag-log in sa sistema ug pagdagan ang apt update nga mando nga prefix sa sudo.

$ su - ubuntu_user
$ sudo apt update

I-configure ang System Hostname sa Ubuntu

Kasagaran, ang hostname sa makina gipahimutang sa panahon sa proseso sa pag-install sa sistema o kung ang VPS gihimo sa panganod. Bisan pa, kinahanglan nimo nga usbon ang ngalan sa imong makina aron mas mapakita ang destinasyon sa imong server o aron mas maayo nga ihulagway ang katapusan nga katuyoan niini.

Sa usa ka dako nga kompanya, ang mga makina ginganlan sunod sa komplikado nga mga laraw sa pagngalan aron dali nga mailhan ang makina sa mga rack sa datacenter. Pananglitan, kung ang imong Ubuntu nga makina mag-operate sa usa ka mail server, ang ngalan sa makina kinahanglan magpakita niini nga kamatuoran ug mahimo nimong i-setup ang hostname sa makina ingon mx01.mydomain.lan, pananglitan.

Aron ipakita ang mga detalye bahin sa imong hostname sa makina padagana ang mosunud nga mando.

$ hostnamectl

Aron mabag-o ang ngalan sa imong makina, i-isyu ang hostnamectl nga mando sa bag-ong ngalan nga imong i-configure alang sa imong makina, ingon sa gihulagway sa ubos nga kinutlo.

$ sudo hostnamectl set-hostname tecmint

Tinoa ang bag-ong ngalan sa imong sistema gamit ang usa sa mga sugo sa ubos.

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

I-setup ang SSH nga adunay Public Key Authentication sa Ubuntu

Aron madugangan ang lebel sa seguridad sa sistema sa usa ka server sa Ubuntu, kinahanglan nimo nga i-set up ang SSH public key authentication para sa usa ka lokal nga account. Aron makamugna ang SSH Key Pair, ang publiko ug pribado nga yawe, nga adunay pagtino sa usa ka yawe nga gitas-on, sama sa 2048 bits, ipatuman ang mosunod nga sugo sa imong server console.

Siguroha nga naka-log in ka sa sistema uban sa user nga imong gi-set up ang SSH key.

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

Samtang ang yawe gihimo, ikaw pagaaghaton sa pagdugang sa passphrase aron masiguro ang yawe. Mahimo nimong isulod ang kusgan nga passphrase o pilion nga biyaan ang passphrase nga blangko kung gusto nimo i-automate ang mga buluhaton pinaagi sa SSH server.

Human mabuhat ang SSH key, mahimo nimong kopyahon ang public key sa usa ka remote server pinaagi sa pagpatuman sa ubos nga sugo. Aron ma-install ang publiko nga yawe sa hilit nga SSH server kinahanglan nimo ang usa ka hilit nga account sa gumagamit nga adunay tukma nga pagtugot ug mga kredensyal aron maka-log in sa hilit nga server.

$ ssh-copy-id [email _server

Kinahanglan nga awtomatiko ka nga maka-log in pinaagi sa SSH sa hilit nga server gamit ang pamaagi sa pag-authenticate sa yawe sa publiko. Dili nimo kinahanglan nga idugang ang hilit nga password sa user samtang naggamit sa SSH public key authentication.

Human ka maka-log in sa hilit nga server, mahimo ka magsugod sa pagpatuman sa mga sugo, sama sa w command sa paglista sa ssh remote nga naka-log in sa mga tiggamit, sama sa gipakita sa ubos nga screenshot.

I-type ang exit sa console aron isira ang hilit nga sesyon sa SSH.

$ ssh [email _server
$ w
$ exit

Aron makita ang sulod sa imong publikong SSH key aron mano-mano nga ma-install ang yawe sa usa ka hilit nga SSH server, i-isyu ang mosunod nga sugo.

$ cat ~/.ssh/id_rsa.pub

Luwas nga SSH Server sa Ubuntu

Aron ma-secure ang SSH daemon kinahanglan nimong usbon ang default SSH port number gikan sa 22 ngadto sa random port, mas taas kay sa 1024, ug dili tugotan ang remote SSH access sa root account pinaagi sa password o key, pinaagi sa pag-abli sa SSH server main configuration file ug paghimo sa mosunod nga mga pagbag-o.

$ sudo vi /etc/ssh/sshd_config

Una, pangitaa ang gikomentohan nga linya #Port22 ug idugang ang bag-ong linya sa ilawom (ilisan ang numero sa port sa pagpaminaw sumala niana):

Port 2345

Ayaw isira ang file, i-scroll down ug pangitaa ang linya nga #PermitRootLogin oo, uncomment ang linya pinaagi sa pagtangtang sa # sign (hashtag) gikan sa sinugdanan sa linya ug usba ang linya aron tan-awon sama sa gipakita sa ubos nga kinutlo.

PermitRootLogin no

Pagkahuman, i-restart ang SSH server aron magamit ang bag-ong mga setting ug sulayan ang pagsumpo pinaagi sa pagsulay sa pag-log in gikan sa usa ka hilit nga makina sa kini nga server nga adunay root account pinaagi sa bag-ong numero sa port. Ang pag-access sa root account pinaagi sa SSH kinahanglan nga higpitan.

$ sudo systemctl restart sshd

Usab, padagana ang grep command aron ipakita ang bag-ong numero sa port sa pagpaminaw alang sa SSH server.

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

Adunay mga sitwasyon diin gusto nimo nga awtomatiko nga idiskonekta ang tanan nga mga hilit nga koneksyon sa SSH nga natukod sa imong server pagkahuman sa usa ka panahon nga dili aktibo.

Aron mahimo kini nga bahin, ipatuman ang sugo sa ubos, nga nagdugang sa TMOUT bash variable sa imong account .bashrc hidden file ug gipugos ang matag koneksyon sa SSH nga gihimo gamit ang ngalan sa user nga madiskonekta o ma-drop-out pagkahuman sa 5 minuto nga dili aktibo.

$ echo 'TMOUT=300' >> .bashrc

Pagdalagan ang tail command aron masusi kung ang variable nadugang sa husto sa katapusan sa .bashrc file. Ang tanan nga sunud-sunod nga mga koneksyon sa SSH awtomatik nga sirado pagkahuman sa 5 minuto nga dili aktibo gikan karon.

$ tail .bashrc

Sa ubos nga screenshot, ang hilit nga sesyon sa SSH gikan sa drupal machine ngadto sa Ubuntu server pinaagi sa ubuntu_user account na-time out ug auto-logout human sa 5 minutos.

I-configure ang Ubuntu Firewall UFW

Ang matag server nanginahanglan usa ka maayong pagka-configure nga firewall aron masiguro ang sistema sa lebel sa network. Ang Ubuntu server naggamit sa UFW nga aplikasyon sa pagdumala sa mga lagda sa iptables sa server.

Susiha ang kahimtang sa UFW firewall nga aplikasyon sa Ubuntu pinaagi sa pag-isyu sa ubos nga mga sugo.

$ sudo systemctl status ufw
$ sudo ufw status

Kasagaran, ang UFW firewall daemon nag-andar ug nagdagan sa Ubuntu server, apan ang mga lagda wala gigamit sa default. Sa dili pa i-enable ang UFW firewall policy sa imong system, kinahanglan una nimong idugang ang usa ka bag-ong lagda aron tugotan ang trapiko sa SSH nga moagi sa firewall pinaagi sa giusab nga SSH port. Ang lagda mahimong idugang pinaagi sa pagpatuman sa ubos nga sugo.

$ sudo ufw allow 2345/tcp

Human nimo tugotan ang trapiko sa SSH, mahimo nimong ma-enable ug masusi ang UFW firewall application gamit ang mosunod nga mga sugo.

$ sudo ufw enable
$ sudo ufw status

Aron makadugang og bag-ong mga lagda sa firewall para sa ubang mga serbisyo sa network nga gi-install sa imong server, sama sa HTTP server, mail server o uban pang serbisyo sa network, gamita ang ubos nga mga pananglitan sa firewall commands isip giya.

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

Aron ilista ang tanan nga mga lagda sa firewall ipadagan ang sugo sa ubos.

$ sudo ufw status verbose

Itakda ang Oras sa Ubuntu Server

Aron makontrol o mapangutana ang orasan sa server sa Ubuntu ug uban pang may kalabutan nga mga setting sa oras, ipatuman ang timedatectl nga mando nga wala’y argumento.

Aron mabag-o ang mga setting sa time zone sa imong server, ipatuman una ang timedatectl nga mando nga adunay argumento sa list-timezones aron ilista ang tanan nga magamit nga time zone ug, dayon, itakda ang time zone sa imong sistema sama sa gipakita sa ubos nga kinutlo.

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

Ang bag-ong systemd-timesyncd systemd daemon nga kliyente mahimong magamit sa Ubuntu aron makahatag usa ka tukma nga oras alang sa imong server sa tibuuk nga network ug i-synchronize ang oras sa usa ka taas nga oras nga peer server.

Aron magamit kining bag-ong feature sa Systemd, usba ang systemd-timesyncd daemon configuration file ug idugang ang pinakaduol nga geographically NTP servers ngadto sa NTP statement line, sama sa gipakita sa ubos nga file excerpt:

$ sudo nano /etc/systemd/timesyncd.conf

Idugang ang mosunod nga configuration sa timesyncd.conf file:

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

Aron idugang ang imong labing duol nga geographically NTP servers, konsultaha ang NTP pool project server list sa mosunod nga adres: http://www.pool.ntp.org/en/

Pagkahuman, i-restart ang Systemd timesync daemon aron mapakita ang mga pagbag-o ug susihon ang kahimtang sa daemon pinaagi sa pagpadagan sa mga mando sa ubos. Pagkahuman sa pagsugod, ang daemon magsugod sa pag-sync sa oras sa bag-ong ntp server peer.

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

Pag-disable ug Pagtangtang sa Wala Kinahanglan nga Mga Serbisyo sa Ubuntu

Aron makakuha og lista sa tanang serbisyo sa network sa TCP ug UDP nga nag-up-and-run pinaagi sa default sa imong Ubuntu server, ipatuman ang ss o netstat command.

$ sudo netstat -tulpn
OR
$ sudo ss -tulpn

Nagtan-aw sa pagpagawas sa Ubuntu 16.10, ang default DNS resolver karon kontrolado na sa systemd-resolved nga serbisyo, ingon nga gipadayag sa output sa netstat o ss nga mga sugo.

Kinahanglan mo usab nga susihon ang status sa serbisyo nga nasulbad sa systemd pinaagi sa pagpadagan sa mosunod nga sugo.

$ sudo systemctl status systemd-resolved.service

Ang serbisyo nga nasulbad sa systemd nagbugkos sa tanan nga gipaandar nga mga interface sa network ug naminaw sa mga pantalan 53 ug 5355 TCP ug UDP.

Ang pagpadagan sa system-resolved caching DNS daemon sa usa ka production server mahimong delikado tungod sa daghang gidaghanon sa mga pag-atake sa DDOS nga gihimo sa mga malisyosong hacker batok sa dili luwas nga mga DNS server.

Aron mahunong ug ma-disable kini nga serbisyo, ipatuman ang mosunod nga mga sugo.

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

Tinoa kung ang serbisyo nahunong ug gi-disable pinaagi sa pag-isyu sa ss o netstat nga mando. Ang systemd-resolved listening ports, 53 ug 5355 TCP ug UDP, kinahanglan dili ilista sa netstat o ss command output, sama sa gihulagway sa ubos.

Kinahanglan nimo usab nga i-reboot ang makina aron hingpit nga ma-disable ang tanan nga mga serbisyo sa daemon nga nasulbad sa systemd ug ibalik ang default /etc/resolv.conf file.

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

Bisan pa, imong gi-disable ang pipila ka dili gusto nga mga serbisyo sa networking nga modagan sa imong server, adunay uban pang mga serbisyo nga na-install ug nagdagan sa imong sistema, sama sa proseso sa lxc ug serbisyo sa snapd. Kini nga mga serbisyo dali nga makit-an pinaagi sa mga top o pstree nga mga mando.

$ sudo ps aux
$ sudo top
$ sudo pstree

Sa kaso nga dili nimo gamiton ang LXC container virtualization sa imong server o magsugod sa pag-install sa software nga naka-package pinaagi sa Snap package manager, kinahanglan nimo nga hingpit nga i-disable ug tangtangon kini nga mga serbisyo, pinaagi sa pag-isyu sa mga sugo sa ubos.

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

Kana lang! Karon, ang Ubuntu server andam na alang sa pag-instalar og dugang nga software nga gikinahanglan para sa custom network services o applications, sama sa pag-instalar ug pag-configure sa web server, database server, file share service o uban pang piho nga aplikasyon.