Wie schließe ich einen offenen Port in Ubuntu?

31

Ich benötige einen Befehl, um alle offenen Ports in meinem PC aufzulisten, und einen weiteren Befehl, um einen Port zu schließen.

Irgendwelche Vorschläge?

Ich muss den Port einiger Anwendungen schließen.

nux
quelle

Antworten:

34

netstat kann verwendet werden, um die Ports stat zu sehen.

sudo netstat -lnp

Um all l istening Ports n Umbren mit dem p rocess auf jedem verantwortlich. Beenden oder beenden Sie den Vorgang, um den Port zu schließen. ( kill, pkill...)

Ohne Prozessabbruch ist das nicht möglich! . Siehe Manuelles Schließen eines Ports über die Befehlszeile . Auf andere Weise können Sie nach einer Firewall-Lösung suchen (indem Sie diesen Port vom Netzwerk trennen).

user.dz
quelle
Ich muss den Port schließen, aber ohne die Anwendung zu
beenden
Es ist möglich, einen Port als externen Port zu schließen.
Sergzach
13
sudo ufw allow 22

sudo ufw deny 22
bemonolit
quelle
12

Zum Schließen des offenen Ports in Ubuntu können Sie den folgenden Befehl verwenden

sudo kill $(sudo lsof -t -i:3000)

Anstelle von können 3000Sie auch Ihre Portnummer angeben

lsof Der Befehl gibt Informationen über die vom Prozess geöffnete Datei aus

-t : Dieses Flag gibt an, dass lsof nur eine knappe Ausgabe mit Prozess-IDs und keinen Header erzeugen soll - z. B. damit die Ausgabe an kill (1) weitergeleitet wird. Diese Option wählt die Option -w aus.

-i : Dieses Flag wählt die Liste der Dateien aus, deren Internetadresse mit der in i angegebenen Adresse übereinstimmt. Wenn keine Adresse angegeben ist, wird mit dieser Option die Liste aller Internet- und x.25-Netzwerkdateien (HP-UX) ausgewählt.

uzaif
quelle
8

Mit iptables können Sie den Port auf Netzwerkebene blockieren, ohne die Anwendung schließen zu müssen. Der Port wird weiterhin als offen angezeigt, ist jedoch nicht erreichbar.

alternativ ist dies von der Anwendung abhängig, einige erlauben das Deaktivieren eines Ports (denken Sie an Dovecot und den Pop3- oder Imap-Port), andere nicht. Einige Anwendungen können auch so konfiguriert werden, dass sie nur den lokalen Host oder eine bestimmte Adresse überwachen.

Sonstiges
quelle
6

Sie können netstat -nalpund lsof -i:portTools verwenden, um Prozesse / Binärdateien hinter offenen Ports zu identifizieren.

Wenn Sie den Port schließen möchten, müssen Sie den Prozess beenden oder den relativen Dienst beenden. Wenn Sie Dienste nur für Ihre lokale Box ausführen möchten, können Sie den jeweiligen Dienst so konfigurieren, dass er auf localhost / 127.0.0.1 nicht auf allen verfügbaren (0.0.0.0) ips lauscht.

Nischay
quelle
1

Wenn Ihr Port geöffnet wurde, weil ein Dienst ausgeführt wurde, z. B. vsftpd für FTP, können Sie den Dienst beenden und dann deaktivieren, damit auch die ausführbare Datei, die sich auf den Dienst bezieht, beendet wird. In Debian-Basissystemen können Sie die folgenden Befehle ausführen, um einen Dienst zu zerstören:

service SERVICENAME stop
systemctl disable SERVICENAME

Viel Glück

Ehsan Ahmadi
quelle
Vielen Dank. Ich habe den Namen des Dienstes überprüft sudo netstat -lnpund Ihre vorgeschlagenen Befehle ausgeführt, um den Port 22 zu stoppen :)
Rishabh Agrahari
1

So zeigen Sie Listen aller offenen Ports an:

netstat -lnp

So schließen Sie einen offenen Port:

fuser -k port_no/tcp

Beispiel:

fuser -k 8080/tcp

In beiden können Sie sudobei Bedarf verwenden.

Atequer Rahman
quelle