Töten Sie einen Überwachungsport für eine bestimmte IP-Adresse

0

Ich habe einen SIP-Server mit mehreren Netzwerkschnittstellen. (virtuell) Beim Ausführen des Befehls netstat -nlput Es zeigt die alle zuhörenden IP-Adressen und Ports wie folgt.

root@DUO-CALLSERVER004:/etc/init.d# netstat -nlput
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      723/rpcbind
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      21036/freeswitch
tcp        0      0 172.20.112.238:8021     0.0.0.0:*               LISTEN      21036/freeswitch
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1835/sshd
tcp        0      0 0.0.0.0:5666            0.0.0.0:*               LISTEN      1868/nrpe
tcp        0      0 172.20.112.118:5060     0.0.0.0:*               LISTEN      21036/freeswitch
tcp        0      0 172.20.112.117:5060     0.0.0.0:*               LISTEN      21036/freeswitch
tcp        0      0 172.20.112.114:5060     0.0.0.0:*               LISTEN      21036/freeswitch
tcp        0      0 172.20.112.112:5060     0.0.0.0:*               LISTEN      21036/freeswitch
tcp        0      0 172.20.112.110:5060     0.0.0.0:*               LISTEN      21036/freeswitch
tcp        0      0 172.20.112.238:5060     0.0.0.0:*               LISTEN      21036/freeswitch
tcp        0      0 172.20.112.111:5060     0.0.0.0:*               LISTEN      21036/freeswitch
tcp        0      0 172.20.112.116:5060     0.0.0.0:*               LISTEN      21036/freeswitch
tcp        0      0 172.20.112.115:5060     0.0.0.0:*               LISTEN      21036/freeswitch
tcp        0      0 192.168.52.108:5060     0.0.0.0:*               LISTEN      21036/freeswitch
tcp6       0      0 :::111                  :::*                    LISTEN      723/rpcbind
tcp6       0      0 :::22                   :::*                    LISTEN      1835/sshd
tcp6       0      0 :::5666                 :::*                    LISTEN      1868/nrpe
udp        0      0 172.20.112.118:5060     0.0.0.0:*                           21036/freeswitch
udp        0      0 172.20.112.117:5060     0.0.0.0:*                           21036/freeswitch
udp        0      0 172.20.112.114:5060     0.0.0.0:*                           21036/freeswitch
udp        0      0 172.20.112.112:5060     0.0.0.0:*                           21036/freeswitch
udp        0      0 172.20.112.110:5060     0.0.0.0:*                           21036/freeswitch
udp        0      0 172.20.112.238:5060     0.0.0.0:*                           21036/freeswitch
udp        0      0 172.20.112.111:5060     0.0.0.0:*                           21036/freeswitch
udp        0      0 172.20.112.116:5060     0.0.0.0:*                           21036/freeswitch
udp        0      0 172.20.112.115:5060     0.0.0.0:*                           21036/freeswitch
udp        0      0 192.168.52.108:5060     0.0.0.0:*                           21036/freeswitch
udp        0      0 0.0.0.0:111             0.0.0.0:*                           723/rpcbind
udp        0      0 0.0.0.0:731             0.0.0.0:*                           723/rpcbind
udp6       0      0 :::111                  :::*                                723/rpcbind
udp6       0      0 :::731                  :::*                                723/rpcbind

Was ich möchte, ist den Port 5060 zu töten, der 172.20.112.117:5060 hört. Eine andere Gruppe von IPs listet jedoch denselben Port mit derselben PID auf. Ich will das nicht töten. Nur die IP-Adresse 172.20.112.117 muss vom 5060-Port freigegeben werden. Gibt es dafür eine Methode?

Daz
quelle
Hängt davon ab, ob verschiedene Prozesse an die verschiedenen IP-Adressen gebunden sind oder nicht. Benutzen lsof um herauszufinden, welcher Prozess abhört 172.20.112.117:5060. Wenn andere Ports nicht abgehört werden, beenden Sie sie.
dirkt
... die bequemerweise bereits in der Spalte "PID / Program" der netstat-Ausgabe angezeigt wird
grawity

Antworten:

0

Konfigurieren Sie den Prozess so, dass er nur an die richtigen Adressen bindet 0.0.0.0. Wenn der Prozess ist Freischalter Sie sollten sich die Konfiguration ansehen. Von dem Mailingliste (obwohl datiert):

Kumpel,   Direkt aus der Standardkonfiguration heraus:

<!-- bind_server_ip
   Can be an ip address, a dns name, or "auto".
   This determines an ip address available on this host to bind.
   If you are separating RTP and SIP traffic, you will want to have
   use different addresses where this variable appears.
   Used by: sofia.conf.xml dingaling.conf.xml
-->
  <X-PRE-PROCESS cmd="set" data="bind_server_ip=auto"/>

Alternativ aus dem Wiki .

Seth
quelle
Es ist interessant, dass jeder IP ein Listener hinzugefügt wird. Bei der Bindung an 0.0.0.0/all-Interfaces liegt die Bindung normalerweise bei 0.0.0.0 pro netstat. Muss eine VOIP-Sache sein.
Frank Thomas
Es ist nur meine Annahme. Es könnte falsch sein, da die config "auto" sagt, könnte es sein, was sie einrücken. Ich habe mich nicht wirklich mit den Besonderheiten dieser Software beschäftigt.
Seth
1
@FrankThomas: Wahrscheinlich wegen der Symmetrie mit UDP - und bei UDP wird das immer noch häufig durchgeführt, da ältere Betriebssysteme Ihnen nicht sagen können, an welche Adresse ein Paket gesendet wurde. Daher konnten Sie die Antwort nicht richtig senden. ntpd und krb5-kdc tun dies zumindest.
grawity