.titleBar { margin-bottom: 5px!important; }

Gibt es in dieser Config Sicherheitslücken?

Dieses Thema im Forum "Asterisk Allgemein" wurde erstellt von t3_chris, 11 Feb. 2006.

  1. t3_chris

    t3_chris Neuer User

    Registriert seit:
    2 Jan. 2006
    Beiträge:
    40
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Tirol / Österreich
    Hallo!

    Bitte um kurze Info ob in dieser Config Sicherheitslücken bestehen:

    - Asterisk Server ist per Internet direkt erreichbar (SIP + IAX2)
    - Es gibt drei Kontexte: incoming, outgoing und internal
    - Meine internen SIP Telefone registrieren sich in internal
    - internal included incoming und outgoing
    - alle Durchwahlen sind im incoming definiert
    - der IAX2 Trunk (für alle externen = kostenpfilichtigen Verbindungen) befindet sich im Kontext outgoing
    - Die SIP Accounts verwenden sichere (=lange + zufällige) Passwörter
    - sip.conf und iax.conf haben unter [general] jeweils context=incoming


    mfg
    Christian
     
  2. kombjuder

    kombjuder IPPF-Promi

    Registriert seit:
    2 Nov. 2004
    Beiträge:
    3,086
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Weil am Rhein
    Wenn du so auf Sicherheit bedacht bist, braucht obiger Eintrag einen eigenen Kontext, bei dem direkt auf Zielrufnummern verwiesen wird, da der Anruf ungesichert (weil ungeprüft) reinkommt.

    Wenn feste IAX-Verbindungen, z.B. zu einem anderen Asterisk, bestehen, diese auf auth=rsa umstellen.
     
  3. t3_chris

    t3_chris Neuer User

    Registriert seit:
    2 Jan. 2006
    Beiträge:
    40
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Tirol / Österreich

    Wie meinst du das genau?

    Es ist gewünscht dass alle meine Durwahlen (aud dem incoming Kontext) direkt von aussen erreichbar sind.

    Es sollen lediglich durch externe Anrufer keine Gebühren enstehen können.

    mfg
    cr
     
  4. Maik

    Maik Gesperrt

    Registriert seit:
    1 Apr. 2004
    Beiträge:
    1,778
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Du solltest trotzdem einen eigenen Kontext dafür machen und erst mal die CallerID so abändern, dass man erkennen kann, dass der Anruf von extern kommt. Sonst kann man nämlich ne beliebige CallerID setzen...
     
  5. kombjuder

    kombjuder IPPF-Promi

    Registriert seit:
    2 Nov. 2004
    Beiträge:
    3,086
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Weil am Rhein
    sip.conf und iax.conf haben unter [general] jeweils context=incoming

    Dieses incoming änderst du in einen anderen Namen und legst die entsprechenden Einträge in der sip.conf und der iax.conf an.
    Über diesen Eintrag kommen nämlich nur Anrufe herein, die nicht authentifiziert sind. Dafür gibt es drei Gründe:

    1. Du hast einen Fehler in deinen Statments
    2. Es ruft jemand ohne Authentifizierung an.
    2.a Er kennt deine SIP-Adresse und ruft sie direkt an.
    2.b Jemand fälscht den Absender und scheitert dann an der Authentifizierung
     
  6. t3_chris

    t3_chris Neuer User

    Registriert seit:
    2 Jan. 2006
    Beiträge:
    40
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Tirol / Österreich
    Meinst du wirklich die sip.conf und iax.conf oder die extensions.conf


    Würde es beispielsweise reichen einen neuen Kontext zu erzeugen der folgendes macht:

    [untrusted]
    exten => _X.,1,SetCallerID("Extern:" ${CALLERID})
    exten => _X.,2,Goto(incoming,${EXTEN})

    (Ich weiss jetzt nicht ob die Syntax genau passt, aber es geht mir ja nur
    ums Prinzip)

    Danke für Eure Geduld!

    mfg
    cr
     
  7. Maik

    Maik Gesperrt

    Registriert seit:
    1 Apr. 2004
    Beiträge:
    1,778
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Sieht gut aus. So ähnlich mache ich es normalerweise auch.
     
  8. prochmi

    prochmi Neuer User

    Registriert seit:
    22 Sep. 2005
    Beiträge:
    112
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    tut mir leid das ich den thread wieder ausgrabe, aber wäre nicht folgende variante eleganter? (weil man nicht bei der callerid herumbasteln muß)

    ein context internal

    ein context incoming, dort mach ich ein goto zu internal, oder ich lass die calls gleich direkt in internal (je nachdem was man sonst noch so vor hat).

    ein context outgoing, der default included.

    all jene internen nebenstellen die nach außen dürfen, haben als context outgoing eingestellt, alle anderen eben internal.

    alle die von außen kommen, dürfen auch alle internen anrufen, aber nicht nach außen.

    oder hab ich da einen denkfehler?

    mfg,
    michael
     
  9. Maik

    Maik Gesperrt

    Registriert seit:
    1 Apr. 2004
    Beiträge:
    1,778
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Wo bitte ist der Unterschied zwischen deiner Idee und dem aktuellen Stand? ;)
     
  10. prochmi

    prochmi Neuer User

    Registriert seit:
    22 Sep. 2005
    Beiträge:
    112
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    bei meiner idee brauch ich kein setcallerid, weil ankommende von außen sowieso nicht rauskommen können.

    ich habe euren vorschlag so verstanden, das alles von internal raus kann und man daher alles was von außen kommt kennzeichnen muß um es später wieder rausfiltern zu können.

    mfg,
    michael
     
  11. t3_chris

    t3_chris Neuer User

    Registriert seit:
    2 Jan. 2006
    Beiträge:
    40
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Tirol / Österreich
    Servus!

    Auch ich war eigentlich der Meinung dass ein Splittung in die besagten Kontexte reicht.

    Kann mal jemand ein Beispiel posten wie man von einem Kontext "incoming" (welcher KEINEN
    Trunk für Kostenpflichtige Verbindungen hat) in den Kontext "outgoingMeinProvider" ausbrechen könnte?

    Schematisch und vereinfacht:

    [internal]
    include => outgoingMeinProvider
    include => incoming

    [incoming]
    exten => 10,1,Irgendwas()
    exten => 11,1,Irgendwas()

    [outgoingMeinProvider]
    exten => _0.,Dial(IAX2/externTrunkDerAuchWasKostenWird/${EXTEN:1})

    Externe Rufe kommen dann auch über IAX2 rein, dieser IAX2 User
    subscribt in [incoming]

    Interne User subscripen via SIP in [internal], die sollen auch alle mit dem
    0-Prefix rauswählen dürfen.

    mfg
    cr
     
  12. kombjuder

    kombjuder IPPF-Promi

    Registriert seit:
    2 Nov. 2004
    Beiträge:
    3,086
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Weil am Rhein
    Dann versuchen wir das mit den Contexten mal:

    Wir haben in der sip.conf und iax.conf folgende contexte angegeben:

    [guest]; hier landet alles ohne Authentifizierung
    [ich_darf_raus] ; interne User mit Amtsberechtigung
    [ich_darf_nicht_raus] ; interne User ohne Amtsberechtigung
    [incomming] ; authentifizierte Anrufe von aussen

    extensions.conf
    Code:
    ...
    
    [guest]
    exten => s,1,(Dial,die_Sekretaerin)
    
    [ich_darf_raus]
    include outgoing
    include intern
    include Zeitansage
    include was weiss ich noch alles
    exten => irgendwas
    
    [ich_darf_nicht_raus]
    include intern
    include verboten
    include Zeitansage
    include was weiss ich noch alles
    exten => irgendwas
    
    [intern]
    Hier die Anwahlregeln für die internen Teilnehmer
    
    [incomming]
    include intern
    Regeln für eingehende Anrufe
    
    [outgoing]
    Wahlregeln für gebührenpflichtige Gespräche
    
    [verboten]
    Ansage:  externe Anrufe nicht für dich
    
    Nach [outgoing] komme ich nur als zugelassener Anrufer, in diesem Beispiel aus dem Context [ich_darf_raus].

    Alles andere landet entweder in incomming oder in intern oder [guest]

    Wobei bei mir aus [guest] nach incomming gesprungen wird, weil ich (bis jetzt noch) auch mit anonymen Anrufern rede.
     
  13. prochmi

    prochmi Neuer User

    Registriert seit:
    22 Sep. 2005
    Beiträge:
    112
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    was sind bitte authentifizierte anrufe von aussen?

    also ich habe nebenstellen, die sich registrieren können, aber wo ist der unterschied ob sich ein client von innen oder außen registriert?

    es gibt authentifizierte user (die eben einen account auf der maschine haben) und nicht authentifizierte user (eben welche, die jemanden der einen account auf der maschine hat erreichen wollen).
    diese nicht authentifizierten user kommen in der regel über eine verbindung herein und daher kann ich ja praktischerweise alle die da reinkommen in einen eigenen context schmeissen, von dem aus sie nicht nach außen kommen.

    ich verstehe daher nicht, wieso man da irgendwas setzten (kennzeichnen) sollte.

    oder verstehich irgendwas einfach nicht?

    mfg,
    michael
     
  14. kombjuder

    kombjuder IPPF-Promi

    Registriert seit:
    2 Nov. 2004
    Beiträge:
    3,086
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Weil am Rhein
    Anrufe, bei denen geprüft wird ob sie anrufen dürfen.
    Das sind in der Regel Anrufe die über deinen Provider vermittelt werden, User mit Account die von extern reinkommen etc.

    Da gibt es keinen. Registriert ist Registriert. User ist gesichert und darf anrufen.


    Das ist korrekt.

    Du brauchst nichts zu kennzeichnen, sondern nur sicherstellen, das diese Anrufer mit besonderer Vorsicht behandelt werden, weil du nicht weisst, wer sich hinter diesem Anruf verbirgt.

    Du wirst deinen Dialplan ausbauen und weitere Funktionen etc einfügen, Rückruf vielleicht. Dann wirst du sicher nur bestimmten Anrufern dieses bieten wollen. Wenn aber alle in einem incomming landen, bekommen auch diese ungeprüften Anrufer diese Recht, denn weil ungeprüft, kann der Anrufer ja behaupten er sei ein berechtigter Anrufer.

    Ein nicht authentifizierter Anrufer stellt ein potenzielles Sicherheitsrisiko dar. Wenn du fragst ob dein Dialplan sicher ist muss die Antwort darauf nein sein.

    Ob diese Sicherheit für dich erfoderlich ist, musst du entscheiden, denn nur du kennst dein Sicherheitsbedürfnis.