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?

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.