Po

Masz problemy z siecią bądź internetem? Zapytaj tu
kabak
Posty: 3
Rejestracja: 01 grudnia 2014, 16:42

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

Post 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ć?
Załączniki
Bez tytułu.jpg
Awatar użytkownika
dedito
Moderator
Posty: 3588
Rejestracja: 18 listopada 2013, 21:07
Lokalizacja: Gliwice

Post 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ć.
kabak
Posty: 3
Rejestracja: 01 grudnia 2014, 16:42

Post 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...
Awatar użytkownika
dedito
Moderator
Posty: 3588
Rejestracja: 18 listopada 2013, 21:07
Lokalizacja: Gliwice

Post 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.
kabak
Posty: 3
Rejestracja: 01 grudnia 2014, 16:42

Post 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.
Awatar użytkownika
dedito
Moderator
Posty: 3588
Rejestracja: 18 listopada 2013, 21:07
Lokalizacja: Gliwice

Post 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.
Awatar użytkownika
pawkrol
Moderator
Posty: 939
Rejestracja: 03 kwietnia 2011, 10:25

Post 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.
ajtech
Posty: 12
Rejestracja: 24 lutego 2014, 10:16

Post 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.
ODPOWIEDZ