Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

iptables, adres www brak dostępu z sieci lokalnej

devastator13 11 Lip 2011 19:28 1587 5
  • #1 11 Lip 2011 19:28
    devastator13
    Poziom 2  

    Witam,

    W związku z zamknięciem tematu

    Link

    Poruszam go ponownie.

    Od klku dni walczę z moją sieci. Przekierowałemi port z adresu zewnętrznego, na komputer w sieci lokalnej, gdzie jest serwer apache. Na ip zewnętrznym na porcie 80 działa również apache ze stroną główną. Po wpisaniu zewnętrznego adresu ip i przekiierowanego portu tak samo adresu strony www i tego samo portu strona www z apache w sieci lokalnej jest wiidoczna na zewnątrz, ale nie brak połącZenia, jeżei otwieram ją z sieci lokalnej.

    W sieci lokalnej strona jest widocna gdy wpisze adres lokalny serwera apache.

    Muszę mieć dostęp do strony przez ip zewnętrzne również z sieci lokalnej.

    Proszę o pomoc jeśli ktoś zna rozwiązanie tego problemu.

    Przepraszm, jeśli piszę nieskładnie, ale padam dzisiaj na pysk :D

    0 5
  • #2 11 Lip 2011 23:52
    KSRhaziel
    Poziom 36  

    1. Zatem co otwiera przeglądarka po wpisaniu IP zewnętrznego z komputera w sieci lokalnej?
    2. Usuń historię przeglądania, pliki tymczasowe przeglądarki, itp. i spróbuj ponownie.

    0
  • #4 12 Lip 2011 00:51
    devastator13
    Poziom 2  

    Opiszę to trochę dokładniej.

    Mam serwer na linuksie z zewnętrznym ip xxx.xxx.xxx.xxx na eth0 i siecią lokalną na eth1 192.168.3.1.

    Na xxx.xxx.xxx.xxx:80 działa apache ze stroną główną. W sieci lokalnej jest maszyna 192.168.3.10, na której też działa apache na porcie 80.

    W iptables przekierowałem port xxx.xxx.xxx.xxx:26080 na 192.168.3.10:80, czyli jak wpiszę w przeglądarkę xxx.xxx.xxx.xxx:26080 to wyświetla mi się zawartość strony, która fizycznie położona jest na hoście lokalnym 192.168.3.10:80. Tak samo jak wpiszę adres www serwera czyli powiedzmy www.xyz.pl:26080.

    Problem w tym, że działa to tylko w przypadku łączenia się spoza sieci lokalnej. Np. wyłączyłem w laptopie kartę sieciową lan, połączyłem się z siecią zewnętrzną siecią WiFi i wszystko grało mogłem nawiązać połączenie z hostem, który znajdował się za bramą.

    Kiedy wepnę się po kablu do sieci lokalnej wpisywanie adresów i portów, jak wcześniej nie daje rezultatu. Jedynie wpisując w przeglądarkę lokalne ip 192.168.3.10 otrzymuję treść udostępnioną ma tym hoście.

    Próbowałem również opcji z interfejsem wirtualnym na eth1, żeby zrobić oddzielną podsieć dla hosta 192.168.3.10, ale to też nie okazało się rozwiązaniem problemu.

    @vampire86
    Dzięki za szybką odpowiedź, ale w przeglądarce mam wyłączoną historię itp.
    Sprawdzałem również na innych komputerach z sieci lokalnej, nie otrzymałem połączenia.

    @Alana
    Częściowo chyba odpowiedizałem na Twoje pytanie.
    IP publiczne jest stałe (eth0). Maszyna z publicznym IP ma załadowanego apache i jest routerem oraz na eth1 jest dhcp 192.168.101.0, eth1:1 192.168.2.0 są podpięte jakieś routerki wifi, no i eth1:3 192.168.3.0 - tutaj jest maszyna 192.168.3.10, na której jest drugi apache, tylko ten już działa na MS win

    0
  • #5 12 Lip 2011 11:03
    KSRhaziel
    Poziom 36  

    Może zrobiłeś błąd w zdefiniowaniu połączenia przychodzącego. Wklej swoją regułę w iptables.

    0
  • #6 12 Lip 2011 13:21
    devastator13
    Poziom 2  

    Wygląda to następująco:

    Code:


    ######### PRZEKIEROWANIE DO M. LOK. #################

    iptables -t nat -A PREROUTING -i eth0 -d XXX.XXX.XXX.XXX -p tcp --dport 26080 -j DNAT --to-destination 192.168.3.10:80
    iptables -t nat -A POSTROUTING -o eth0 -s 192.168.3.10 -p tcp --sport 80 -j SNAT --to-source XXX.XXX.XXX.XXX
    iptables -A FORWARD -i eth0 -o eth1 -d 192.168.3.10 -j ACCEPT
    iptables -A FORWARD -o eth0 -i eth1 -s 192.168.3.10 -j ACCEPT

    0