Hyper-V ja minimaalinen Debian Linux
Näillä ohjeilla asennat Windows-koneellesi Debian Linux -virtuaalikoneen, jota voi käyttää PowerShell-terminaalista SSH-yhteydellä. Virtualisointiin käytät Microsoftin Hyper-V -ratkaisua, joka tulee Windows-käyttöjärjestelmän mukana.
Asenna Hyper-V Manager
Asenna Hyper-V Microsoftin Install Hyper-V on Windows 10 -ohjeen mukaisesti tai suorita alla olevat komennot ja käynnistä kone uudelleen.
# PowerShell
# Tarkista, onko Hyper-V jo aktivoitu
Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V
# Kytke Hyper-V päälle
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
Myönnä käyttäjälle Hyper-V Administrator -oikeudet
Jos käytät konettasi ilman pääkäyttäjän oikeuksia, kannattaa tunnus lisätä ryhmään Hyper-V Administrators, joka sallii virtuaalikoneiden hallinnan. Lisäys onnistuu mm. Computer Management -työkalun avulla.
Lisää uusi virtuaalikone
- Lataa asennusmedia Debianin verkkosivuilta.
- Käynnistä Hyper-V Manager ja valitse ylävalikosta Action > New > Virtual Machine… tai Toiminnot > Uusi > Virtuaalikone.
- Asennusvelhon vaiheiden aikana:
- syötä konenimeksi debian tai muu erikoismerkkejä sisältämätön yksinkertainen nimi,
- valitse sukupolveksi toinen sukupolvi / generation 2 ja
- määritä verkkosovittimeksi oletuskytkin / default switch.
Toisin kuin joissain nettilähteissä väitetään, Linux-jakelut tukevat Generation 2 -tilaa, mikä selviää mm. Microsoftin dokumenteista. Ainoana konnan koukkuna on Secure Boot -toiminto, joka pitää erikseen konfiguroida ja siitä enemmän myöhemmin.
Oletuskytkimellä virtuaalikone pystyy yhdistämään Internetiin ja isäntäkone virtuaalikoneeseen. Lähiverkon ja Internetin koneet eivät saa suoraa yhteyttä virtuaalikoneeseen, sillä isäntäkone toimii NAT-reitittimenä virtuaalikoneelle.
Asenna Debian Linux
- Napsauta virtuaalikone aktiiviseksi ja valitse Action > Settings tai Toiminto > Asetukset
- Valitse Security / Suojaus ja kytke pois päältä Enable Secure Boot / Ota käyttöön suojattu käynnistys
- Napsauta virtuaalikone aktiiviseksi ja valitse **Connect / Yhdistä **
- Aja Debianin asennusohjelma loppuu. Lisäohjeita voi lukea Debianin virallisesta asennusohjeesta.
Debianin asennusvaiheessa on kolme tärkeää asiaa, jotka on hyvä muuttaa oletusasetuksista:
- Anna virtuaalikoneelle sama nimi (esim. debian) kuin annoit Hyper-V:ssä virtuaalikoneelle.
- Anna verkkoaluenimeksi mshome.net.
- Valitse asennettaviksi ohjelmakokoelmiksi vain SSH server ja Vakiot järjestelmätyökalut.
Debian-asennuksessa ei välttämättä tarvitse ottaa mitään erityisasioita huomioon, mutta annan suositukseksi, että verkkoaluenimeksi määritellään mshome.net ja konenimeksi sama nimi, jota käytit Hyper-V:ssä. Nimeäminen vähentää myöhemmin hämmennystä, kun yrität ottaa isäntäkoneelta yhteyden virtuaalikoneeseen. Näihin voisi laittaa jotain muutakin, mutta Microsoft on jo päättänyt puolestasi, että isäntäkoneen puolella virtuaalikoneiden nimet ovat muotoa konenimi.mshome.net.
Halusin pitää virtuaalikoneeni riisuttuna, joten karsin asennusvaiheessa kaikki työpöytäympäristöön liittyvät ohjelmistovalinnat pois. Jätin jäljelle vain SSH-palvelun ja vakiot järjestelmätyökalut.
Yhdistä virtuaalikoneeseen SSH-yhteydellä
Avaa PowerShell ja aja komento
Test-NetConnection -Computer debian.mshome.net -Port 22
Jos näet tekstin PingSucceeded : False
, tarkista, että virtuaalikone on päällä ja että virtuaalikoneen nimi on kirjoitettu oikein. Et pysty ottamaan suoraan yhteyttä pelkällä konenimellä, vaan Hyper-V vaatii rinnalle domain-nimen, joka on mshome.net.
Koneeseen voisi ottaa yhteyttä myös IP-osoitteella, mutta ongelmaksi muodostuu vaihtuva IP-osoite, jota ei voi ennustaa etukäteen. On paljon helpompaa hyödyntää osoitetta konenimi.mshome.net.
Suorita seuraavaksi PowerShellilla komento ssh kayttanimi@debian.mshome.net
, jolla pääset linux-koneen terminaaliin kiinni.
Asennuksen jälkeiset säädöt
Tietoturvan parantamiseksi teemme vielä muutaman lisämuutoksen Debianin palomuuriin ja SSH-palvelimen asetuksiin.
- Avaa editorilla /etc/ssh/sshd_config -tiedosto ja lisää seuraavat rivit, jotta SSH-kirjautuminen onnistuu vain IPv4-verkosta ja vain tietylle käyttäjälle:
AddressFamily inet
AllowUser kayttajanimi
- Avaa editorilla /etc/nftables.conf ja tiukenna palomuuria. Alla oleva esimerkki estää ulkoa tulevan liikenteen ja avaa isäntäkoneelle SSH-portin.
#!/usr/sbin/nft -f
flush ruleset
table inet filter {
chain input {
type filter hook input priority 0; policy drop;
# accept any localhost traffic
iif lo accept
# accept traffic originated from us
ct state established,related accept
# accept neighbour discovery otherwise IPv6 connectivity breaks
icmpv6 type { nd-neighbor-solicit, nd-router-advert, nd-neighbor-advert } accept
# Allow SSH on port TCP/22
# Hyper V ip range: 172.17.0.0 - 172.31.255.255
# 192.168.0.0 - 192.168.255.255
ip saddr 172.17.0.0/11 tcp dport { 22 } accept
}
chain forward {
# Drop everything (assumes this device is not a router)
type filter hook forward priority 0; policy drop;
}
}
Yllä oleva palomuurisääntö on mukautettu nftables-ohjelman wikisivulla olevista esimerkkisäännöistä Simple ruleset for a workstation ja Simple ruleset for a server.
Käyttö
Voit käynnistää virtuaalikoneen suoraan PowerShellista, jos et halua käyttää Hyper-V Managerin graafista käyttöliittymää. Aja silloin PowerShell-komento:
Start-Vm -Name debian
Kun haluat siirtää tiedostoja virtuaalikoneelle, suorita komento scp
# PowerShell
scp .\siirto.txt mikko@debian.mshome.net:.
tai siirrä tiedostot erillisellä WinSCP -ohjelmalla.