Mysql hinter Firewall

Dieses Thema im Forum "OpenBSD" wurde erstellt von Kesar_Neron, 08.06.2006.

  1. #1 Kesar_Neron, 08.06.2006
    Kesar_Neron

    Kesar_Neron Tripel-As

    Dabei seit:
    25.03.2006
    Beiträge:
    218
    Zustimmungen:
    0
    Hallo zusammen,

    ich habe hier einen MySQL Server auf einem OpenBSd System laufen.
    Dieses System möchte ich nun rudimentär absichern.

    Dazu wollte ich einfach die im Netzwerk nicht notwendigen Dienste mit einer Firewall absichern.

    Das gelingt mir auch soweit... das einzige Problem, was ich habe ist, dass ich mich nachdem ich die pf Firewall einschalte nicht mehr mit dem MySQL Server Verbinden kann. Ein Portscan zeigt mir, dass der Dienst nicht offen ist.

    Schaut euch mal bitte meine pf.conf an und sagt mir, was ich falsch mache.

    Danke für eure Hilfe.

    Code:
    #	$OpenBSD: pf.conf,v 1.29 2005/08/23 02:52:58 henning Exp $
    #
    # See pf.conf(5) and /usr/share/pf for syntax and examples.
    # Remember to set net.inet.ip.forwarding=1 and/or net.inet6.ip6.forwarding=1
    # in /etc/sysctl.conf if packets are to be forwarded between interfaces.
    
    #ext_if="ext0"
    #int_if="int0"
    
    #table <spamd> persist
    #table <spamd-white> persist
    
    #set skip on { lo $int_if }
    
    #scrub in
    
    #nat on $ext_if from !($ext_if) -> ($ext_if:0)
    #rdr pass on $int_if proto tcp to port ftp -> 127.0.0.1 port 8021
    #rdr pass on $ext_if proto tcp from <spamd> to port smtp \
    #	-> 127.0.0.1 port spamd
    #rdr pass on $ext_if proto tcp from !<spamd-white> to port smtp \
    #	-> 127.0.0.1 port spamd
    
    #block in
    pass out keep state
    
    #antispoof quick for { lo $int_if }
    
    #pass in on $ext_if proto tcp to ($ext_if) port ssh keep state
    #pass in on $ext_if proto tcp to ($ext_if) port > 49151 user proxy keep state
    #pass in log on $ext_if proto tcp to ($ext_if) port smtp keep state
    #pass out log on $ext_if proto tcp from ($ext_if) to port smtp keep state
    
    block in on dc0 all
    
    pass in on dc0 proto tcp from any to any port ftp
    pass in on dc0 proto tcp from any to any port ssh
    pass in on dc0 proto tcp from any to any port www
    pass in on dc0 proto tcp from any to any port 445
    pass in on dc0 proto {tcp,udp} from any to any port >1024
    pass in on dc0 proto tcp from any to any port 3306
    
    pass in on lo proto {tcp,udp,icmp} all
    pass out on lo proto {tcp,udp,icmp} all
    pass out on dc0 from any to any
    
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. Cyber

    Cyber .:DISTORTED:.

    Dabei seit:
    16.05.2003
    Beiträge:
    999
    Zustimmungen:
    0
    Ort:
    D -> BW -> Karlsruhe
    Läuft denn MySQL überhaupt auf dem Default-Port 3306 oder ist das evtl. auch "verbogen"?
     
  4. #3 Kesar_Neron, 08.06.2006
    Kesar_Neron

    Kesar_Neron Tripel-As

    Dabei seit:
    25.03.2006
    Beiträge:
    218
    Zustimmungen:
    0
    Japa

    Hi,

    also bisher konnte ich mich mit den Defaulteinstellungen verbinden. Nur nachdem ich die Firewall aktiviert habe geht es nicht mehr.

    Hier mal ein auzug aus nmap:
    127.0.0.1
    Code:
    Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2006-06-08 14:30 GMT
    Interesting ports on localhost.intra.cjd.de (127.0.0.1):
    (The 1652 ports scanned but not shown below are in state: closed)
    PORT     STATE SERVICE
    13/tcp   open  daytime
    21/tcp   open  ftp
    22/tcp   open  ssh
    25/tcp   open  smtp
    37/tcp   open  time
    80/tcp   open  http
    113/tcp  open  auth
    139/tcp  open  netbios-ssn
    445/tcp  open  microsoft-ds
    587/tcp  open  submission
    3306/tcp open  mysql
    
    und hier die externe Ip-Addresse:
    Code:
    Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2006-06-08 14:31 GMT
    Interesting ports on 10.40.4.153:
    (The 1654 ports scanned but not shown below are in state: closed)
    PORT     STATE SERVICE
    13/tcp   open  daytime
    21/tcp   open  ftp
    22/tcp   open  ssh
    37/tcp   open  time
    80/tcp   open  http
    113/tcp  open  auth
    139/tcp  open  netbios-ssn
    445/tcp  open  microsoft-ds
    3306/tcp open  mysql
    
    natürlich mit deaktivierter Firewall.
     
  5. #4 slasher, 08.06.2006
    slasher

    slasher König

    Dabei seit:
    22.03.2006
    Beiträge:
    827
    Zustimmungen:
    0
    du musst in deiner "my.cnf" die Variable "bind-to localhost" oder so ähnlich auskommentieren. Danach mysqld neustarten und schon kommst du von außen "ran".
     
  6. #5 Kesar_Neron, 08.06.2006
    Kesar_Neron

    Kesar_Neron Tripel-As

    Dabei seit:
    25.03.2006
    Beiträge:
    218
    Zustimmungen:
    0
    hab isch leider nisch

    Hallo und danke für die Antwort.
    Leider habe ich auf dem gesamten System keine my.cnf. zumindest sagt mir das find / -name my.cnf -print


    Gruß
     
  7. #6 slasher, 08.06.2006
    slasher

    slasher König

    Dabei seit:
    22.03.2006
    Beiträge:
    827
    Zustimmungen:
    0
    find / -name "*.cnf"

    Vielleicht ist ja was dabei :-). Irgendwie wird ja dein mysqld konfiguriert.
     
  8. #7 damager, 08.06.2006
    Zuletzt bearbeitet: 08.06.2006
    damager

    damager Moderator

    Dabei seit:
    27.08.2003
    Beiträge:
    3.065
    Zustimmungen:
    0
    Ort:
    Munich
    eine 10'er ip-adresse extern? bist du dir da ganz sicher?

    wie versuchst du dich den zu verbinden? der dienst scheint ja erreichbar zu sein.
    bedenke das eine anmeldung per default nur localhost möglich ist. alle user werde nur mit localhost ans quelle angelegt. der user muss das recht haben sich auch von remote (hostname oder @ für alle) aus anzumelden. evtl. ist nur das dein problem?

    typische fehlermeldung dafür wäre:
    ERROR 1130: Host 'x.x.x.x' is not allowed to connect to this MySQL server

    board-suche schon mal hier benutzt? wohl nicht, sonst hättest du evtl. auch
    das (http://www.unixboard.de/vb3/showthread.php?t=14030) gefunden :D
     
  9. #8 slasher, 08.06.2006
    slasher

    slasher König

    Dabei seit:
    22.03.2006
    Beiträge:
    827
    Zustimmungen:
    0
    in Beitrag #4 habe ich doch genau das vermutet :-).
     
  10. #9 Kesar_Neron, 08.06.2006
    Kesar_Neron

    Kesar_Neron Tripel-As

    Dabei seit:
    25.03.2006
    Beiträge:
    218
    Zustimmungen:
    0
    Ok ok.. ich sehs ein.. ich hab mich falsch ausgedrückt...

    Der Server hat nur eine IP-Adresse, steht in einem Intranet.. also kein wirklich EXTERNES Device...

    Ich arbeite schon ne ganze weile mit dem System. Ich verbinde mich mit dem Mysql-Administrator, Query-Browser, etc. Das funktioniert ALLES bestens...

    Mein Problem ist, dass sobald ich pfctl -e mache ich mich eben nicht mehr verbinden kann. Da ich relativ neu im Bereich BSD bin, denke ich, dass es an meiner pf.conf liegt.

    Also, Verbindung ohne Firewall ABSOLUT KEIN PROBLEM... Verbidnung mit Firewall nicht möglich, jedenfall mit clientprogrammen wie o.g.!

    Gruß
     
  11. #10 damager, 08.06.2006
    damager

    damager Moderator

    Dabei seit:
    27.08.2003
    Beiträge:
    3.065
    Zustimmungen:
    0
    Ort:
    Munich
    das hast du nicht ... deine bemerkung geht auf den ganzen server.
    da mit nicht klar ist was er genau für ein fehlerbild hat vermutete ich das es nur daran liegt das der user, mit dem er sich anmelden will, das nur von localhost aus darf.
    ich meinte also das feld "host" in der mysql user tabelle.

    der server staret aber nicht evtl. mit "--skip-networking" oder? dann würde die verbindung nur über die lokalen sockets gegen und nicht mehr über tcp.
     
  12. #11 slasher, 08.06.2006
    slasher

    slasher König

    Dabei seit:
    22.03.2006
    Beiträge:
    827
    Zustimmungen:
    0
    ja, ich hatte das hier übersehen *shame_on_me* *sing* :-).
     
  13. #12 damager, 08.06.2006
    damager

    damager Moderator

    Dabei seit:
    27.08.2003
    Beiträge:
    3.065
    Zustimmungen:
    0
    Ort:
    Munich
    ich kenne jetzt was genau das "pfctl" macht aber bekommst du antwort wenn mal:
    telnet <hostname> 3306
    danach aufrufst?
     
  14. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  15. #13 slasher, 08.06.2006
    Zuletzt bearbeitet: 08.06.2006
    slasher

    slasher König

    Dabei seit:
    22.03.2006
    Beiträge:
    827
    Zustimmungen:
    0
    probier doch mal folgende pf.conf:
    Code:
    icmp_types = "echoreq"
    set block-policy drop
    block in log all
    pass  on lo0
    
    pass  in  on dc0 proto tcp from any to any port 21 keep state
    pass  in  on dc0 proto tcp from any to any port 22 keep state
    pass  in  on dc0 proto tcp from any to any port 80 keep state
    pass  in  on dc0 proto tcp from any to any port 445 keep state
    pass  in  on dc0 proto tcp from any to any port 3306 keep state
    pass in on dc0 proto {tcp,udp} from any to any port > 1024
    
    pass  out on dc0 proto { tcp, udp } all keep state
    
    die Regeln mit Befehl:
    Code:
    pfctl -Fa -f /etc/pf.conf
    neuladen. Versuch das mal, aber kopier deine alte pf.conf vorher an einen sicheren Platz :-).
     
  16. #14 Kesar_Neron, 09.06.2006
    Zuletzt bearbeitet: 09.06.2006
    Kesar_Neron

    Kesar_Neron Tripel-As

    Dabei seit:
    25.03.2006
    Beiträge:
    218
    Zustimmungen:
    0
    leider auch nich

    Hallo zusammen

    @ slasher: Leider hat das auch nicht weitergeholfen.

    Ich habe die komplette pf.conf durch das von dir genannte ersetzt. Leider auch ohne ergebnis.... sobald ich mit pfctl -e die Firewall aktiviere, ist alles freigegebene bis auf MySQL erreichbar.

    Dennoch vielen Dank.

    Gruß

    ----------------------------------------------------
    EDIT:

    Ich konnte das Problem lösen. Auch wenn ich nach wie vor keine Ahnung habe, wo genau jetzt der unterschied liegen soll.

    Hier mal das Regelwerk, dass funktioniert:

    block in all

    pass in on dc0 proto tcp from any to any port ftp
    pass in on dc0 proto tcp from any to any port ssh
    pass in on dc0 proto tcp from any to any port www
    pass in on dc0 proto tcp from any to any port 445
    pass in on dc0 proto {tcp,udp} from any to any port >1024
    pass in on dc0 proto tcp from any to any port 3306

    pass on lo all
    pass out on lo proto {tcp,udp,icmp} all
    pass out on dc0 from any to any
     
