VirtualBox udostępnianie usług dla danego ip
: 29 sierpnia 2016, 00:28
Na początku cześć wszystkim, proszę o wyrozumiałość to jest mój pierwszy post.
Opis problemu:
Posiadam sieć WLAN w domu, komputery i inne hosty podłączone są do routera i pracują w sieci 192.168.1.0/24. Jeden z komputerów posiada adres ip 192.168.1.7. Są na nim dwie wirtualne maszyny (używam VirtualBox, obydwie maszyny pracują pod systemem Debian8). Pierwsza maszyna ma zainstalowaną usługę, którą chcę udostępniać innym komputerom w sieci 192.168.1.0/24. Posiada interfejs eth0 skonfigurowany statycznie, działający w trybie Internal Network. Druga maszyna posiada 2 interfejsy, pierwszy z nich jest bramą NAT, korzysta z dhcp. Drugi podobnie jak w przypadku pierwszej maszyny jest skonfigurowany statycznie i działa w trybie Internal Network. Na eth0 jest włączone przekierowanie portów, tak aby z komputerów rzeczywistych korzystać z usługi na pierwszej maszynie wirtualnej. Usługa działa na porcie 8080. W ustawieniach Vbox maszyny z NAT przekierowanie host port 8080, guest port 80.
Poniżej konfiguracja interfejsów maszyn wirtualnych:
Maszyna nr1
auto eth0
allow-hotplug eth0
iface eth0 inet static
address 10.110.34.1
netmask 255.255.254.0
gateway 10.110.34.2
Maszyna nr2
auto eth0 //ip jakie dostaje interfejs to 10.0.2.15
allow-hotplug eth0
iface eth0 inet dhcp
auto eth1
allow-hotplug eth1
iface eth1 inet static
address 10.110.34.2
netmask 255.255.254.0
Skrypt do PF uruchamiany na maszynie wirtualnej nr2
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A PREROUTING -t nat -i eth0 -p tcp -d 0/0 --dport 80 -j DNAT --to-destination 10.110.34.1:8080
Sedno sprawy:
Używając telefonu, który podłączony jest do sieci WLAN wpisuje w przeglądarkę adres 192.168.1.7:8080 (adres komputera z wirtualnymi maszynami) i mogę korzystać z usługi zainstalowanej na pierwszej maszynie wirtualnej. Z każdego innego urządzenia w tej sieci oczywiście też. Chciałbym ograniczyć teraz dostęp do usługi urządzeniom z sieci WLAN o konkretnych adresach ip i nie wiem jak to zrobić. Jak napisać regułę, żeby podczas połączenia przychodzącego np z ip 192.168.1.8, połączenie było odrzucane, natomiast dla innych ip usługa była dostępna? Czy w ustawieniach maszyny wirtualnej w VirtualBox także należy ustawić konkretny adres ip? Zamiast -i eth0 próbowałem wstawić -s [ip ktore mogą korzystać z usługi], ale w końcu wszystkie urządzenia łączą się przez adres 192.168.1.7:8080 żeby połączyć się z usługą, NAT ma wewnętrzny adres 10.0.2.15 i nie mam pojęcia skąd eth0 ma wiedzieć że żadanie połączenia przyszło z adresu 192.168.1.8 a nie np 192.168.1.40? A może trzeba zmienić coś w konfiguracji interfejsów? Z góry dziękuję za podpowiedzi.
Opis problemu:
Posiadam sieć WLAN w domu, komputery i inne hosty podłączone są do routera i pracują w sieci 192.168.1.0/24. Jeden z komputerów posiada adres ip 192.168.1.7. Są na nim dwie wirtualne maszyny (używam VirtualBox, obydwie maszyny pracują pod systemem Debian8). Pierwsza maszyna ma zainstalowaną usługę, którą chcę udostępniać innym komputerom w sieci 192.168.1.0/24. Posiada interfejs eth0 skonfigurowany statycznie, działający w trybie Internal Network. Druga maszyna posiada 2 interfejsy, pierwszy z nich jest bramą NAT, korzysta z dhcp. Drugi podobnie jak w przypadku pierwszej maszyny jest skonfigurowany statycznie i działa w trybie Internal Network. Na eth0 jest włączone przekierowanie portów, tak aby z komputerów rzeczywistych korzystać z usługi na pierwszej maszynie wirtualnej. Usługa działa na porcie 8080. W ustawieniach Vbox maszyny z NAT przekierowanie host port 8080, guest port 80.
Poniżej konfiguracja interfejsów maszyn wirtualnych:
Maszyna nr1
auto eth0
allow-hotplug eth0
iface eth0 inet static
address 10.110.34.1
netmask 255.255.254.0
gateway 10.110.34.2
Maszyna nr2
auto eth0 //ip jakie dostaje interfejs to 10.0.2.15
allow-hotplug eth0
iface eth0 inet dhcp
auto eth1
allow-hotplug eth1
iface eth1 inet static
address 10.110.34.2
netmask 255.255.254.0
Skrypt do PF uruchamiany na maszynie wirtualnej nr2
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A PREROUTING -t nat -i eth0 -p tcp -d 0/0 --dport 80 -j DNAT --to-destination 10.110.34.1:8080
Sedno sprawy:
Używając telefonu, który podłączony jest do sieci WLAN wpisuje w przeglądarkę adres 192.168.1.7:8080 (adres komputera z wirtualnymi maszynami) i mogę korzystać z usługi zainstalowanej na pierwszej maszynie wirtualnej. Z każdego innego urządzenia w tej sieci oczywiście też. Chciałbym ograniczyć teraz dostęp do usługi urządzeniom z sieci WLAN o konkretnych adresach ip i nie wiem jak to zrobić. Jak napisać regułę, żeby podczas połączenia przychodzącego np z ip 192.168.1.8, połączenie było odrzucane, natomiast dla innych ip usługa była dostępna? Czy w ustawieniach maszyny wirtualnej w VirtualBox także należy ustawić konkretny adres ip? Zamiast -i eth0 próbowałem wstawić -s [ip ktore mogą korzystać z usługi], ale w końcu wszystkie urządzenia łączą się przez adres 192.168.1.7:8080 żeby połączyć się z usługą, NAT ma wewnętrzny adres 10.0.2.15 i nie mam pojęcia skąd eth0 ma wiedzieć że żadanie połączenia przyszło z adresu 192.168.1.8 a nie np 192.168.1.40? A może trzeba zmienić coś w konfiguracji interfejsów? Z góry dziękuję za podpowiedzi.