Vad betyder öppen hamn??
Innan vi går djupare in i att kontrollera öppna portar, låt oss först veta vad öppna portar betyder. En öppen port eller en lyssnande port är den port där en applikation körs. Den pågående applikationen lyssnar på någon port, och vi kan kommunicera med den applikationen via den lyssnande porten. Om ett program körs på en port och vi försöker köra ett annat program på samma port, kommer kärnan att kasta ett fel. Det är en av många anledningar till att vi söker efter öppna portar innan vi kör applikationer.
Lista öppna portar med hjälp av nmap
Network Mapper, känd som nmap, är en öppen källkod och ett gratis verktyg som används för att skanna portar på ett system. Den används för att hitta sårbarheter, upptäcka nätverk och hitta öppna portar. I det här avsnittet använder vi nmap för att få en lista över öppna portar i ett system. Uppdatera först cache på Ubuntu innan du installerar nmap:
[e-postskyddad]: ~ $ sudo apt-get update -yNmap kan installeras med hjälp av följande kommando i terminalen:
[e-postskyddad]: ~ $ sudo apt-get install nmap -yEfter installation av nmap, verifiera installationen genom att kontrollera versionen av nmap:
[e-postskyddad]: ~ $ nmap --version
Om det ger versionen av nmap är den perfekt installerad, annars kan du försöka ovanstående kommandon igen för att installera nmap ordentligt. Nmap används för att utföra flera relaterade till nätverk, och portavsökning är en av dessa uppgifter. Nmap-verktyget används tillsammans med många alternativ. Vi kan få en lista över alla tillgängliga alternativ genom att använda följande kommando:
[e-postskyddad]: ~ $ man nmapSå, för att skanna din lokala värd, använd det gripna kommandot nedan:
[e-postskyddad]: ~ $ sudo nmap localhost
Den visar alla öppna portar på localhost, som visas i bilden ovan. Vi kan också använda nmap för att skanna fjärrvärdar:
[e-postskyddad]: ~ $ sudo nmap 93.184.216.34Vi kan också använda fjärrserverns värdnamn istället för en IP-adress:
[e-postskyddad]: ~ $ sudo nmap www.exempel.comNmap-kommandot kan också användas för att skanna en rad IP-adresser. Ange intervallet för IP-adresser i kommandot, som i kommandot nedan:
[e-postskyddad]: ~ $ sudo nmap 192.168.1.1-10Ovanstående kommando skannar alla IP-adresser från 192.168.1.1 till 192.168.1.10 och resultatet visas i terminalen. För att skanna portar i ett undernät kan vi använda nmap enligt följande:
[e-postskyddad]: ~ $ sudo nmap 192.168.1.1/24Ovanstående kommando skannar alla värdar med IP-adresser i det undernät som definierats i kommandot.
Ibland måste du skanna portar på slumpmässiga värdar, som finns i olika undernät och inte är i sekvens, då är den bästa lösningen att skriva en värdfil där alla värdnamn skrivs, åtskilda av ett eller flera mellanslag, flikar eller nya rader. Den här filen kan användas med nmap enligt följande:
[e-postskyddad]: ~ $ sudo nmap -iL-värdar.Text
Vi kan använda nmap för att skanna en enda port i systemet genom att specificera porten med flaggan '-p', tillsammans med nmap, som i följande kommando:
[e-postskyddad]: ~ $ sudo nmap -p 80 localhost
Utbud av portar kan också skannas på ett system med hjälp av nmap på följande sätt:
[e-postskyddad]: ~ $ sudo nmap -p 80-85 localhost
Vi kan skanna alla portar i ett system med nmap:
[e-postskyddad]: ~ $ sudo nmap -p- localhost
För att få en lista över de vanligaste öppna portarna på ditt system kan du använda kommandot nmap med flaggan '-F':
[e-postskyddad]: ~ $ sudo nmap -F localhost
TCP-portar kan skannas på systemet med nmap genom att bara lägga till '-T' -flaggan tillsammans med nmap-kommandot:
[e-postskyddad: ~ $ sudo nmap -sT localhost
På samma sätt, för UDP-portar kan du använda flaggan '-U' med kommandot nmap:
[e-postskyddad]: ~ $ sudo nmap -sU localhost
Lista öppna portar med lsof
Kommandot lsof, även känt som 'lista öppna filer', används för att få information om öppna filer som används av olika processer i UNIX och LINUX som operativsystem. För de flesta Linux-distroer är det här verktyget förinstallerat. Vi kan verifiera installationen av lsof genom att bara kontrollera dess version:
[e-postskyddad]: ~ $ lsof -v
Om den inte visar versionen är lsof inte installerat som standard. Vi kan fortfarande installera det med följande kommandon i terminalen:
[e-postskyddad]: ~ $ sudo apt-get update -y[e-postskyddad]: ~ $ sudo apt-get install lsof
Vi kan använda kommandot lsof tillsammans med olika alternativ. Listan över alla tillgängliga alternativ kan visas med följande kommando i terminalen:
[e-postskyddad]: ~ $ man lsofNu, i det här avsnittet, kommer vi att använda lsof för att visa portar i ett system på olika sätt:
[e-postskyddad]: ~ $ sudo lsof -i
Ovanstående kommando har visat alla öppna portar. Vi kan också använda lsof-kommandot för att visa alla öppna uttag:
[e-postskyddad]: ~ $ sudo lsof -n -P | grep LYSSNA
Vi kan lista filtrerade portar baserat på ett protokoll med lsof. Kör kommandot nedan för att lista alla TCP-anslutningstyper:
[e-postskyddad]: ~ $ sudo lsof -i tcp
På samma sätt kan vi lista alla UDP-anslutningstyper med lsof på följande sätt:
[e-postskyddad]: ~ $ sudo lsof -i udp
Lista öppna portar med hjälp av netstat
Netstat, även känt som nätverksstatistik, är ett kommandoradsprogram som används för att visa detaljerad information om nätverk. Den visar både inkommande och utgående TCP-anslutningar, routingtabeller, nätverksgränssnitt etc. I det här avsnittet använder vi netstat för att lista öppna portar i ett system. Netstat-verktyget kan installeras genom att köra följande kommandon:
[e-postskyddad]: ~ $ sudo apt-get update -y[e-postskyddad]: ~ $ sudo apt-get install net-tools -y
Efter att ha kört ovanstående kommandon kan du verifiera installationen genom att kontrollera netstat-versionen:
[e-postskyddad]: ~ $ netstat --version
Om den visar versionen av nätverktyg är installationen bra, annars kör du installationskommandona igen. För att få en översikt över alla tillgängliga alternativ som kan användas, tillsammans med kommandot netstat, kör du följande kommando:
[e-postskyddad]: ~ $ man netstatVi kan få en lista över alla lyssningsportar med hjälp av kommandot netstat i Ubuntu genom att köra följande kommando:
[e-postskyddad]: ~ $ sudo netstat -l
Netstat-kommandot kan också användas för att filtrera lyssning på TCP- och UDP-portarna genom att bara lägga till en flagga tillsammans med kommandot. För att lyssna på TCP-portarna:
[e-postskyddad]: ~ $ sudo netstat -lt
Använd följande kommando för att lyssna på UDP-portarna:
[e-postskyddad]: ~ $ sudo netstat -lu
För att få en lista över alla lyssnande UNIX-portar kan du köra följande kommando i terminalen:
[e-postskyddad]: ~ $ sudo netstat -lx
Lista öppna portar med ss
SS-kommandot används för att visa information om uttag i ett Linux-system. Den visar mer detaljerad information om uttag än kommandot netstat. Kommandot ss är förinstallerat för de flesta Linux-distributioner, så du behöver inte installera det innan du använder det. Du kan få en lista över alla alternativ, som kan användas tillsammans med kommandot ss, genom att köra kommandot 'man' med ss:
[e-postskyddad]: ~ $ man ssFör att få en lista över alla anslutningar oavsett deras tillstånd, använd kommandot ss utan någon flagga:
[e-postskyddad]: ~ $ sudo ss
För att få en lista över alla lyssningsportar använder du kommandot ss med flaggan '-l'. Flaggan '-l' används för att endast visa lyssningsportar:
[e-postskyddad]: ~ $ sudo ss -l
För att få alla lyssnande TCP-portar kan vi använda flaggan '-t' och '-l' tillsammans med kommandot ss:
[e-postskyddad]: ~ $ sudo ss -lt
På samma sätt kan vi få en lista över alla lyssnande UDP-portar med kommandot ss tillsammans med '-u' och '-l' flaggan:
[e-postskyddad]: ~ $ sudo ss -lu
Kommandot ss kan också användas för att få en lista över alla anslutningar med källan eller destinationsporten. I följande exempel kommer vi att få en lista över alla anslutningar med destinationen eller källporten 22:
[e-postskyddad]: ~ $ sudo ss -at '(dport =: 22 eller sport =: 22)'
Du får en lista med alla inkommande och utgående anslutningar om du har anslutit till ett fjärrsystem med ssh.
Slutsats
För systemadministratörer, säkerhetspersonal och andra IT-relaterade personer är det viktigt att vara medveten om de öppna portarna på servrarna. Linux är rikt på de verktyg som används för att diagnostisera nätverk och ger många verktyg som kan vara till hjälp för olika typer av nätverksaktiviteter. I den här handledningen har vi använt några verktyg som netstat, ss, lsof och nmap för att söka efter öppna portar på Ubuntu. Efter att ha gått igenom den här artikeln kan du enkelt lista alla lyssningsportar på din Linux-server på många sätt.