On monia syitä, miksi haluat ehkä seurata verkkotoimintaa Linux-järjestelmässäsi. Saatat olla selvittämässä verkko-ongelmaa, haluat ehkä tarkistaa, etteivät haitalliset sovellukset aiheuta epäilyttävää verkkoaktiviteettia, tai haluat ehkä yksinkertaisesti tietää, soittaako jokin prosessi kotiin. Oli syy mikä tahansa, tässä on muutamia menetelmiä, joilla voit nähdä, mitkä prosessit järjestelmässäsi harjoittavat verkkotoimintaa ja kenen kanssa ne kommunikoivat.
Tässä opetusohjelmassa opit:
- Miten verkkoyhteyksiä ja kuuntelevia palveluita seurataan netstatilla
- Miten verkkoyhteyksiä ja kuuntelevia palveluita seurataan lsofilla
- Miten verkkoyhteyksiä ja kuuntelevia palveluita seurataan ifconfigilla
- Mitkä ovat työkaluja, joiden avulla voit tutkia dataa, joka on verkon kautta lähetettävää dataa

Ohjelmistovaatimukset ja käytetyt konventiot
Kategoria | Tarpeet, Käytetyt konventiot tai ohjelmistoversio |
---|---|
Järjestelmä | Jakelusta riippumaton |
Ohjelmisto | netstat, lsof, ifconfig, wireshark, tcpdump |
Muut | Oikeutettu pääsy Linux-järjestelmään pääkäyttäjänä tai sudo -komennolla. |
Sopimukset | # – edellyttää, että annetut linux-komennot suoritetaan pääkäyttäjän oikeuksin joko suoraan pääkäyttäjänä tai sudo -komennon avulla$ – edellyttää, että annetut linux-komennot suoritetaan tavallisena ei-oikeutettuna käyttäjänä |
Netstat
Netstat
on tehokas apuohjelma, joka pystyy tulostamaan verkkoyhteyksien, reititystaulukot, liitäntätilastot, masquerade-yhteydet ja multicast-jäsenyydet. Käytämme sitä edelliseen.
Netstatin asentaminen
Debianissa ja Debianiin perustuvissa järjestelmissä, kuten Ubuntussa, käytä apt:tä.
# apt install net-tools
Red Hat Enterprise Linuxissa ja Red Hatiin perustuvissa järjestelmissä käytä yum:ia,
# yum install net-tools
Arch:iin perustuvissa järjestelmissä pacman:ia.
# pacman -S net-tools
UAF Geophysical Institute, etsii kokenutta Linux-järjestelmäanalyytikkoa liittyäkseen tutkimuskyberinfrastruktuurin analyytikkojen ja insinöörien tiimiinsä. SIJAINTI: Fairbanks, Alaska, USA
HAKEMUS
Seuraavissa esimerkeissä käytämme tuoretta asennettua RHEL 8:aa, joka on käynnissä VirtualBoxissa ja johon on asennettu vieraslisäykset
Katsellaan kuuntelevia prosesseja
Katsotaanpa ensiksi prosesseja, jotka kuuntelevat yhteyksien ottamista. Tätä varten kirjoitetaan seuraava komento.
$ sudo netstat -tulpen
Tässä komennossa t
näyttää TCP
yhteydet, u
näyttää UDP-yhteydet, l
näyttää vain kuuntelevat pistorasiat, p
näyttää ohjelman, johon yhteys kuuluu,e
näyttää laajennetut tiedot ja n
edustaa osoitteet, käyttäjät ja portit numeerisesti.

