iptables && asterisk
-
- Beiträge: 21
- Registriert: 11.10.2005 11:57:18
iptables && asterisk
hallo allerseits
habe asterisk auf einem externen server konfiguriert, läuft. kann mich auch von überall dahin verbinden benutze SJphone unter OS X oder unter windows.
mein problem ist folgendes, in meinem netzwerk zuhause habe ich einen linux router mit iptables am laufen, der für normale anwendungen, http(s) ssh ftp ... wunderbar tut, aber leider für voip nicht. habe port 5060 im prerouting freigegeben und leite den an die adresse meiner WinXP kiste, aber leider kann sich mein sip client nicht am asterisk authentifizieren. standardmäßig sind alle meine ports geblockt. müsste ich ausser dem 5060 für sip noch mehr aufmachen, und auf welchem protokoll läuft das dann ...
vll. findet sich ja jemand der ein ähnlich gelagertes problem schon gelöst hat und mir weiterhelfen kann
mfg leifericcson
habe asterisk auf einem externen server konfiguriert, läuft. kann mich auch von überall dahin verbinden benutze SJphone unter OS X oder unter windows.
mein problem ist folgendes, in meinem netzwerk zuhause habe ich einen linux router mit iptables am laufen, der für normale anwendungen, http(s) ssh ftp ... wunderbar tut, aber leider für voip nicht. habe port 5060 im prerouting freigegeben und leite den an die adresse meiner WinXP kiste, aber leider kann sich mein sip client nicht am asterisk authentifizieren. standardmäßig sind alle meine ports geblockt. müsste ich ausser dem 5060 für sip noch mehr aufmachen, und auf welchem protokoll läuft das dann ...
vll. findet sich ja jemand der ein ähnlich gelagertes problem schon gelöst hat und mir weiterhelfen kann
mfg leifericcson
the tendency is to push it as far as you can
-
- Beiträge: 21
- Registriert: 11.10.2005 11:57:18
Eigentlich ganz einfach: du packst ans Ende einer Regel ein -j LOG.
Pakete, die auf die Regel matchen werden dann geloggt.
Wie du das bei dir am schlauesten machst, kann ich dir nicht sagen, da ich nicht weiss, wie dein Regelset aussieht.
Mal angenommen, du nutzt fuers Verwerfen von unerwuenschten Paketen die Default-Policy DROP, dann sollte es so klappen:
Damit loggst du alle Pakete, die in den Chains INPUT/OUTPUT noch nicht auf eine andere Regel gemachted haben.
Wenn du das ganze selber dropst (also mit -j REJECT oder -j DROP), dann musst du die LOG-Regeln vor diesen anderen Regeln einfuegen.
Pakete, die auf die Regel matchen werden dann geloggt.
Wie du das bei dir am schlauesten machst, kann ich dir nicht sagen, da ich nicht weiss, wie dein Regelset aussieht.
Mal angenommen, du nutzt fuers Verwerfen von unerwuenschten Paketen die Default-Policy DROP, dann sollte es so klappen:
Code: Alles auswählen
iptables -A INPUT -j LOG
iptables -A OUTPUT -j LOG
Wenn du das ganze selber dropst (also mit -j REJECT oder -j DROP), dann musst du die LOG-Regeln vor diesen anderen Regeln einfuegen.
-
- Beiträge: 21
- Registriert: 11.10.2005 11:57:18
wunderbar im logging ist nichts aufgetaucht, und mein asterisk will an 10.10.10.2 (rechner mit softphone) übertragen, dementsprechend würde das prerouting und portforwarding funktionieren, aber eigtl. hätte ich gerne das er an meine offizielle ip überträgt und von dort dann das ganze weiter an 10.10.10.2:5060 geschickt wird
mfg leifericcson
mfg leifericcson
the tendency is to push it as far as you can
- chroiss
- Beiträge: 332
- Registriert: 29.10.2004 09:29:43
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: BREMEN (in Wellington,NZ a.D) (in OLDENBURG a.D.) (in BREMEN a.D.) (in COLOGNE a.D.)
Das Steuerungsprotokoll SIP läuft auf 5060 UDP.
Du brauchst diesen Port nicht prerouten.
Dein CLIENT versucht sich ja zu verbinden und initiiert damit die Verbindung. Da du aller wahrscheinlichkeit mit masquerading arbeitest , findet dein router den Rückweg automatisch.
Dein externer Server muss natürlich den Port 5060 UDP aufhaben....
Doch wenn du zuhause die Forward Kette vorerst komplett auf Drop gesetzt hast , musst du deinem Rechner das natürlich wieder explizit erlauben...
( Hat man "normalerweise" aber aus... bzw. auf ACCEPT)
Um Gespräche zu führen musst du zusätzlich aber noch an die RTP Ports denken ( siehe /etc/asterisk/rtp.conf)
Kurze Zusammenfassung :
Auf Router die Policy Forward ACCEPT setzen
Auf externen Rechner 5060 UDP aufmachen
und schon solltest du dich wenigstens einloggen können...
gruss chroiss
Du brauchst diesen Port nicht prerouten.
Dein CLIENT versucht sich ja zu verbinden und initiiert damit die Verbindung. Da du aller wahrscheinlichkeit mit masquerading arbeitest , findet dein router den Rückweg automatisch.
Dein externer Server muss natürlich den Port 5060 UDP aufhaben....
Doch wenn du zuhause die Forward Kette vorerst komplett auf Drop
Code: Alles auswählen
iptables -t filter -P FORWARD DROP
Code: Alles auswählen
iptabels -A FORWARD -i $INTDEV -p udp -s interne_ip --dport 5060 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $EXTDEV -o $INTDEV -d interne_ip -p udp --dport 5060 -j ACCEPT
Um Gespräche zu führen musst du zusätzlich aber noch an die RTP Ports denken ( siehe /etc/asterisk/rtp.conf)
Kurze Zusammenfassung :
Auf Router die Policy Forward ACCEPT setzen
Auf externen Rechner 5060 UDP aufmachen
und schon solltest du dich wenigstens einloggen können...
gruss chroiss
"The only secure computer is one that's unplugged, locked in a safe, and buried 20 feet under the ground in a secret location... and I'm not even too sure about that one"--Dennis Huges, FBI.
-
- Beiträge: 21
- Registriert: 11.10.2005 11:57:18
ok nochmal
hier meine iptables regeln:
export PATH=$PATH:/usr/local/sbin/iptables
# Firewall initialization...
# Clear all the firewall rules...
iptables --flush
# Zero the packets and byte counters in all chains...
iptables --zero
#Prerouting
# Masqerading...
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -I POSTROUTING -j MASQUERADE -d ! 10.10.10.0/24
iptables -t nat -I POSTROUTING -j MASQUERADE -d ! 10.10.11.0/24
iptables -A FORWARD -j ACCEPT -s 10.10.10.0/24 -d 0.0.0.0/0
iptables -A FORWARD -j ACCEPT -s 0.0.0.0/0 -d 10.10.10.0/24
iptables -A FORWARD -i eth0 -p udp -s 10.10.10.2 --dport 5060 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -d 10.10.10.2 -p udp --dport 5060 -j ACCEPT
#iptables -A FORWARD -j ACCEPT -s 10.10.11.0/24 -d 0.0.0.0/0
#iptables -A FORWARD -j ACCEPT -s 0.0.0.0/0 -d 10.10.11.0/24
iptables -A FORWARD -j DROP
#tcp & udp allow
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -j ACCEPT -o eth1
iptables -A INPUT -j ACCEPT -i lo
iptables -A OUTPUT -j ACCEPT -o lo
iptables -A INPUT -j ACCEPT -i eth0
iptables -A OUTPUT -j ACCEPT -o eth0
iptables -A INPUT -j ACCEPT -i eth2
iptables -A OUTPUT -j ACCEPT -o eth2
iptables -A INPUT -j ACCEPT -p tcp -i eth1 --destination-port 4242
iptables -A INPUT -j ACCEPT -p tcp -i eth1 --destination-port 6889
iptables -A INPUT -j ACCEPT -p tcp -i eth0 --destination-port 67
iptables -A OUTPUT -j ACCEPT -p tcp -o eth0 --destination-port 67
iptables -A INPUT -j ACCEPT -p udp -i eth0 --destination-port 67
iptables -A OUTPUT -j ACCEPT -p udp -o eth0 --destination-port 67
iptables -A INPUT -j ACCEPT -p tcp -i eth0 --destination-port 68
iptables -A OUTPUT -j ACCEPT -p tcp -o eth0 --destination-port 68
iptables -A INPUT -j ACCEPT -p udp -i eth0 --destination-port 68
iptables -A OUTPUT -j ACCEPT -p udp -o eth0 --destination-port 68
iptables -A OUTPUT -j ACCEPT -p tcp -o eth1 --destination-port 21
iptables -A OUTPUT -j ACCEPT -p udp -o eth1 --destination-port 21
iptables -A INPUT -j ACCEPT -p tcp -i eth1 --destination-port 21
iptables -A INPUT -j ACCEPT -p tcp -i eth1 --destination-port 21
iptables -A INPUT -j ACCEPT -p tcp -i eth1 --destination-port 113
iptables -A INPUT -j ACCEPT -p tcp -i eth1 --destination-port 143
iptables -A INPUT -j ACCEPT -p tcp -i eth1 --destination-port 993
iptables -A INPUT -j ACCEPT -p tcp -i eth1 --destination-port 123
iptables -A INPUT -j ACCEPT -p udp -i eth1 --destination-port 123
iptables -P INPUT DROP
iptables -P OUTPUT DROP
laut aussage meines asterisk servers komme ich zu ihm hin, aber asterisk zeigt mir immer noch meine interne ip adresse an. als softphone client benutze ich das sjphone von http://www.sjlabs.com
wäre cool wenn euch noch was einfällt
mfg leifericcson
hier meine iptables regeln:
export PATH=$PATH:/usr/local/sbin/iptables
# Firewall initialization...
# Clear all the firewall rules...
iptables --flush
# Zero the packets and byte counters in all chains...
iptables --zero
#Prerouting
# Masqerading...
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -I POSTROUTING -j MASQUERADE -d ! 10.10.10.0/24
iptables -t nat -I POSTROUTING -j MASQUERADE -d ! 10.10.11.0/24
iptables -A FORWARD -j ACCEPT -s 10.10.10.0/24 -d 0.0.0.0/0
iptables -A FORWARD -j ACCEPT -s 0.0.0.0/0 -d 10.10.10.0/24
iptables -A FORWARD -i eth0 -p udp -s 10.10.10.2 --dport 5060 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -d 10.10.10.2 -p udp --dport 5060 -j ACCEPT
#iptables -A FORWARD -j ACCEPT -s 10.10.11.0/24 -d 0.0.0.0/0
#iptables -A FORWARD -j ACCEPT -s 0.0.0.0/0 -d 10.10.11.0/24
iptables -A FORWARD -j DROP
#tcp & udp allow
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -j ACCEPT -o eth1
iptables -A INPUT -j ACCEPT -i lo
iptables -A OUTPUT -j ACCEPT -o lo
iptables -A INPUT -j ACCEPT -i eth0
iptables -A OUTPUT -j ACCEPT -o eth0
iptables -A INPUT -j ACCEPT -i eth2
iptables -A OUTPUT -j ACCEPT -o eth2
iptables -A INPUT -j ACCEPT -p tcp -i eth1 --destination-port 4242
iptables -A INPUT -j ACCEPT -p tcp -i eth1 --destination-port 6889
iptables -A INPUT -j ACCEPT -p tcp -i eth0 --destination-port 67
iptables -A OUTPUT -j ACCEPT -p tcp -o eth0 --destination-port 67
iptables -A INPUT -j ACCEPT -p udp -i eth0 --destination-port 67
iptables -A OUTPUT -j ACCEPT -p udp -o eth0 --destination-port 67
iptables -A INPUT -j ACCEPT -p tcp -i eth0 --destination-port 68
iptables -A OUTPUT -j ACCEPT -p tcp -o eth0 --destination-port 68
iptables -A INPUT -j ACCEPT -p udp -i eth0 --destination-port 68
iptables -A OUTPUT -j ACCEPT -p udp -o eth0 --destination-port 68
iptables -A OUTPUT -j ACCEPT -p tcp -o eth1 --destination-port 21
iptables -A OUTPUT -j ACCEPT -p udp -o eth1 --destination-port 21
iptables -A INPUT -j ACCEPT -p tcp -i eth1 --destination-port 21
iptables -A INPUT -j ACCEPT -p tcp -i eth1 --destination-port 21
iptables -A INPUT -j ACCEPT -p tcp -i eth1 --destination-port 113
iptables -A INPUT -j ACCEPT -p tcp -i eth1 --destination-port 143
iptables -A INPUT -j ACCEPT -p tcp -i eth1 --destination-port 993
iptables -A INPUT -j ACCEPT -p tcp -i eth1 --destination-port 123
iptables -A INPUT -j ACCEPT -p udp -i eth1 --destination-port 123
iptables -P INPUT DROP
iptables -P OUTPUT DROP
laut aussage meines asterisk servers komme ich zu ihm hin, aber asterisk zeigt mir immer noch meine interne ip adresse an. als softphone client benutze ich das sjphone von http://www.sjlabs.com
wäre cool wenn euch noch was einfällt
mfg leifericcson
the tendency is to push it as far as you can
- chroiss
- Beiträge: 332
- Registriert: 29.10.2004 09:29:43
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: BREMEN (in Wellington,NZ a.D) (in OLDENBURG a.D.) (in BREMEN a.D.) (in COLOGNE a.D.)
sowas habe ich noch nie gesehen ,komische schreibweise....
mach mal aus
und testweise aus
ein
insgesamt sieht deine firewall n wenig seltsam aus...
will ich mich aber nich einmischen ...
chroiss
mach mal aus
Code: Alles auswählen
iptables -t nat -I POSTROUTING -j MASQUERADE -d ! 10.10.10.0/24
iptables -t nat -I POSTROUTING -j MASQUERADE -d ! 10.10.11.0/24
Code: Alles auswählen
iptables -t nat -A POSTROUTING -o $EXTDEV -s 10.10.10.0/24 -j MASQUERADE
iptables -t nat -A POSTROUTING -o $EXTDEV -s 10.10.11.0/24 -j MASQUERADE
Code: Alles auswählen
iptables -A FORWARD -j DROP
Code: Alles auswählen
iptables -A FORWARD -j ACCEPT
will ich mich aber nich einmischen ...
chroiss
"The only secure computer is one that's unplugged, locked in a safe, and buried 20 feet under the ground in a secret location... and I'm not even too sure about that one"--Dennis Huges, FBI.
-
- Beiträge: 21
- Registriert: 11.10.2005 11:57:18
hi chroiss
danke für deine unterstützung, aber leider hat das ganze noch immer nicht zu einem ergebnis geführt. inwiefern ist die schreibweise meiner regeln ungewöhnlich?
eigtl. sollte ich das problem doch auch mit einem stun server lösen können nur leider kam mein debian paket ohne man pages daher. weiß jemand wo ich ne bsp. config finden kann. falls jemand noch eine idee zu meinem iptables problem hat werde ich das auch gerne versuchen.
mfg leifericcson
danke für deine unterstützung, aber leider hat das ganze noch immer nicht zu einem ergebnis geführt. inwiefern ist die schreibweise meiner regeln ungewöhnlich?
eigtl. sollte ich das problem doch auch mit einem stun server lösen können nur leider kam mein debian paket ohne man pages daher. weiß jemand wo ich ne bsp. config finden kann. falls jemand noch eine idee zu meinem iptables problem hat werde ich das auch gerne versuchen.
mfg leifericcson
the tendency is to push it as far as you can
-
- Beiträge: 21
- Registriert: 11.10.2005 11:57:18
danke nochmal an alle die mir geholfen haben, aber zu meiner schande war mein denkansatz falsch, es lag nicht an der firewall, sondern an der konfiguration des asterisk users.
seit ich in die sip.conf bei dem entsprechenden user nat=yes eingetragen habe, kann ich mich regisitrieren, jetzt kommt dann hoffentlich das sprechen dran, und danach das videophonieren.
N-JoY leifericcson
seit ich in die sip.conf bei dem entsprechenden user nat=yes eingetragen habe, kann ich mich regisitrieren, jetzt kommt dann hoffentlich das sprechen dran, und danach das videophonieren.
N-JoY leifericcson
the tendency is to push it as far as you can