[+] IP zewnętrzne na IP wewnętrzne, 1 karta, 2 IP zewnętrzne
: 02 marca 2010, 19:23
Witam.
Na wstępie informuję, że siedziałem nad tym problemem już dłuższy czas i przeczesałem kawał odpowiedzi z Google - bez pozytywnego rezultatu.
Problem z regułką DNAT w przypadku przekierowania drugiego adresu publicznego na jednej karcie.
Chodzi o maszyną ruter z 4 eth - dla dwóch dostawców internetu i dwóch podsieci.
Interfejs eth0 zaopatruje w internet podsieć (eth2) 192.168.1.0/24, natomiast eth1 zaopatruje w internet podsieć (eth3) 192.168.2.0/24.
Reguły realizujące ruch.
Dodana tablica dsl do rt_tables.
rc_route - konfiguracja routingu:
rc_masq - prosty firewall z markowaniem i SNAT
Dla takich ustawień (obojętne czy SNAT czy MASQUERADE) internet normalnie działa tam gdzie trzeba, każda podsieć idzie swoją drogą.
Teraz chciałbym dołożyć do tego prostego firewalla regułkę umożliwiającą przy użyciu drugiego ip publicznego dla neti, tj. 62.x.x.147, dostać się na komputer w podsieci 192.168.2.0/24 (dokładnie o adresie 192.168.2.14), na którym jest strona www odpalana poprzez https://192.168.2.14.
Użyta reguła umieszczona na samym końcu kodu rc_masq:
Wiem, że należy dopisać do karty eth1 drugi adres - robiłem to przy użyciu konfiguracji pliku interfaces
oraz przy użyciu komendy:
Niestety bez skutku.
Zauważyłem jedynie, że przy takiej regułce pakiety w nią nie wpadają - brak przyrostu:
usuwając -i eth1, tj.
Pojawia się przyrost o 1, komunikacja przeglądarki strony się wydłuża, ale nadal nie wyświetla się odpowiednia witryna.
Proszę o pomoc i z góry dziękuję Michał D
Na wstępie informuję, że siedziałem nad tym problemem już dłuższy czas i przeczesałem kawał odpowiedzi z Google - bez pozytywnego rezultatu.
Problem z regułką DNAT w przypadku przekierowania drugiego adresu publicznego na jednej karcie.
Chodzi o maszyną ruter z 4 eth - dla dwóch dostawców internetu i dwóch podsieci.
Kod: Zaznacz cały
ifconfig
Kod: Zaznacz cały
eth0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx
inet addr:80.x.x.187 Bcast:80.x.x.191 Mask:255.255.255.248
inet6 addr: fe80::xxx:xxx:xxx:bc53/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:84431 errors:0 dropped:0 overruns:0 frame:0
TX packets:92566 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:38477503 (36.6 MiB) TX bytes:49884359 (47.5 MiB)
Memory:e1a00000-e1a20000
eth1 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx
inet addr:62.x.x.146 Bcast:62.x.x.151 Mask:255.255.255.248
inet6 addr: fe80::xxx:xxx:xxx:f0ff/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1830350 errors:0 dropped:0 overruns:0 frame:0
TX packets:1703109 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1855751741 (1.7 GiB) TX bytes:976677441 (931.4 MiB)
Interrupt:16 Base address:0xe100
eth2 Link encap:Ethernet HWaddr 00:22:6b:bb:f1:7f
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::222:6bff:febb:f17f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:100086 errors:0 dropped:0 overruns:0 frame:0
TX packets:85805 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:50899082 (48.5 MiB) TX bytes:38915565 (37.1 MiB)
Interrupt:17 Base address:0x4000
eth3 Link encap:Ethernet HWaddr 00:15:17:9c:bc:51
inet addr:192.168.2.1 Bcast:192.168.2.255 Mask:255.255.255.0
inet6 addr: fe80::215:17ff:fe9c:bc51/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1710297 errors:0 dropped:0 overruns:0 frame:0
TX packets:1813275 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:982112668 (936.6 MiB) TX bytes:1852930388 (1.7 GiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:40 errors:0 dropped:0 overruns:0 frame:0
TX packets:40 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3852 (3.7 KiB) TX bytes:3852 (3.7 KiB)
Reguły realizujące ruch.
Dodana tablica dsl do rt_tables.
Kod: Zaznacz cały
ip route sh - tablica main
Kod: Zaznacz cały
80.x.x.184/29 dev eth0 proto kernel scope link src 80.x.x.187
62.x.x.144/29 dev eth1 proto kernel scope link src 62.x.x.146
192.168.2.0/24 dev eth3 proto kernel scope link src 192.168.2.1
192.168.1.0/24 dev eth2 proto kernel scope link src 192.168.1.1
default via 62.x.x.145 dev eth1
Kod: Zaznacz cały
ip route sh tab dsl
Kod: Zaznacz cały
80.x.x.184/29 dev eth0 proto kernel scope link src 80.x.x.187
192.168.2.0/24 dev eth3 proto kernel scope link src 192.168.2.1
192.168.1.0/24 dev eth2 proto kernel scope link src 192.168.1.1
default via 80.x.x.185 dev eth0
Kod: Zaznacz cały
ip ru sh
Kod: Zaznacz cały
0: from all lookup local
32765: from all fwmark 0x2 lookup dsl
32766: from all lookup main
32767: from all lookup default
Kod: Zaznacz cały
#!/bin/bash
echo "start"
ip route flush t dsl
echo "trasy do bram"
# trasa do bramy dsl
ip route add 80.x.x.184/29 dev eth0 proto kernel scope link src 80.x.x.187 table dsl
ip route add default via 80.x.X.185 table dsl
echo "zasady"
#konfiguracja tablic routingu
ip rule add fwmark 0x2 table dsl
echo "dodatkowe wpisy"
#dodatkowe wpisy dla lan
echo "1"
ip route add 192.168.1.0/24 dev eth2 proto kernel scope link src 192.168.1.1 table dsl
ip route add 192.168.2.0/24 dev eth3 proto kernel scope link src 192.168.2.1 table dsl
ip route flush cache
#echo 0 > /proc/sys/net/ipv4/all/rp_filter
echo 12
for f in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo 0 >$f
done
Kod: Zaznacz cały
#!/bin/bash
echo "jedziemy fire"
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ip_conntrack_irc
modprobe ip_nat_irc
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "polityka"
iptables -F
iptables -X
iptables -F -t nat
iptables -X -t nat
iptables -F -t mangle
iptables -X -t mangle
#iptables -F INPUT
#iptables -F OUTPUT
#iptables -F FORWARD
iptables -F PREROUTING -t nat
iptables -F POSTROUTING -t nat
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t mangle -A PREROUTING -i eth2 -j MARK --set-mark 0x2
iptables -t mangle -A PREROUTING -m mark --mark 0x2 -j CONNMARK --save-mark
#ustawieni adresow zrodlowych dla pakietow, ktore wylatuja poszczegolnymi interfejsami
#iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 80.x.x.187
#iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o eth1 -j SNAT --to-source 62.x.x.146
iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE
iptables -A POSTROUTING -t nat -o eth1 -j MASQUERADE
Teraz chciałbym dołożyć do tego prostego firewalla regułkę umożliwiającą przy użyciu drugiego ip publicznego dla neti, tj. 62.x.x.147, dostać się na komputer w podsieci 192.168.2.0/24 (dokładnie o adresie 192.168.2.14), na którym jest strona www odpalana poprzez https://192.168.2.14.
Użyta reguła umieszczona na samym końcu kodu rc_masq:
Kod: Zaznacz cały
iptables -A PREROUTING -t nat -i eth1 -d 62.x.x.147 -j DNAT --to-destination 192.168.2.14
Kod: Zaznacz cały
auto eth1
iface eth1 inet static
address 62.x.x.146
netmask 255.255.255.248
network 62.x.x.144
broadcast 62.x.x.151
gateway 62.x.x.145
dns-nameserver 213.241.79.37 213.241.79.38
auto eth1:1
iface eth1:1 inet static
address 62.x.x.147
netmask 255.255.255.248
Kod: Zaznacz cały
ip a a 62.x.x.147 dev eth1
Zauważyłem jedynie, że przy takiej regułce pakiety w nią nie wpadają - brak przyrostu:
Kod: Zaznacz cały
iptables -t nat -L -n -v
Kod: Zaznacz cały
iptables -A PREROUTING -t nat -d 62.x.x.147 -j DNAT --to-destination 192.168.2.14
Proszę o pomoc i z góry dziękuję Michał D