Kun tarkastellaan asiakas-palvelin-mallia, johon useimmat verkko-ohjelmistot perustuvat, kuuntelevia prosesseja voidaan ajatella ohjelmina, jotka ovat ”palvelin”-tilassa. Tässä tulosteessa ei ole mitään yllättävää, kun otetaan huomioon asetuksemme. Nämä ovat kaikki prosessit, joiden voisi olettaa kuuntelevan verkkoyhteyksiä tuoreessa RHEL 8 -asennuksessa, joka toimii tilassaVirtualBox
.
Jokaisesta kuuntelevasta prosessista näet käytettävän protokollan, paikallisen osoitteen ja portin, jolla se kuuntelee, käyttäjän, jolla se toimii, sekä PID:n/ohjelman nimen. Tässä on huomioitava yksi tärkeä ero. Kuntcp4
/udp4
-yhteydet (jotka on yksinkertaisesti lueteltu nimillätcp
jaudp
) ja kunLocal Address
on lueteltu nimellä0.0.0.0
, prosessi kuuntelee yhteyksiä mistä tahansa koneesta, joka voi muodostaa siihen yhteyden verkon kautta, kun taas kun se on lueteltu nimellä127.0.0.1
, se kuuntelee yhteyksiä vain localhostissa (koneessa, jossa se on käynnissä, tai itsessään), eikä siihen voi muodostaa yhteyksiä muista verkon tietokoneista. Sama ero päteetcp6
/udp6
:n kohdalla, kun verrataanLocal Address
:n::
(verkkoon päin) ja::1
(vain localhost).
Katsele kaikki verkkoyhteydet
Katsellaan nyt kaikkia nykyisiä verkkoyhteyksiä. Tätä varten annamme seuraavan komennon, joka on samanlainen kuin edellinen, paitsi että käytämme -a
tarkastellaksemme kaikkia pistorasioita eikä -l
tarkastellaksemme vain kuuntelevia pistorasioita.
$ sudo netstat -atupen
Näyttääksemme, mitkä ohjelmistot kuuntelevat yhteyksiä ”palvelimina”, tämä komento näyttää myös tällä hetkellä luodut yhteydet kyseiseen ohjelmistoon sekä kaikki luodut verkkoyhteydet, joita meillä on käyttäen ohjelmistoja, jotka toimivat ”asiakaskäyttäjinä”, kuten selaimella.

Kuvakaappauksessa huomaat 2 yhteyttä tilassaESTABLISHED
. Jälleen kerran, tässä ei ole yllätyksiä. Toinen niistä kuuluu NetworkManagerille ja toimii DHCP-asiakkaana, joka mahdollistaa verkon käytön yhdyskäytäväpalvelimelta(Tässä tapauksessa isäntäkoneelta). Toinen on SSH-yhteys koneeseen, jonka teimme VirtualBoxin ssh-palvelun portinohjauksen jälkeen. Jos olisimme nähneet tässä jotain odottamatonta, se voisi olla syy lisätutkimuksiin.
Katsele muodostettuja yhteyksiä
Olet ehkä tilanteessa, jossa haluat katsoa vain ESTABLISHED
-yhteyksiä. Tämä on yhtä helppoa kuin putkittamalla netstatin ulostulo grep:iin näin:
$ sudo netstat -atupen | grep ESTABLISHED

