bind-address auf localhost + eine IP

bind-address auf localhost + eine IP

am 05.05.2006 19:10:38 von Peter Velan

Hallo,

eine MySQL5 soll auf localhost *und* eine IP oder wahlweise eine eth#
gebunden werden.

Hintergrund:
- Rechner mit eth0 (extern) und eth1 (intern)
- MySQL5 soll von 127.0.0.1 *UND* eth1 angesprochen werden
- MySQL5 soll auf Anfragen von eth0 nicht antworten

MySQL-Zugriff über eth0 ist zwar mit iptables (port 3306 gesperrt)
blockiert, wäre dennoch nett, wenn MySQL "von sich aus" Connects via
eth0 ablehnen würde.

Suche etwas in der Art:

bind-address = 127.0.0.1 192.168.0.5

Gruß,
Peter

Re: bind-address auf localhost + eine IP

am 05.05.2006 19:13:26 von Dirk Brosowski

Peter Velan schrieb:
> Hallo,
>
> eine MySQL5 soll auf localhost *und* eine IP oder wahlweise eine eth#
> gebunden werden.
>
> Hintergrund:
> - Rechner mit eth0 (extern) und eth1 (intern)
> - MySQL5 soll von 127.0.0.1 *UND* eth1 angesprochen werden
> - MySQL5 soll auf Anfragen von eth0 nicht antworten
>
> MySQL-Zugriff über eth0 ist zwar mit iptables (port 3306 gesperrt)
> blockiert, wäre dennoch nett, wenn MySQL "von sich aus" Connects via
> eth0 ablehnen würde.
>
> Suche etwas in der Art:
>
> bind-address = 127.0.0.1 192.168.0.5
>
> Gruß,
> Peter



bind heisst doch nicht, dass er von dort angesprochen wird, sondern dass
er auf diesen IP's selber läuft und Anfragen dort angenommen werden.

Grüße

Dirk

Re: bind-address auf localhost + eine IP

am 05.05.2006 19:48:20 von Carsten Wiedmann

Peter Velan schrieb:

> eine MySQL5 soll auf localhost *und* eine IP oder wahlweise eine eth#
> gebunden werden.

AFAIK kann man MySQL leider immer noch nur gezielt an eine IP binden.
Allerdings, wie in deinem Fall, ist es ja auch nicht unbdingt nötig MySQL
auch an "localhost" (127.0.0.1) zu binden:
a) Zugriffe auf "localhost" finden i.d.R. nicht über TCP statt.
b) kann man ja auch hier die LAN-IP (worauf MySQL gebunden ist) für den
Zugriff über TCP benutzen.

Gruß
Carsten

Re: bind-address auf localhost + eine IP

am 05.05.2006 20:01:26 von Johannes Vogel

Hi Peter

Peter Velan wrote:
> eine MySQL5 soll auf localhost *und* eine IP oder wahlweise eine eth#
> gebunden werden.
> Hintergrund:
> - Rechner mit eth0 (extern) und eth1 (intern)
> - MySQL5 soll von 127.0.0.1 *UND* eth1 angesprochen werden
> - MySQL5 soll auf Anfragen von eth0 nicht antworten
> MySQL-Zugriff über eth0 ist zwar mit iptables (port 3306 gesperrt)
> blockiert, wäre dennoch nett, wenn MySQL "von sich aus" Connects via
> eth0 ablehnen würde.
> Suche etwas in der Art:
> bind-address = 127.0.0.1 192.168.0.5

RTM:
http://dev.mysql.com/doc/refman/5.0/en/server-options.html#i d2583108

Deine Frage lautet wohl, wie man zwei IP-Adressen angeben könnte?
Ich würde es mal mit zweimal aufführen versuchen.

Oder sonst auch lokal über eth1 ansprechen. Du könntest bspw. auch
mittels iptables die Anfragen auf 127.0.0.1:3306 auf eth1:3306 umleiten.

Einfach mal ein paar Ideen...
HTH, Johannes

Re: bind-address auf localhost + eine IP

am 05.05.2006 21:45:04 von Christian Kirsch

