Oma julkinen palvelin
Harjoitus löytyy kurssin sivulta: http://terokarvinen.com/2020/linux-palvelimet-2020-alkukevat-kurssi-ict4tn021-3010/
Aloitin tehtävien tekemisen klo 10.32 / 12.32 ja tein niitä tunnin ajan.
Tällä kertaa tehtävä oli helppo eikä ilmennyt mitään ongelmia. Olimme tehneet tehtävän jo tunnilla, joten sen toistaminen onnistui helposti muistiinpanoja seuraamalla.
Tein tehtävän omalla Lenovon x220 ThinkPad -kannettavallani. Avasin xubuntun livetikulta try-moodissa.
a) Tee alusta lähtien oma julkinen palvelin Internetiin.
Vinkkejä: Tee siis uusi virtuaalipalvelin (esim ”Droplet”) ja sille tarvittavat alkutoimet. Tee uusi DNS-nimi. Alanimiä voi yleensä tehdä maksutta: esim. jos hallitsee TeroKarvinen.com, voi tehdä hattu.TeroKarvinen.com. Tässä tehtävässä on tarkoitus sujuvoittaa koko prosessi, tee siis uusi A-tietue nimipalvelimeen ja uusi virtuaalipalvelin alusta lähtien, vaikka sinulla olisi jo sekä nimi että palvelin. Kun kaikki toimii ja raportti on valmis, voit poistaa turhan palvelimen ja jättää itsellesi esimerkiksi vain yhden käyttöön. Jos jäät jumiin, pyri päättelemään, mitkä osat toimivat ja mitkä eivät; ratkomme viimeiset ongelmat yhdessä tunnilla. Palautusaika on tuttuun tapaan 24h ennen seuraavaa tapaamiskertaa, eli vasta talvivapaan jälkeen.
Minulla oli aiempi palvelin digitalocean:issa, joten tein sinne uuden dropletin samalla tavalla kuin tunnilla tein sen aiemman: Distro: ubuntu; plan: standard ja 5$/month; hostname: harj4
SSH-yhteyttä varten tarvittava kertakäyttöinen salasana ilmestyi sähköpostiin ip-osoitteen kanssa.
- ssh root@*ip-osoite*
Loin uuden salasanan nyt rootille, vaikka se kohta lukitaan, kun luomme uuden käyttäjän, jolla hallita palvelinta.
Ensiksi teimme reiän palomuuriin ssh:lle:
- #sudo ufw allow 22/tcp
- #sudo ufw enable
Sitten teemme käyttäjän:
- #sudo adduser emma
- (anna salasana), (anna Full Name, ei muita tietoja)
adduser luo käyttäjän, mikä on helpoin tapa luoda käyttäjiä. Sitten haluamme luomamme käyttäjän sudo ja adm -ryhmiin eli:
- #sudo adduser emma suo
- #sudo adduser emma adm
Testaus toisella terminaalilla:
- #ssh emma@*ip-osoite*
- (anna salasana)
- #sudo apt-get update (testaa toimiiko) -> Toimii
Lukitse root-käyttäjä:
- #sudo usermod –lock root
Root-käyttäjä lukitaan, koska kaikki tunkeilijat tietävät sen nimen.
Seuraavaksi luon aladomainin. Menen name.com-sivulle, jossa domain sijaitsee. Sieltä Manage DNS:
Nyt hattu.emmavaittinen.social ottaa vastaan liikennettä. Teen sille vielä weppipalvelimen. Lataan Apache2, tein palomuuriin reiän:
- #sudo ufw allow 80/tcp
- #sudo ufw allow 443/tcp
- #sudo ufw allow in ”Apache Full”
Nyt sain sen ”It works” -sivun tulemaan, kun laitan selaimeen tuon osoitten.
b) Vapaaehtoinen: Etsi lokeistasi merkkejä murtautumisyrityksistä ja analysoi ne.
- #grep ”failure” /var/log/auth.log
Sain listan epäonnistuneista kirjautumisyrityksistä.
| Feb 23 10:42:53 harj4 sshd[1112]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=117.73.2.103 |
Kun googletin rhostin ip-osoitteen, https://www.abuseipdb.com/check/117.73.2.103 kertoi, että se on raportoitu yli 2500 kertaa ja että se sijaitsee Kiinassa.
Hetken päästä se yritti root-käyttäjänä uudestaan:
| Feb 23 10:45:52 harj4 sshd[1244]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=117.73.2.103 user=root |
c) Vapaaehtoinen: Laita TLS-salakirjoitus (https) toimimaan certbot ja Let’s Encrypt avulla.
Seurasin tämän sivun ohjeita: https://certbot.eff.org/lets-encrypt/ubuntubionic-apache
- add certbot ppa (personal package archive)
- #sudo apt-get update
- #sudo apt-get install software-properties-common
- #sudo add-apt-repository universe
- #sudo add-apt-repository ppa:certbot/certbot
- #sudo apt-get update
2. install certbot
- #sudo apt-get install certbot python-certbot-apache
3. Choose how you’d like to run Certbot Either get and install your certificates…
- #sudo certbot –apache
Run this command to get a certificate and have Certbot edit your Apache configuration automatically to serve it, turning on HTTPS access in a single step.
Sitten se pyysi sähköpostiosoitetta, ToS piti hyväksyä, kysyi haluanko antaa emailin Electronic Frontier Foundationille (vastasin että ei), pyysi domain nimen: hattu.emmavaittinen.social. Lopuksi kysyi haluanko uudelleenohjata HTTP liikennettä HTTPS:ään.
Testasin, onnistuiko se:
Ilmestyi sinne se lukon kuva eli sen laittaminen onnistui!
Lopuksi #exit -komento, jotta kirjauduin ulos SSH-yhteydestä.