Thema:

Mysql hinter Firewall

Die Seite wird geladen...

Mysql hinter Firewall - Ähnliche Themen

  1. Freelancer gesucht - Debian / MySQL / Pearl / PHP - Erfahrung

    Freelancer gesucht - Debian / MySQL / Pearl / PHP - Erfahrung: Hallo, suche einen Freelancer für einen Webdienst... mit obigen Kenntnissen! Bitte Stundensatz mit Kurzbeschreibung mitteilen. NOCH WAS: Also...
  2. MySQL 5.7 angekündigt

    MySQL 5.7 angekündigt: Oracle hat MySQL 5.7 in der offiziellen Version angekündigt. Das populäre freie Datenbanksystem wird in Version 5.7 bei bestimmten Abfragen...
  3. MySQL 5.7 angekündigt

    MySQL 5.7 angekündigt: Oracle hat MySQL 5.7 in der offiziellen Version angekündigt. Das populäre freie Datenbanksystem wird in Version 5.7 bei bestimmten Abfragen...
  4. mysql Select Abfrageergebnis in unterschiedlichen Variablen sichern

    mysql Select Abfrageergebnis in unterschiedlichen Variablen sichern: Hallo zusammen, es geht um folgenden Teil meiner .sh-Datei: NumberCheck=`mysql $SQL_ARGS "SELECT lkw, Firma FROM adb_group WHERE...
  5. MySQL Datenbank / Phpmyadmin Fehler #2002

    MySQL Datenbank / Phpmyadmin Fehler #2002: Wie oben schon beschrieben kommt bei mir immer wenn ich versuche auf Phpmyadmin zu verbinden dieser Fehler : #2002 Die Anmeldung am MySQL-Server...