Syötimme yllä olevan komennon siirryttyämme wikipedia.com:iin firefoxilla, ja kuvakaappaus kaappaa firefox:in muodostamat yhteydet saavutettaessa sivusto. Kuten näet, firefox otti yhteyttä neljään palvelimeen; 91.198.174.192
, 172.217.23.100
, 216.58.215.67
ja 104.111.215.142
. Nähdäksemme, kenelle nämä palvelimet kuuluvat, voimme kysyä ip-osoitteita whois-palvelimella seuraavasti:
$ whois 91.198.174.192| less
Toimimalla näin kunkin palvelimen kohdalla paljastuu, että ne kuuluvat vastaavasti Wikimedialle, Googlelle, Googlelle ja Akamaiille. Tämä on järkevää, kun otetaan huomioon, että Wikimedia omistaa ja isännöi wikipediaa, ja on hyvin yleistä, että sivustot lataavat resursseja, joita isännöidään Googlen ja Akamain omistamilla palvelimilla. Itse asiassa wikipedian etusivun lähdekoodin tutkiminen paljastaa, että se lataa Google Play Store -sovellusmerkkiä osoitteesta google.com ja Applen AppStore -sovellusmerkkiä osoitteesta apple.com.
Navigoimalla näiden kahden sovellusmerkin url-osoitteisiin yksitellen ja antamalla edellä mainitun netstat-komennon voidaan todellakin todentaa, että niitä isännöidään Googlen ja Akamain omistamilla palvelimilla.
Jos tämä herätti kiinnostuksesi netstat
:tä kohtaan, niin meillä on artikkeli, jonka voit lukea Opi lisää netstat-komennon käytöstä
ss
Komento netstat
on pitkään ollut sysadminien suosikki, mutta se on kuitenkin hiljattain korvattu komennolla ss
, joka kehuu olevansa nopeampi, helpompi ja inhimillisempi kuin netstat
. Katsotaanpa, miten samat toiminnot, jotka suoritettiin edellä, voidaan suorittaa ss
:n avulla. Ss
:ssä on myös -e
-vaihtoehto laajennettujen tietojen tarkastelemiseksi, mutta tämä vaihtoehto on jätetty pois alla olevista esimerkeistä, koska se tuottaa lisätietoa, joka voi johtaa vähemmän luettavaan tulosteeseen.
Katsele kuuntelevia prosesseja
Katsellaksesi kaikkia kuuntelevia prosesseja kirjoita seuraava.
$ sudo ss -tlunp
Tässä komennossa t
näyttää TCP
yhteyttä, l
näyttää vain kuuntelevat pistorasiat, u
näyttää UDP-yhteydet, n
esittää osoitteet, käyttäjät ja portit numeerisesti ja p
näyttää ohjelman, johon yhteys kuuluu.
Katsele kaikki verkkoyhteydet
Katsellaksesi kaikkia verkkoyhteyksiä kirjoita seuraava, jossa a
korvaa l
ja näyttää kaikki verkkopistorasiat, ei vain kuuntelevat.
$ sudo ss -taunp
Katsele muodostetut yhteydet
Jos -a
tai -l
ei ole mukana, ss
näyttää vain muodostetut yhteydet. Nähdäksesi vain muodostuneet yhteydet kirjoita seuraava.
$ sudo ss -tunp
lsof
Siltä varalta, että netstat
ja ss
eivät olisi riittäneet sinulle, esittelemme lsof
. Lsof
käytetään avointen tiedostojen luettelointiin. GNU/Linux peri UNIXin suunnitteluperiaatteen, jonka mukaan kaikki on tiedostoa; tämä koskee myös verkkoyhteyksiä. Tämän seurauksena lsof
:n avulla voidaan tarkastella verkon toimintaa samalla tavalla kuin edellä mainituilla komennoilla.
Katsele kaikki verkkoyhteydet
Katsellaksesi kaikkia verkkoyhteyksiä kirjoita seuraava.
$ sudo lsof -nP -i
Tässä komennossa n
edustaa osoitteita numeerisesti, P
edustaa portteja numeerisesti ja i
estää sellaisten avointen tiedostojen listaamisen, joita ei pidetä verkkotiedostoina.
Näkymä muodostuneista yhteyksistä
Katsellaksesi vain muodostuneita yhteyksiä kirjoita seuraava komento, jossa lisäkytkimet listaavat kaikki muodostuneet TCP
yhteydet.
$ sudo lsof -nP -iTCP -sTCP:ESTABLISHED
Katsele kuuntelevia prosesseja
Katsellaksesi kuuntelevia prosesseja lsof
:n avulla kirjoita seuraava.
$ sudo lsof -nP -iTCP -sTCP:LISTEN
Tällöin kaikki prosessit, jotka kuuntelevat UDP:n kautta, jäävät näkemättä, joten voi olla suotavaa kirjoittaa sen sijaan seuraava, jotta myös ne tulevat mukaan.
$ sudo lsof -nP -i | grep 'LISTEN\|UDP'
Verkon kautta lähetettävän datan valvonta
Olemme nähneet, miten netstat
, ss
ja ifconfig
:n avulla voidaan valvoa, mitä verkkoyhteyksiä muodostetaan ja keneen, mutta usein on toivottavaa nähdä tarkalleen, mitä dataa verkon kautta lähetetään. Tämän tavoitteen saavuttamiseksi tarvitaan sovelluksia, jotka pystyvät nuuskimaan paketteja. Kaksi tähän erikoistunutta ohjelmaa ovat tcpdump
ja wireshark
.
Olemme aiemmin kirjoittaneet oppaita Wiresharkin asentamisesta RHEL 8:aan, Verkkoprotokolla-analysaattorin Wiresharkin perusteet Linuxissa, Pakettien suodattaminen Wiresharkissa Kali Linuxissa, ja Linux-järjestelmän ja -laitteiston tarkkailu tehokkaaksi tehtyä Network Monitoring
-osio sisältää mukavan esittelyn tcpdump
:stä.