Linux-verkonhallinta – teoria, konfigurointi ja vianetsintä
Linux-verkonhallinta
Oppimistavoite: ymmärtää verkonhallinnan käsitteet, muuttaa asetuksia väliaikaisesti ja pysyvästi Alpine Linuxissa sekä Ubuntu-pohjaisissa järjestelmissä ja perustella havainnot näyttökomentojen ja pakettikaappausten avulla.
Huomio: Kaikki seuraavat tulosteet ovat havainnollistavia esimerkkejä, eivät oikean laboratoriokoneen mittaustuloksia. Tarkista liitännän nimi aina ennen komentojen suorittamista. Esimerkeissä käytetään
eth0-liitäntää ja dokumentointiin varattuja IP-verkkoja192.0.2.0/24,198.51.100.0/24ja203.0.113.0/24.Etäyhteyden varoitus: IP-osoitteen, oletusreitin tai verkkopalvelun uudelleenkäynnistys voi katkaista SSH-yhteyden. Tee muutokset EVE-NG:n konsolista tai varmista palautusreitti.
1. Liitännät ja osoitteistus
Linuxin iproute2-työkalut näyttävät linkkitilan, osoitteet ja reitit. IPv4-prefix /24 vastaa maskia 255.255.255.0. ip-komennolla tehdyt muutokset vaikuttavat käynnissä olevaan järjestelmään, mutta eivät yleensä säily uudelleenkäynnistyksessä eivätkä välttämättä edes verkkopalvelun uudelleenkäynnistyksessä.
ip -br link – liitäntöjen tila
ip -br link
Esimerkkituloste:
lo UNKNOWN 00:00:00:00:00:00 <LOOPBACK,UP,LOWER_UP>
eth0 UP 00:50:00:00:0b:00 <BROADCAST,MULTICAST,UP,LOWER_UP>
eth1 DOWN 00:50:00:00:0b:01 <BROADCAST,MULTICAST>
| Kenttä | Merkitys |
|---|---|
lo |
Loopback-liitäntä; paikallisen koneen sisäinen liikenne |
eth0, eth1 |
Verkkoliitännät; Ubuntussa nimet voivat olla myös ens18, enp3s0 jne. |
UP / DOWN |
Raportoitu operatiivinen linkkitila |
UNKNOWN |
Tila ei ole yksiselitteisesti määritettävissä; tavallinen loopbackilla |
00:50:... |
Liitännän MAC-osoite |
UP lipuissa |
Liitäntä on hallinnollisesti käytössä |
LOWER_UP |
Alempi linkkikerros ilmoittaa yhteyden olevan toiminnassa |
Johtopäätös: eth0 on käytössä ja linkki toimii. eth1 ei ole toimintatilassa; lyhyt tuloste ei yksin kerro, johtuuko tämä hallinnollisesta sulkemisesta vai puuttuvasta fyysisestä linkistä. Tarkista tarkemmin ip -d link show dev eth1.
ip -br addr – osoitteet
ip -br addr
lo UNKNOWN 127.0.0.1/8 ::1/128
eth0 UP 192.0.2.10/24 fe80::250:ff:fe00:b00/64
eth1 DOWN
| Kenttä | Merkitys |
|---|---|
192.0.2.10/24 |
IPv4-osoite ja verkkopeite: verkko 192.0.2.0/24 |
fe80::.../64 |
IPv6-link-local-osoite, ei normaalisti reitity internetiin |
127.0.0.1/8 |
IPv4-loopback |
| Tyhjä osoitekenttä | Liitännälle ei näy IP-osoitetta |
ip route show – reititystaulu
ip route show
default via 192.0.2.1 dev eth0 proto static metric 100
192.0.2.0/24 dev eth0 proto kernel scope link src 192.0.2.10
| Osa | Merkitys |
|---|---|
default |
Reitti kohteisiin, joille ei löydy tarkempaa reittiä |
via 192.0.2.1 |
Seuraava hyppy eli yhdyskäytävä |
dev eth0 |
Ulosmenoliitäntä |
proto static |
Staattisesti lisätty reitti |
proto kernel |
Ytimen muodostama reitti, usein liitännän osoitteesta |
scope link |
Kohdeverkko on suoraan samalla linkillä |
src 192.0.2.10 |
Reitin ensisijainen lähdeosoite |
metric 100 |
Reitin etusija samanpituisissa ja muuten vertailukelpoisissa reiteissä; pienempi on tavallisesti ensisijainen |
ip route get – valitun reitin simulointi
ip route get 198.51.100.10
198.51.100.10 via 192.0.2.1 dev eth0 src 192.0.2.10 uid 1000
cache
Tulkinta: Linux aikoo lähettää kohteen 198.51.100.10 liikenteen yhdyskäytävälle 192.0.2.1 liitännästä eth0 ja käyttää lähdeosoitetta 192.0.2.10. Tämä on paikallinen reitityspäätös, ei todiste siitä, että yhteys kohteeseen toimii. uid kertoo reitityskyselyn käyttäjätunnisteen; cache on tulosteen toteutuskohtainen lisätieto.
2. IP-osoitteen ja reittien väliaikainen muuttaminen (Alpine ja Ubuntu)
Nämä iproute2-komennot toimivat molemmissa jakeluperheissä, kun ip-työkalu on asennettu.
Liitännän käyttöönotto ja sulkeminen
sudo ip link set dev eth0 up
sudo ip link set dev eth0 down
Alpine Linuxissa sudo ei välttämättä ole asennettu. Root-käyttäjänä komennot annetaan ilman sudo-etuliitettä.
Lisää tai poista IP-osoite
sudo ip addr add 192.0.2.10/24 dev eth0
sudo ip addr del 192.0.2.10/24 dev eth0
Olemassa olevien IPv4-osoitteiden korvaaminen yhdellä osoitteella:
sudo ip -4 addr flush dev eth0
sudo ip addr add 192.0.2.10/24 dev eth0
Varoitus: flush poistaa kyseisen liitännän kaikki IPv4-osoitteet, myös etäyhteyden käyttämän osoitteen. Älä käytä sitä sokkona SSH-istunnossa.
Tarkista:
ip -4 addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 ...
inet 192.0.2.10/24 scope global eth0
valid_lft forever preferred_lft forever
inet on IPv4-osoite, scope global tarkoittaa muuta kuin vain paikallista linkki- tai loopback-käyttöä ja valid_lft forever kertoo, ettei osoitteelle ole asetettu määräaikaista voimassaoloa.
Oletusreitin lisääminen tai vaihtaminen
sudo ip route replace default via 192.0.2.1 dev eth0
Poistaminen:
sudo ip route del default via 192.0.2.1 dev eth0
Tietyn verkon reitti:
sudo ip route replace 198.51.100.0/24 via 192.0.2.254 dev eth0
ip route get 198.51.100.10
198.51.100.10 via 192.0.2.254 dev eth0 src 192.0.2.10 uid 1000
cache
Tulkinta: Tarkempi /24-reitti ohittaa oletusreitin. Yhdyskäytävän 192.0.2.254 pitää olla saavutettavissa kyseisen liitännän kautta.
Väliaikainen DNS
DNS-asetusta ei muuteta ip-komennolla. Menetelmä riippuu resolvointipalvelusta:
resolvectl status
readlink -f /etc/resolv.conf
Jos Ubuntu käyttää systemd-resolved-palvelua:
sudo resolvectl dns eth0 192.0.2.53
sudo resolvectl domain eth0 lab.example
resolvectl status eth0
Jos /etc/resolv.conf on tavallinen tiedosto ja sen hallinta on käsin tehtävä, tiedostoon voidaan määritellä esimerkiksi:
nameserver 192.0.2.53
search lab.example
Älä korvaa /etc/resolv.conf-tiedostoa käsin, jos NetworkManager, DHCP-asiakas tai systemd-resolved hallitsee sitä: muutos voi ylikirjoittua tai rikkoa nimipalvelun. lab.example on vain esimerkkidomain.
3. Pysyvät verkkoasetukset Alpine Linuxissa
Alpine Linuxissa käytetään usein BusyBoxin ifupdown-tyyppistä verkonhallintaa ja tiedostoa /etc/network/interfaces. Asennuksesta riippuen käytössä voi olla myös muu verkonhallintaratkaisu, joten tarkista ensin ympäristö.
cat /etc/network/interfaces
rc-service networking status
ip -br addr
Staattinen IPv4-osoite
Muokkaa root-käyttäjänä tiedostoa:
vi /etc/network/interfaces
Esimerkkisisältö:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.0.2.10/24
gateway 192.0.2.1
Joissakin Alpine/ifupdown-toteutuksissa verkkopeite voidaan määrittää erikseen:
address 192.0.2.10
netmask 255.255.255.0
Kentät: auto eth0 ottaa liitännän käyttöön käynnistyksessä, iface eth0 inet static valitsee staattisen IPv4-asetuksen, address määrittää osoitteen ja gateway oletusyhdyskäytävän.
DHCP
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
DHCP-asiakas hakee osoitteen, peitteen ja yleensä reititys- sekä DNS-asetukset palvelimelta.
DNS Alpinessa
Jos /etc/resolv.conf on käsin hallittu tiedosto, esimerkki:
nameserver 192.0.2.53
nameserver 1.1.1.1
search lab.example
DHCP-asiakas voi kuitenkin korvata tiedoston. Jos haluat pysyvästi DHCP:stä poikkeavat DNS-asetukset, ne pitää määrittää käytössä olevan DHCP-asiakkaan tai resolvointipalvelun konfiguraatioon. Älä oleta, että resolv.conf pysyy muuttumattomana.
Muutosten käyttöönotto
Turvallisin tapa on tehdä tämä EVE-NG-konsolissa:
rc-service networking restart
Vaihtoehtoisesti liitännän voi yrittää ottaa alas ja ylös:
ifdown eth0
ifup eth0
ifdown/ifup-komennot vaikuttavat konfiguraation ja senhetkisen tilan mukaan; etäyhteys voi katketa. Tarkista käynnistysautomaation tila:
rc-update show | grep networking
Esimerkkituloste:
networking | boot
Tulkinta: networking kuuluu boot-käynnistystasolle. Jos palvelu puuttuu, se voidaan ottaa käyttöön kyseisessä kokoonpanossa komennolla rc-update add networking boot.
4. Pysyvät verkkoasetukset Ubuntu Serverissä: Netplan
Ubuntu Server käyttää usein Netplania, jonka taustalla toimii systemd-networkd tai NetworkManager. Tarkista ensin:
ls -l /etc/netplan/
cat /etc/netplan/*.yaml
Netplan-tiedoston nimi vaihtelee, esimerkiksi 50-cloud-init.yaml tai 01-netcfg.yaml. Jos cloud-init hallitsee verkkoasetuksia, sen generoimaa tiedostoa voidaan kirjoittaa uudelleen; tee pysyvät muutokset ensisijaisesti asetusten todelliseen lähteeseen.
Staattinen IPv4, oletusreitti ja DNS
Esimerkki tiedostosta /etc/netplan/01-lab.yaml:
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: false
addresses:
- 192.0.2.10/24
routes:
- to: default
via: 192.0.2.1
nameservers:
addresses:
- 192.0.2.53
- 1.1.1.1
search:
- lab.example
Tulkinta: renderer määrää taustajärjestelmän, dhcp4: false poistaa IPv4-DHCP:n, addresses asettaa IP:n, routes oletusreitin ja nameservers DNS-palvelimet.
DHCP-asetus
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: true
Muutosten tarkistus ja käyttöönotto
sudo netplan generate
sudo netplan try
generate tarkistaa ja generoi taustakonfiguraation; try kokeilee muutoksia ja tarjoaa mahdollisuuden palautukseen, ellei niitä vahvisteta. Palautus ei ole kaikissa tilanteissa täydellinen, joten konsoliyhteys on silti suositeltava.
Kun konfiguraatio on vahvistettu:
sudo netplan apply
ip -br addr
ip route
resolvectl status
Netplanin YAML-sisennyksillä on merkitystä: käytä välilyöntejä, älä tabulaattoreita.
5. Pysyvät verkkoasetukset Ubuntu Desktopissa ja Linux Mintissä: NetworkManager
Ubuntu Desktop ja Linux Mint käyttävät tavallisesti NetworkManageria. Hallinta onnistuu graafisella työkalulla tai nmcli-komennolla.
Selvitä liitäntä ja yhteysprofiili
nmcli device status
nmcli connection show
Esimerkkituloste:
DEVICE TYPE STATE CONNECTION
eth0 ethernet connected Wired connection 1
lo loopback connected (externally) lo
Tulkinta: eth0 on Ethernet-laite, sen tila on connected ja sitä hallitsee yhteysprofiili Wired connection 1. Profiilin nimi ei välttämättä vastaa liitännän nimeä.
Staattinen IPv4, yhdyskäytävä ja DNS
sudo nmcli connection modify "Wired connection 1" \
ipv4.method manual \
ipv4.addresses 192.0.2.10/24 \
ipv4.gateway 192.0.2.1 \
ipv4.dns "192.0.2.53 1.1.1.1" \
ipv4.ignore-auto-dns yes
Ota profiili uudelleen käyttöön:
sudo nmcli connection up "Wired connection 1"
DHCP takaisin käyttöön
sudo nmcli connection modify "Wired connection 1" \
ipv4.method auto \
ipv4.addresses "" \
ipv4.gateway "" \
ipv4.dns "" \
ipv4.ignore-auto-dns no
sudo nmcli connection up "Wired connection 1"
Tarkista asetukset
nmcli -f ipv4.method,ipv4.addresses,ipv4.gateway,ipv4.dns connection show "Wired connection 1"
Esimerkkituloste:
ipv4.method: manual
ipv4.addresses: 192.0.2.10/24
ipv4.gateway: 192.0.2.1
ipv4.dns: 192.0.2.53,1.1.1.1
Tulkinta: Nämä ovat yhteysprofiiliin tallennetut asetukset. Tarkista lisäksi ip addr, ip route ja resolvectl, jotta näet aktiivisen tilan.
Tärkeää: Älä konfiguroi samaa liitäntää yhtä aikaa Netplanin
networkd-taustalla, NetworkManagerissa ja käsin tehdyilläip-komennoilla ilman selkeää hallintamallia. Verkonhallintapalvelu voi palauttaa oman konfiguraationsa.
6. Reititys ja seuraava hyppy
Linux valitsee reititystaulusta pisimmän täsmäävän etuliitteen. Oletusreitti (0.0.0.0/0) on viimeinen vaihtoehto. Seuraavan hypyn pitää olla saavutettavissa valitun ulosmenoliitännän kautta.
ip route
ip route
default via 192.0.2.1 dev eth0
192.0.2.0/24 dev eth0 proto kernel scope link src 192.0.2.10
198.51.100.0/24 via 192.0.2.254 dev eth0
Tulkinta: 198.51.100.0/24 käyttää yhdyskäytävää 192.0.2.254, muu tuntematon liikenne oletusyhdyskäytävää 192.0.2.1. Suoraan kytketty 192.0.2.0/24 ei tarvitse reititintä.
ping – ICMP-saavutettavuus
ping -c 3 192.0.2.1
64 bytes from 192.0.2.1: icmp_seq=1 ttl=64 time=0.52 ms
64 bytes from 192.0.2.1: icmp_seq=2 ttl=64 time=0.46 ms
64 bytes from 192.0.2.1: icmp_seq=3 ttl=64 time=0.48 ms
--- 192.0.2.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss
| Kenttä | Merkitys |
|---|---|
icmp_seq |
ICMP Echo -pyynnön järjestysnumero |
ttl |
Vastauksen jäljellä oleva IPv4 TTL |
time |
Edestakainen viive (RTT) |
packet loss |
Vastaamatta jääneiden pyyntöjen osuus |
Johtopäätös: Yhdyskäytävä vastaa ICMP-pyyntöihin. Tämä ei vielä takaa, että TCP-portit tai reititys kaikkiin muihin verkkoihin toimivat.
traceroute – reitin näkyvät hypyt
traceroute -n 198.51.100.10
traceroute to 198.51.100.10 (198.51.100.10), 30 hops max
1 192.0.2.1 0.540 ms 0.480 ms 0.501 ms
2 198.51.100.10 1.100 ms 1.052 ms 1.090 ms
Tulkinta: Ensimmäinen vastaava reititin on 192.0.2.1, toinen vastaava solmu on kohde. -n estää DNS-nimien hakemisen. Kolme viivearvoa vastaavat kolmea koepakettia. * tarkoittaa, ettei kyseiseen koepakettiin saatu vastausta määräajassa; se ei yksin todista yhteyskatkoa. Linuxin tavallinen traceroute käyttää usein UDP-koepaketteja, mutta käytettävissä voi olla ICMP- ja TCP-tiloja.
7. ARP ja naapuruustaulu
ARP selvittää samalla Layer 2 -linkillä olevan IPv4-osoitteen MAC-osoitteen. Toiseen IP-verkkoon lähetettäessä kone selvittää yleensä seuraavan hypyn MAC-osoitteen, ei etäisen kohdelaitteen MAC-osoitetta. ARP-kyselyä ei tavallisesti reititetä IP-reitittimen läpi.
ip neigh show
ip neigh show
192.0.2.1 dev eth0 lladdr 00:50:00:00:03:01 REACHABLE
192.0.2.20 dev eth0 lladdr 00:50:00:00:02:00 STALE
192.0.2.30 dev eth0 INCOMPLETE
| Tila | Merkitys |
|---|---|
REACHABLE |
Naapurin saavutettavuus on vahvistettu äskettäin |
STALE |
MAC-osoite tunnetaan, mutta tuoretta saavutettavuusvahvistusta ei ole |
DELAY |
Ydin odottaa ennen aktiivista naapurin tarkistusta |
PROBE |
Naapurin saavutettavuutta tarkistetaan aktiivisesti |
INCOMPLETE |
Osoitteen selvitys on kesken |
FAILED |
Naapurin osoitteen selvitys tai saavutettavuuden tarkistus epäonnistui |
PERMANENT |
Pysyvä naapuruusmerkintä |
NOARP |
Merkintä, jossa normaalia ARP-selvitystä ei tehdä |
lladdr tarkoittaa linkkikerroksen osoitetta eli tässä MAC-osoitetta. STALE ei sellaisenaan ole vika. INCOMPLETE tai FAILED voi johtua esimerkiksi väärästä VLANista, väärästä osoitteesta, puuttuvasta linkistä tai vastauksen estymisestä.
tcpdump – ARP-kehykset
sudo tcpdump -eni eth0 arp
14:05:10.101000 00:50:00:00:0b:00 > ff:ff:ff:ff:ff:ff, ethertype ARP, Request who-has 192.0.2.1 tell 192.0.2.10
14:05:10.101600 00:50:00:00:03:01 > 00:50:00:00:0b:00, ethertype ARP, Reply 192.0.2.1 is-at 00:50:00:00:03:01
Tulkinta: 192.0.2.10 kysyy broadcast-kehyksellä yhdyskäytävän MAC-osoitetta, ja 192.0.2.1 vastaa. -e näyttää Ethernet-otsakkeen, -n estää nimien resolvoinnin ja -i eth0 valitsee liitännän.
Vianrajaus: jos Request näkyy mutta Reply puuttuu, tarkista vastapää, VLAN, kytkimen MAC-taulu ja mahdollinen ARP-suodatus. Pelkkä puuttuva vastaus ei yksin osoita syytä.
8. DNS ja DHCP
DNS muuntaa nimiä IP-osoitteiksi. DHCP jakaa esimerkiksi IP-osoitteen, peitteen, oletusyhdyskäytävän ja DNS-palvelimet. DHCPv4 käyttää tyypillisesti UDP-portteja 67 (palvelin) ja 68 (asiakas).
resolvectl status – DNS-asetukset
resolvectl status
Esimerkkikatkelma:
Global
resolv.conf mode: stub
Link 2 (eth0)
Current Scopes: DNS
DNS Servers: 192.0.2.53
DNS Domain: lab.example
Tulkinta: eth0 käyttää DNS-palvelinta 192.0.2.53. stub viittaa tyypillisesti paikalliseen systemd-resolved-välittäjään. Komento ei välttämättä ole saatavilla Alpine Linuxin oletusasennuksessa tai järjestelmässä, jossa systemd-resolved ei ole käytössä.
getent ahostsv4 – nimen ratkaisu
getent ahostsv4 example.com
Esimerkkituloste (osoite on havainnollistava):
93.184.215.14 STREAM example.com
93.184.215.14 DGRAM
93.184.215.14 RAW
Tulkinta: Nimenratkaisu tuottaa IPv4-osoitteen. STREAM, DGRAM ja RAW kuvaavat osoitetietojen socket-tyyppejä, eivät kolmea erillistä verkkoyhteyttä. Todellinen osoite ja tulosteen muoto voivat vaihdella. getent käyttää järjestelmän nimipalvelumekanismia (NSS), joten tulos ei välttämättä tule yksinomaan DNS:stä.
nmcli device show – NetworkManagerin aktiiviset asetukset
nmcli device show eth0
Esimerkkikatkelma:
GENERAL.DEVICE: eth0
GENERAL.STATE: 100 (connected)
IP4.ADDRESS[1]: 192.0.2.10/24
IP4.GATEWAY: 192.0.2.1
IP4.DNS[1]: 192.0.2.53
Tulkinta: Aktiivinen osoite, yhdyskäytävä ja DNS näkyvät samassa tulosteessa. nmcli toimii vain, jos NetworkManager on asennettu ja käytössä.
DHCP-liikenteen tarkkailu
sudo tcpdump -ni eth0 -vv 'udp port 67 or udp port 68'
Esimerkkitulosteesta lyhennetty:
IP 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request
IP 192.0.2.1.67 > 255.255.255.255.68: BOOTP/DHCP, Reply
Tulkinta: Asiakas lähettää DHCP-pyynnön ja palvelin vastaa. Tarkemmat DHCP Discover, Offer, Request ja ACK -viestityypit löytyvät -vv-tulosteen DHCP-optioista. Kaappauksen näkyvyys riippuu ajoituksesta ja liitännästä.
9. TCP, UDP ja vianrajaus
TCP muodostaa yhteyden tavallisesti SYN → SYN/ACK → ACK -kättelyllä ja tarjoaa kuittaukset sekä uudelleenlähetykset. UDP on yhteydetön kuljetusprotokolla eikä tee vastaavaa kättelyä.
ss -lntup – kuuntelevat socketit
sudo ss -lntup
Esimerkkikatkelma:
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
tcp LISTEN 0 128 127.0.0.1:8000 0.0.0.0:* users:(("python3",pid=1200,fd=3))
tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=900,fd=3))
udp UNCONN 0 0 0.0.0.0:5353 0.0.0.0:* users:(("daemon",pid=700,fd=5))
| Osa | Merkitys |
|---|---|
-l |
Kuuntelevat socketit |
-n |
Numeeriset osoitteet ja portit |
-t |
TCP |
-u |
UDP |
-p |
Prosessitiedot, jos oikeudet riittävät |
127.0.0.1:8000 |
Palvelu kuuntelee vain IPv4-loopbackissa |
0.0.0.0:22 |
Palvelu kuuntelee kaikissa paikallisissa IPv4-osoitteissa |
LISTEN |
TCP-palvelu odottaa yhteyksiä |
UNCONN |
UDP-socket ei ole yhteydessä yksittäiseen vastapäähän |
Johtopäätös: Portin 8000 palveluun ei pääse suoraan toiselta koneelta sen IPv4-osoitteen kautta, koska se on sidottu 127.0.0.1-osoitteeseen. SSH kuuntelee kaikissa IPv4-osoitteissa, mutta palomuuri voi silti estää yhteyden.
nc -vz – TCP-portin testaus
nc -vz 192.0.2.20 22
Onnistunut esimerkkituloste:
Connection to 192.0.2.20 22 port [tcp/ssh] succeeded!
Epäonnistunut esimerkkituloste:
nc: connect to 192.0.2.20 port 22 (tcp) failed: Connection refused
Tulkinta: succeeded kertoo, että TCP-yhteyden muodostaminen onnistui; se ei vielä todista SSH-kirjautumisen onnistumista. Connection refused tarkoittaa yleensä, että kohde tai väliin jäävä laite torjui yhteyden aktiivisesti. Aikakatkaisu voi liittyä suodatukseen, reititykseen tai tavoittamattomaan kohteeseen. -v on verbose ja -z testaa yhteyden avaamista lähettämättä sovellustason sisältöä.
tcpdump – TCP-kättely
sudo tcpdump -ni eth0 'host 192.0.2.20 and tcp port 22'
Esimerkkituloste (lyhennetty):
IP 192.0.2.10.50124 > 192.0.2.20.22: Flags [S], seq 1000
IP 192.0.2.20.22 > 192.0.2.10.50124: Flags [S.], seq 5000, ack 1001
IP 192.0.2.10.50124 > 192.0.2.20.22: Flags [.], ack 5001
| Merkintä | Merkitys |
|---|---|
50124 |
Asiakkaan esimerkkilähdeportti |
.22 |
SSH-palvelimen kohdeportti |
[S] |
SYN: yhteyden avauspyyntö |
[S.] |
SYN + ACK: palvelin vastaa |
[.] |
ACK: asiakas kuittaa |
seq |
TCP-sekvenssinumero |
ack |
TCP-kuittausnumero |
Johtopäätös: Kolmivaiheinen TCP-kättely onnistui. Jos SYN näkyy toistuvasti ilman SYN/ACK-vastausta, selvitä, missä liikenne katoaa. Jos vastauksena tulee RST, yhteys torjutaan tai palvelu ei kuuntele kyseisessä osoitteessa ja portissa.
10. Tyypillinen vianetsintäjärjestys EVE-NG-laboratoriossa
- Linkki:
ip -br link– onko liitäntä käytössä ja linkki ylhäällä? - IP:
ip -br addr– onko osoite ja prefix oikein? - Reititys:
ip routejaip route get KOHDE– mitä reittiä liikenne lähtee? - ARP:
ip neigh showjatcpdump arp– löytyykö seuraavan hypyn MAC-osoite? - ICMP:
ping -c 3 YHDYSKÄYTÄVÄ– vastaako yhdyskäytävä? - Reittipolku:
traceroute -n KOHDE– mitä välihyppyjä näkyy? - DNS:
getent ahostsv4 NIMI– toimiiko nimipalvelu? - Palvelu:
ss -lntupkohteessa janc -vz KOHDE PORTTIasiakkaassa. - Paketit:
tcpdumpmolemmissa päissä ja tarvittaessa ASA:n/kytkimen rajapinnoilla.
Esimerkki: PCS1 ei saa SSH-yhteyttä PCS2:een. Jos ip route get näyttää oikean reitin, ip neigh näyttää PCS2:n MAC-osoitteen, mutta nc -vz epäonnistuu, siirry tarkistamaan PCS2:n ss -lntup sekä mahdollinen palomuuri. Jos ARP jää INCOMPLETE-tilaan, tutki ensin Layer 2 -yhteys ja VLANit.
11. Harjoitustehtävät
Harjoitus A – Väliaikainen staattinen osoite
Aseta EVE-NG:n konsolista Linux-koneelle staattinen osoite, tarkista ip -br addr ja ip route get, testaa yhdyskäytävää pingillä ja selvitä, säilyykö muutos verkkopalvelun tai koneen uudelleenkäynnistyksessä.
Harjoitus B – Pysyvä konfiguraatio
Tee sama pysyvästi käytössä olevan jakelun oikealla menetelmällä: Alpine /etc/network/interfaces, Ubuntu Server Netplan tai Linux Mint/Ubuntu Desktop NetworkManager. Varmista käynnistyksen jälkeen ip addr, ip route ja DNS.
Harjoitus C – Väärä VLAN
Siirrä laboratorioportti väärään VLANiin ja tutki, näkyvätkö ARP Request -kehykset ja saadaanko Reply. Tarkista lisäksi Cisco-kytkimeltä show interfaces status, show vlan brief ja show mac address-table dynamic.
Harjoitus D – TCP-vianrajaus
Käynnistä testipalvelu ensin osoitteessa 127.0.0.1 ja sitten osoitteessa 0.0.0.0. Vertaa ss -lntup, nc -vz ja tcpdump -havaintoja. Tee johtopäätös siitä, miksi palvelu voi toimia paikallisesti mutta ei verkon yli.
Muistisääntö: ip näyttää ja muuttaa ytimen tämänhetkistä verkkotilaa. Pysyvät asetukset tehdään järjestelmän varsinaiseen verkonhallintaan. tcpdump osoittaa, mitä paketteja valitulla rajapinnalla todella näkyy – mutta ei yksin kerro, mitä tapahtuu muualla verkossa.