Genral:
După o căutare de două zile pe care am făcut-o în jurul problemei, am descoperit ca Michael Hampton și Peter Zhabin că nu există o soluție existentă care să arate un ID de proces al nucleului printr-un port de ascultare.
În plus, în acele două zile am căutat și câteva comenzi
combinații care pot aduce răspunsul dorit și nu au găsit nicio modalitate simplă sau convenabilă de a face acest lucru.
Soluția pe care am creat-o este preliminară și sunt sigur că poate fi îmbunătățită de membrii comunității.
Reduceri pentru localizarea procesului
- Procesul rulează la nivel de kernel sau la orice alt nivel care evitând ca procesul să aibă un id (PID).
- Id-ul procesului sau programul procesului nu a fost găsit de ieșirea comenzilor date:
lsof
, netstat
, ss
, cuptor
.
- Am găsit un port de ascultare din ieșirea comenzilor de mai sus - Dar nu putem configura programul sau codul pid care a cauzat ascultarea.
Despre grep
:
Noi vom folosi grep
pentru a găsi mai multe informații despre portul deschis.
grep
- linii de imprimare care se potrivesc cu modele.
Din grep
pagina de manual prin om grep
comanda.
DESCRIERE
grep caută PATTERNE în fiecare FIȘIER. PATTERNS este unul sau mai multe
modele separate prin caractere newline, iar grep imprimă fiecare linie
care se potrivește cu un model. În mod obișnuit, MODELE ar trebui să fie citate atunci când grep
este folosit într-o comandă shell.
- Aici este un subiect grozav despre cum se utilizează comanda corect și eficient.
Cum să localizați PID-ul sau programul care folosește portul dat prin grep
:
În cazul meu execut sudo grep --exclude-dir={sys,proc} -rnw / -e 51820 | grep -i port
a rezolvat problema și a arătat multe informații despre programul care folosește portul.
Ieșirea dată:
iptables.service:6:ExecStart=/usr/sbin/iptables -I INPUT -p udp --dport 51820 -j ACCEPT
/home/username/wireguard-install.sh:238: citiți -p „Port [51820]:” port
/home/username/wireguard-install.sh:241: citiți -p „Port [51820]:” port
/home/username/wireguard-install.sh:243: [[ -z „$port” ]] && port="51820"
/usr/share/doc/netplan/examples/wireguard.yaml:9: port: 51820
/etc/wireguard/wg0.conf:8:ListenPort = 51820
/etc/systemd/system/wg-iptables.service:6:ExecStart=/usr/sbin/iptables -I INPUT -p udp --dport 51820 -j ACCEPT
/etc/systemd/system/wg-iptables.service:10:ExecStop=/usr/sbin/iptables -D INPUT -p udp --dport 51820 -j ACCEPT
Motivul pentru numeroasele steaguri este că alte combinații pe care le-am încercat au avut o cantitate mare de ieșiri nedorite.
Care sunt argumentele grep
Comanda înseamnă:
--exclude-dir
- Omite orice director de linie de comandă cu un sufix de nume care se potrivește
modelul.
Și ignorarea specifică sys
și proc
directoare în cazul nostru specific este de a evita ieșirile nedorite.
Exemplu: grep --exclude-dir={dir1,dir2}
va evita dir1 și dir2 în timpul căutării.
-r
sau -R
este recursiv.
-n
este numărul liniei.
-w
reprezintă potrivirea întregului cuvânt.
/
reprezintă directorul „cel mai înalt” pentru a începe căutarea de sus în jos.
-e
- este modelul folosit în timpul căutării.
51820
în cazul nostru specific este numărul portului care a fost găsit de una dintre comenzile de monitorizare a rețelei de mai sus.
|
- este conducta de redirecționare a ieșirii primei părți de comandă către a doua.
În cazul nostru: redirecționare sudo grep --exclude-dir={sys,proc} -rnw / -e 51820
ieșire la următoarea comandă grep -i port
-i
- Ignorați diferențele dintre majuscule și minuscule în modele și datele de intrare, astfel încât
caractere care diferă doar în cazul în care se potrivesc între ele.
port
- Găsit pentru a restrânge rezultatele la scopul pentru care am efectuat căutarea, găsind mai multe informații despre portul specific care a fost definit după -e
steag.
Sfaturi:
- Faceți scanarea cât mai mare posibil în primii pași, pornind de la
/
director, și folosind steaguri minime pentru a filtra rezultatul, pentru a vă asigura că nu veți rata niciun detaliu pe care l-am putea obține.
- După ce ați găsit ieșirea dorită sau întâmpinați probleme cu găsirea ieșirii dorite cauzate de alocarea de ieșiri nedorite, începeți să adăugați steaguri unul câte unul.
- Specificați numărul portului ca model, la urma urmei, acesta este punctul nostru de plecare și scopul nostru final.
- Folosiți dublu
grep
comenzi care redirecționează prima scanare în port
filtru de model, ne poate identifica și accelera soluția, până la urmă căutăm un număr ca model și acest lucru poate duce la multe rezultate nedorite.
- Dacă nu puteți intra în concluzii cu rezultatul dat, faceți o căutare pe web cu cuvintele cheie alese pe care le-ați găsit.