Verkkotoiminnan seuraaminen Linux-järjestelmässä

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

Miten valvoa verkon toimintaa Linux-järjestelmässä

Ohjelmistovaatimukset ja käytetyt konventiot

Ohjelmistovaatimukset ja Linuxin komentorivikonventiot
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
Etsitään Linux-järjestelmäanalyytikkoa !
UAF Geophysical Institute, etsii kokenutta Linux-järjestelmäanalyytikkoa liittyäkseen tutkimuskyberinfrastruktuurin analyytikkojen ja insinöörien tiimiinsä. SIJAINTI: Fairbanks, Alaska, USA
HAKEMUS
HUOMAUTUS
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.

netstat -tulpen output

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ätcpjaudp) ja kunLocal Addresson 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.

netstat -atupen output

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

sudo netstat -atupen | grep ESTABLISHED ulostulo

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ä.

Johtopäätökset

Vastaa

Sähköpostiosoitettasi ei julkaista.