DSL, wystawienie komputera na osobnym IP - iptables

Konfiguracja serwerów, usług, itp.
mikus85
Posty: 2
Rejestracja: 02 stycznia 2010, 21:43

DSL, wystawienie komputera na osobnym IP - iptables

Post autor: mikus85 »

Witam.

Przeszukałem forum i nie znalazłem odpowiedzi na moje pytanie. Mianowicie mam zainstalowanego Debiana, który udostępnia internet na około 30 komputerów. £ącze DSL, które daje mi 5 adresów publicznych. Chciałby aby 2 komputery w sieci posiadały publiczne IP i były bezpośrednio wystawione (pomijając blokowanie różnych portów i ruchu przychodzącego).

Na forum znalazłem jak przypisać IP zewnętrzne do komputera w sieci, komputer jest widoczny z takim IP (sprawdzona na twojeip.wp.pl), ale nie można się zalogować do programu z kamerami z zewnątrz (działa po www).

Regułki jakie mam dodane:

Kod: Zaznacz cały

iptables -t nat -I POSTROUTING -s kom.p.w.lan -j SNAT --to zew.ad.res.ip
iptables -t nat -I PREROUTING -d zew.ad.res.ip -j DNAT --to kom.p.w.lan
iptables -I FORWARD -s zew.ad.res.ip -j ACCEPT
iptables -I FORWARD -d kom.p.w.lan -j ACCEPT
Co mam dodać aby całkowicie wystawić komputer?

Przy okazji, mam też problem z zablokowaniem jednego komputera. Wpisałem tak jak znalazłem na forum (po mac i adresie IP jaki on dostaje automatycznie z dhcp), niestety nic nie jest blokowane.

Kod: Zaznacz cały

iptables -A INPUT -m mac --mac-souruce 00:00:00:00:00:00 -j DROP
iptables -A FORWARD -m mac --mac-souruce 00:00:00:00:00:00 -j DROP
iptables -A INPUT -s kom.p.w.lan -j DROP
iptables -A INPUT -d kom.p.w.lan -j DROP
iptables -A FORWARD -s kom.p.w.lan -j DROP
iptables -A FORWARD -d kom.p.w.lan -j DROP
Dziękuję za pomoc.
Awatar użytkownika
darkwater
Junior Member
Posty: 828
Rejestracja: 25 stycznia 2007, 14:01
Lokalizacja: Częstochowa

Post autor: darkwater »

mikus85 pisze:--mac-souruce
Zwróć uwagę na LITERÓWKI, tu souruce >> source
Awatar użytkownika
grzesiek
Junior Member
Posty: 932
Rejestracja: 06 stycznia 2008, 10:41
Lokalizacja: Białystok

Post autor: grzesiek »

Jeżeli chodzi o te udostępnianie połączenia komputerowi za twoim routerem to pamiętaj, że jak pakiety wędrują przez ten router to po tablicy PREROUTING wchodzą do Twoje sieci, a ty masz:

Kod: Zaznacz cały

iptables -t nat -I PREROUTING -d zew.ad.res.ip -j DNAT --to kom.p.w.lan 
Czyli jak inicjujesz połączenie z zewnątrz to dla PREROUTING -d będzie lan (o ile można to tak nazwać - a nie można).
W ogóle to uważam, że mechanizm NAT nie służy do tego. Jeżeli dobrze zrozumiałem, to chcesz mieć za swoim routerem kolejny komputer z publicznym IP, niemającym nic wspólnego z siecią lokalną? Jeżeli tak, to po co jest translacja adresów? Jest nie potrzebna. To co chcesz zrobić to powinno tak działać jak dwa routery gdzieś po drodze pakietu. Chodzi mi o to, że ten komputer z publicznym IP nie uzyskuje połączenia do internetu przez pierwszy router, ale jest on tylko pierwszym przeskokiem.
Czyli musisz w tym komputerze ustawić wszystko tak jak na pierwszym, z tym że ma swoje IP i bramką jego jest IP pierwszego routera. Chyba nie obędzie się bez ustawienia trasowania na tym pierwszym routerze.

A z tym blokowaniem to nie wiem w jakim sensie - czego zablokowanie dla niego?
mikus85
Posty: 2
Rejestracja: 02 stycznia 2010, 21:43

