Port forward

Fórumok

Sziasztok!

Egy olyan gondom lenne (illetve egy gond + 1 kerdes), hogy jelenleg levo szerver kezdi elveszteni erejet, ezert alarakunk egy uj szervert ami a MySQL szerver szerepet fogja betolteni. Na most a gondom az lenne hogy szeretnem ha maradna a jelenlegi host (altalaba PHP kapcsolodasok vannak mysql fele) tehat itt valami port forwardra lenne szukseg, amit ha jol olvasgattam PF -el a legkonnyebb megcsinalni. Probalgattam de nem nagyon jott ossze a dolog, a kovetkezot probaltam csinalni:

pf.conf

rdr pass on em0 proto tcp from any to any port 3306 -> mysqlserverIP

ezenkivul mit kell(ene) meg csinalni hogy mukodokepes legyen a dolog?

illetve egy masik kerdes, freebsd-vel meg lehet oldani hogy pl mikor php5-extension-t forditom portsbol akkor ne akarja feltenni a mysql extension forgatasanal a mysqlx-(server+client) et?

ha valakinek van otlete szivesen vennem oket, koszi.

ui: FreeBSD 7.0 van a gepeken

Hozzászólások

ifconfig -a kimenetet kérekszépen.
It doesn't matter if you like my song as long as you can hear me sing

ifconfig -a


em0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
        options=18b<RXCSUM,TXCSUM,VLAN_MTU>
        inet 195.70.**.** netmask 0xffffff00 broadcast 195.70.62.255
        ether 00:30:48:31:3c:8a
        media: Ethernet autoselect (1000baseTX <full-duplex>)
        status: active
em1: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500
        options=18b<RXCSUM,TXCSUM,VLAN_MTU>
        ether 00:30:48:31:3c:8b
        media: Ethernet autoselect
        status: no carrier
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
        inet6 ::1 prefixlen 128
        inet 127.0.0.1 netmask 0xff000000

Ha még bevágsz egy olyat, hogy:
rdr pass on em0 proto tcp from any to any port 3306 -> mysqlserverIP port 3306
Valamint kellhet ez is:
pass in quick on em0 proto tcp from any to mysqlserverIP port 3306 keep state
It doesn't matter if you like my song as long as you can hear me sing

szia,

kiprobaltam, (egyelore itthoni vmware-be probalgatok), mivel az latvanyosabb a 25os portot raktam at, ratelneteltem majd lattam hogy az a szerver jon be ahova atlett forwardolva, viszont egybol le is dob.


ipnat -l kimenete:
List of active MAP/Redirect filters:
rdr le0 192.168.1.102/32 port 25 -> 195.70.62.** port 25 tcp

List of active sessions:
RDR 195.70.62.**     25    <- -> 192.168.1.102   25    [192.168.1.24 2195]

ezt mar egyszer sikerult elernem pf-el is, de mar nem tudom hogy sikerult es nem sikerult meg egyszer:)

ez az ipnat viszont jonak nez ki, szoval szivesen hasznalnam

csinaltam meg ket szabalyt,

rdr le0 127.0.0.1/32 port 3306 -> 195.70.**.** port 3306 tcp
rdr le0 192.168.1.102/32 port 3306 -> 195.70.**.** port 3306 tcp

aztan phpbol mysql_connect(); de nem connectel, meg active sessions-be se ir semmit, ha beirom a 195.70.**.** ip-t mysql_connect(); akkor connect megy es nincs semmi gond, csak nattal nem.

amugy mennyire megbizhato ez a natolas BSD alatt? Linuxrol azt hallottam hogy neha hibazik, BSD alatt jobb?

na, gondoltam vmwaren kivul probalkozom inkabb tovabb hatha az zavar be, a mostani felallas, ket szerver, egyiken mysql masikrol meg szeretnem elerni azt.

ipnat:


[root@www ~]# ipnat -l
List of active MAP/Redirect filters:
rdr em0 127.0.0.1/32 port 3306 -> 195.70.**.** port 3306 tcp

es igy probalnek csatlakozni:


<?php
mysql_connect('localhost', 'tesztuser', 'jelszo');
mysql_connect('127.0.0.1', 'tesztuser', 'jelszo');
mysql_connect('195.70.**.**', 'tesztuser', 'jelszo');