Johannes Vogel schrieb:
> Hi Peter
>
> Peter Velan wrote:
>> eine MySQL5 soll auf localhost *und* eine IP oder wahlweise eine eth#
>> gebunden werden.
>> Hintergrund:
>> - Rechner mit eth0 (extern) und eth1 (intern)
>> - MySQL5 soll von 127.0.0.1 *UND* eth1 angesprochen werden
>> - MySQL5 soll auf Anfragen von eth0 nicht antworten
>> MySQL-Zugriff über eth0 ist zwar mit iptables (port 3306 gesperrt)
>> blockiert, wäre dennoch nett, wenn MySQL "von sich aus" Connects via
>> eth0 ablehnen würde.
>> Suche etwas in der Art:
>> bind-address = 127.0.0.1 192.168.0.5
>
> RTM:
> http://dev.mysql.com/doc/refman/5.0/en/server-options.html#i d2583108
>
> Deine Frage lautet wohl, wie man zwei IP-Adressen angeben könnte?
> Ich würde es mal mit zweimal aufführen versuchen.
>
> Oder sonst auch lokal über eth1 ansprechen. Du könntest bspw. auch
> mittels iptables die Anfragen auf 127.0.0.1:3306 auf eth1:3306 umleiten.

Unter normalen Umständen benutzt MySQL auf localhost (vulgo 172.0.0.1)
nicht den Port 3306, sondern einen Socket. Insofern sollte für das
Problem des OP ein Binden an 192.168.0.5 reichen.

Re: bind-address auf localhost + eine IP

am 06.05.2006 09:16:10 von Peter Velan

am 2006-05-05 21:45 schrieb Christian Kirsch:
> Johannes Vogel schrieb:
>> Hi Peter
>>
>> Peter Velan wrote:
>>> eine MySQL5 soll auf localhost *und* eine IP oder wahlweise eine eth#
>>> gebunden werden.
>>> Hintergrund:
>>> - Rechner mit eth0 (extern) und eth1 (intern)
>>> - MySQL5 soll von 127.0.0.1 *UND* eth1 angesprochen werden
>>> - MySQL5 soll auf Anfragen von eth0 nicht antworten
>>> MySQL-Zugriff über eth0 ist zwar mit iptables (port 3306 gesperrt)
>>> blockiert, wäre dennoch nett, wenn MySQL "von sich aus" Connects via
>>> eth0 ablehnen würde.
>>> Suche etwas in der Art:
>>> bind-address = 127.0.0.1 192.168.0.5
>>
>> RTM:
>> http://dev.mysql.com/doc/refman/5.0/en/server-options.html#i d2583108
>>
>> Deine Frage lautet wohl, wie man zwei IP-Adressen angeben könnte?
>> Ich würde es mal mit zweimal aufführen versuchen.
>>
>> Oder sonst auch lokal über eth1 ansprechen. Du könntest bspw. auch
>> mittels iptables die Anfragen auf 127.0.0.1:3306 auf eth1:3306 umleiten.
>
> Unter normalen Umständen benutzt MySQL auf localhost (vulgo 172.0.0.1)
> nicht den Port 3306, sondern einen Socket. Insofern sollte für das
> Problem des OP ein Binden an 192.168.0.5 reichen.

bind-address = 192.168.0.5

Ja, jetzt kann ich von 192.168.100.5 zugreifen :-) Leider aber nicht
mehr vom localhost, da obige my.cnf-Zeile nach dem Restart des Servers
*keinen* Socket mehr anlegt :-(

> error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)'
> Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists!

Danke für die Tipps,
Peter

Re: bind-address auf localhost + eine IP

am 06.05.2006 09:43:46 von Peter Velan

am 2006-05-05 19:13 schrieb Dirk Brosowski:
> bind heisst doch nicht, dass er von dort angesprochen wird, sondern dass
> er auf diesen IP's selber läuft und Anfragen dort angenommen werden.

Stimmt, mein Fehler (192.168.0.5 ist die IP des Rechners der den Connect
sucht).

am 2006-05-05 21:45 schrieb Christian Kirsch:
> Unter normalen Umständen benutzt MySQL auf localhost (vulgo 172.0.0.1)
> nicht den Port 3306, sondern einen Socket. Insofern sollte für das
> Problem des OP ein Binden an 192.168.0.5 reichen.

Stimmt schon wieder.

Binde ich mit "bind-address = 192.168.0.10" auf die IP-Adresse der
LAN-Karte, dann spricht localhost über den Socket und der LAN-Rechner
über obige IP mit dem Server!

Danke für eure Hilfe, läuft wie geschmiert.
Peter