Post autor: mikus85 »

darkwater pisze:
mikus85 pisze:--mac-souruce
Zwróć uwagę na LITERÓWKI, tu souruce >> source
Literówka owszem, ale tutaj na forum. W konfiguracji mam poprawnie. Niestety nie działa i cały czas widzę że jakiś ruch jest z tego IP/mac.
grzesiek pisze:Jeżeli dobrze zrozumiałem, to chcesz mieć za swoim routerem kolejny komputer z publicznym IP, niemającym nic wspólnego z siecią lokalną?
Właściwie to interesują mnie oba rozwiązania. tzn. jeden całkiem na zewnątrz wycięty z lan, drugi działający też w lan ale z publicznym IP. W chwili obecnej przy konfiguracji jakiej zapisałem komputer identyfikuje się z zewnętrznym IP ale z zewnątrz nie można się do niego dostać po tym adresie.
grzesiek pisze:A z tym blokowaniem to nie wiem w jakim sensie - czego zablokowanie dla niego?
Wszystkiego, aby całkowicie był odcięty.

Wybaczcie moją niewiedzę w tych tematach, ale z Linuksem do czynienia mam od niecałych 2 tygodni.
Awatar użytkownika
grzesiek
Junior Member
Posty: 932
Rejestracja: 06 stycznia 2008, 10:41
Lokalizacja: Białystok

Post autor: grzesiek »

Powiązanie tego komputera może odbywać się na kilka sposobów, albo typowy DMZ, gdzie sieci lokalna ma do niego dostęp przez jego publiczny adres, albo na drugiej karcie łączysz do przełącznika sieci lokalnej, bądź też nawet alias na tej samej karcie, tylko, że przepuszczasz go przez ten przełącznik.
Zresztą aby ten komputer za bramą pracował jako jakiś serwer wcale nie musi działać na publicznym IP, może to być przekierowanie, IP tu nie robią wielkiej różnicy, bo na jednej maszynie i tak obsłużysz wiele domen wiec...

Co do blokowania to re filtry co pokazałeś są prawidłowe, kwestia tego jak się nakładają na resztę reguł, może wcześniej jest przepuszczany.
Luc3k
Posty: 67
Rejestracja: 12 sierpnia 2008, 08:56
Lokalizacja: Nowy Sącz

Post autor: Luc3k »

ja to robię tak:

Kod: Zaznacz cały

#!/bin/sh

zewip=XX.XX.XX.XX
wewip=10.0.0.204
brd=XX.XX.XX.XX
mask=255.255.255.248
dev=eth0

case "$1" in
start)
echo "Public IP for 10.0.0.204 On"
        ifconfig $dev:1 $zewip broadcast $brd netmask $mask up
        iptables -t nat -I PREROUTING -s 0/0 -d $zewip -j DNAT --to $wewip
        iptables -t nat -I POSTROUTING -s $wewip -d 0/0 -j SNAT --to $zewip
        iptables -I FORWARD -d $zewip -j ACCEPT
        iptables -I FORWARD -s $wewip -j ACCEPT
        iptables -I FORWARD -d $wewip -j ACCEPT
        iptables -I INPUT -d $zewip -j ACCEPT
        ;;
stop)
echo "Public IP for 10.0.0.204 Off"
ifconfig $dev:1 down
iptables -t nat -D PREROUTING -s 0/0 -d $zewip -j DNAT --to $wewip
iptables -t nat -D POSTROUTING -s $wewip -d 0/0 -j SNAT --to $zewip
iptables -D FORWARD -d $zewip -j ACCEPT
iptables -D FORWARD -s $wewip -j ACCEPT
iptables -D FORWARD -d $wewip -j ACCEPT
iptables -D INPUT -d $zewip -j ACCEPT
        ;;
restart)
$0 stop
sleep 1
$0 start
        ;;
        *)
        echo "usage $0 (start|stop|restart)"
esac
exit 0
Przy uruchamianiu tego skryptu dla kolejnego użytkownika zwracaj uwagę na

Kod: Zaznacz cały

$dev:1
Każdemu kolejnemu użytkownikowi musisz zmienić o jeden więcej.
ODPOWIEDZ