az utolso konnekt az megy amikor a szerver ipjet irom be, a tobbinel megse moccan, de megcsak ipnat -l -nel se irja ki hogy probalkozna valamit. Itt mar a 25os portnak a natolasa se megy, siman visszadobja conn refused, de azt viszont ipnat -l be irja hogy valamit probalkozott, de masik gepen semmi sem latszik.

valami otlet hogy lehetne?

errol valamiert lemaradt a szemem, de kiprobaltam.

tcpdump -n -e -ttt -i pflog0 port 3306:

000000 rule 1/0(match): pass out on lo0: 127.0.0.1.55510 > 127.0.0.1.3306: tcp 32 [bad hdr length 8 - too short, < 20]
000015 rule 1/0(match): pass in on lo0: 127.0.0.1.55510 > 127.0.0.1.3306: tcp 32 [bad hdr length 8 - too short, < 20]
020374 rule 1/0(match): pass out on em0: 195.70.**.**(sajatszerverip).57770 > 195.70.**.**(mysqlszerverip).3306: tcp 40 [bad hdr length 0 - too short, < 20]

na, kicsit probalkoztam meg, amire jutottam:
ipnat:

rdr lo0 127.0.0.1 port 3306 -> 195.70.37.114 port 3306 tcp
(ha jol sejtem nem em0-n kene hanem lo0 inkabb)
igy php error: Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on '127.0.0.1' (4)

PF:
rdr pass on lo0 proto tcp from any to 127.0.0.1 port 3306 -> 195.70.37.114
pass in quick on em0 proto tcp from any to 195.70.37.114 port 3306 keep state
ez itt a php error: Warning: mysql_connect() [function.mysql-connect]: Lost connection to MySQL server at 'reading initial communication packet', system error: 65

ez meg itt pflog:

000000 rule 2/0(match): pass out on lo0: 127.0.0.1.65020 > 127.0.0.1.3306: [|tcp]
000044 rule 2/0(match): pass out on em0: 127.0.0.1.65020 > 195.70.**.**.3306: tcp 40 [bad hdr length 0 - too short, < 20]
12. 624725 rule 2/0(match): pass out on em0: 195.70.**.**.63156 > 195.70.**.**.3306: [|tcp]

Az ugyanarrol a geprol torteno rdr trukkosebb - konkretan a bejovot lehet rdr elni a kimenot nem. Tedd meg be ezt is:

pass out route-to (lo0 127.0.0.1) proto tcp from any to any port 3306
==
`Have some wine,' the March Hare said in an encouraging tone.
Alice looked all round the table, but there was nothing on it but tea.


  1 #!/bin/sh
  2
  3 IPT="/sbin/iptables"
  4
  5 echo 1 > /proc/sys/net/ipv4/ip_forward
  6
  7 arbarest_ip=192.168.2.102
  8
  9 $IPT -F -t nat
 10
 11 $IPT -t nat -A POSTROUTING -o eth0 -j MASQUERADE
 12 $IPT -A FORWARD -o eth0 -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
 13
 14 ###
 15 # Arbarest
 16 ##############
 17 echo " \`+> Arbarest..."
 18
 19 # apache2
 20 echo "  |-> Apache"
 21 $IPT -A INPUT -p tcp -m tcp --dport 2222 -j ACCEPT
 22 $IPT -t nat -A PREROUTING -p tcp -i eth0 --dport 2222 -j DNAT --to $arbarest_ip:22
 23
 24 # sshd
 25 echo "  \`-> SSHd"
 26 $IPT -A INPUT -p tcp -m tcp --dport 2280 -j ACCEPT
 27 $IPT -t nat -A PREROUTING -p tcp -i eth0 --dport 2280 -j DNAT --to $arbarest_ip:80

En igy szoktam forwardolni =) Eza tuzfalszabalyrendszerembol van... Monnyuk ez se mai =)
Rendszerkovetelmeny: IPtables... ^_^ kernelbe nem art... sot elengethetetlen... De alt aki nem maga forgattya annak bene van ^_^

--
by lightgod

El tudod küldeni a teljes pf.conf-ot nem csak az ide tartozó sort?

Pepe