Strona 1 z 1

Połączenie za pośrednictwem PC z dwoma kartami sieciowymi

: 01 grudnia 2014, 17:12
autor: kabak
Witam. Posiadam dwie sieci LAN1 i LAN2
Załącznik Bez tytułu.jpg nie jest już dostępny

W sieci LAN1 znajduje się serwer www 192.168.1.1/255.255.255.0 z aplikacją do której chciałbym się dostać. W sieci tej jest również maszyna z Debianem oraz dwoma interfejsami sieciowymi. Pierwszy LAN1 eth0 192.168.1.250/255.255.255.0 i drugi z LAN2 wlan0 24.121.95.102/255.0.0.0.
W sieci LAN2 jest maszyna użytkownika "z Internet Explorerem ;) " 24.121.95.102/255.0.0.0, któremu chciałbym zapewnić dostęp do aplikacji na serwerze www z LAN1

Moje pytanie brzmi jakich narzędzi można użyć w Debianie (7.7) aby osiągnąć taki cel?

Znalazłem coś co nazywane jest mostkowaniem dwóch kart sieciowych, jednakże wolałbym aby obie sieci pozostały przy swojej adresacji i maskach (nie są to jedyne maszyny w sieciach). Najlepszym rozwiązaniem zapewniającym powtarzalność były by narzędzia dostępne w systemie i tu pytanie do użytkowników czy takie są (jakie), czy trzeba coś doinstalowywać?

: 01 grudnia 2014, 18:15
autor: dedito
Zrealizować to można za pomocą iptables (standardowo dostępne w systemie) zezwalając na forward pakietów pomiędzy LAN1 i LAN2, a następnie można jeszcze dopisać regułkę, która będzie ograniczać ruch do konkretnego komputera i/lub portu.
No i jeszcze NAT trzeba ustawić.

: 01 grudnia 2014, 19:27
autor: kabak
Niestety moje próby spełzły na razie na niczym. To może na początek pytanie czy przekierowaniach mają być adresy maszyn Windows 1 i Windows 2 (w końcu takie chyba będą w pakietach), czy odpowiednich interfejsów sieciowych komputera Debian? :confused: I jak ustawić NAT.. iptables -h nie jest zbyt pomocne :( .

Kod: Zaznacz cały

root@bridge:~# iptables -I FORWARD -p tcp -i eth0 -s 192.168.1.1/255.255.255.0 --sport 80 -o wlan0 -d 24.121.95.102/255.0.0.0 --dport 80 -j ACCEPT
root@bridge:~# iptables -I FORWARD -p tcp -i wlan0 -s 24.121.95.102/255.0.0.0 --sport 80 -o eth0 -d 192.168.1.1/255.255.255.0 --dport 80 -j ACCEPT

root@bridge:~# iptables -L -n -v
Chain INPUT (policy ACCEPT 13 packets, 962 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     tcp  --  wlan0   eth0    25.0.0.0/8           192.168.1.0/24       tcp spt:80 dpt:80
    0     0 ACCEPT     tcp  --  eth0   wlan0    192.168.1.0/24       25.0.0.0/8           tcp spt:80 dpt:80

Chain OUTPUT (policy ACCEPT 8 packets, 1546 bytes)
 pkts bytes target     prot opt in     out     source               destination
root@bridge:~#
Nie działa :/ P.S. Coś czuję że wykorzystuję iptables w zły sposób, albo trzeba włączyć jakąś dodatkową opcję gdzieś indziej w systemie...

: 01 grudnia 2014, 19:55
autor: dedito
Po pierwsze masz politykę ACCEPT, więc dodawanie samych regułek ACCEPT w takim układzie jest bez sensu.
To ma działać tak, że jeśli Debian otrzyma pakiet z IP użytkownika z IE to ma go przekierować na adres serwera www.
W takim układzie wystarczy przekierować port.

Kod: Zaznacz cały

iptables -A PREROUTING -t nat -i $interfejs_wlan -o $interfejs_LAN -s $IP_klienta_IE -p tcp --dport $port_do_przekierowania -j DNAT --to $IP_serwera_www:$port_serwera_www
i załączyć forward pomiędzy kartami.
Napisz coś więcej o tej aplikacji. Jak to działa, jak się z tym łączysz w normalnych warunkach wewnątrz sieci LAN.

: 01 grudnia 2014, 20:17
autor: kabak
Muszę przeanalizować dokładniej to co podałeś bo prerouting to nowość dla mnie.

Kod: Zaznacz cały

iptables -A PREROUTING -t nat -i wlan0 -o eth0 -s 25.121.95.102 -p tcp --dport 80 -j DNAT --to 192.168.1.1:80
iptables v1.4.14: Can't use -o with PREROUTING
Łączenie jest przez skrót do adresu www: http://192.168.1.1. Otwiera domyślną przeglądarkę a dalej jest już strona z formularzami, zakładkami itp. jak każda inna (w php). Serwer www na porcie 80.

: 01 grudnia 2014, 21:54
autor: dedito
Usuń opcję -o eth0.
Twoja reguła wygląda na poprawną przy założeniu, że na Debianie nie masz żadnych usług na porcie 80.

: 01 grudnia 2014, 22:24
autor: pawkrol
Ja ze swojej strony dodam iż łańcuch prerouting tyczy się pakietów przed routingiem ( wchodzących na firewall) stąd "-o eth0" nie ma tu racji bytu.

: 03 grudnia 2014, 14:33
autor: ajtech
Witam, ja się podłączam pod temat. Stoi u mnie wirtualizator hyper-v serwer 2012 R2, a na nim Debian 7.7. Fizyczna maszyna posiada 4 sieciówki wiec 2 przydzieliłem na bridge'a (Debiana), karty w hyper-v przydzieliłem typu External i odznaczyłem "Allow management operation system to share this network adapter" co by mi się wirtualny switch nie zrobił. Debian pięknie je wykrył, dodałem kartę vmbridge0 i podpiąłem eth0 i eth1 pod nią. Eth0 podpięte jest do sieci wewnętrznej gdzie stoi serwer domenowy, dhcp itp, a eth1 do internetu. Po podniesieniu sieciówek, vmbridge0 wyłapało adres z dhcp przypisany na stałe po MAC adresie i niby wszystko ok pingują mi się na bridge'u adresy wewnętrzne i zewnętrzne ale wewnątrz mojej sieci internetu brak. Wirtualny bridge ma pełnić role firewall'a. Sprawdziłem iptables domyślnie wszystko ACCEPT - INPUT, OUTPUT, FORWARD, tabela NAT tez ma ACCEPT i nic nie działa. Dałem też w /etc/sysctl.d 1 dla forwardowania pakietów ipv4. Czy coś jeszcze jest do zrobienia w Debianie, czy jednak coś nie tak od strony hypervisora?

Post do skasowania założyłem nowy temat.