TwojePC.pl © 2001 - 2024
|
|
A R C H I W A L N A W I A D O M O Ś Ć |
|
|
|
[Linux] Iptables routing, czego nie mam załadowanego ? , carlosA 19/08/04 00:09 Osoby dramatu:
1. RH 9.1
2. iptables
Postawiłem sobie routerek, skonfigurowałem modem na usb (speedtouch 330), net śmiga, jednak mam problemy z maskaradą, o tyle, że nie wiem który moduł (prawdopodobnie) jest za to odpowiedzialny. Otóż:
iptables -A PREROUTING -s 192.168.0.0/255.255.255.0 -j MASQUERADE
daje mi w wyniku:
No chain/target by that name
ip_forward przestawiałem ręcznie poprzez:
sysctl -w net.ipv4.ip_forward=1
przeszukałem net, ale dla tego konkretnego łańcucha nic nie znalazłem.
iptables -t nat -L pokazuje mi puste łańcuchy: POSTROUTING, PREROUTING, OUTPUT (w/w string próbowałem również wpisywać dla POSTROUTING)
Pomocy.#whatever - Ja mam skrypt maskarady taki gdzie 111.222.333.444 to Twoje IP , Glock19 19/08/04 00:18
#! /bin/sh
#zaladowanie modulow NAT
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
echo "Zaladowanie modulow NAT..."
#---------------------------------------------------------------------------------
#zezwol na forwardowanie pakietow
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "Zezwolilem na fowardowanie pakietow..."
#---------------------------------------------------------------------------------
#czyszczenie regolek
iptables -F
iptables -F -t nat
iptables -t nat -F POSTROUTING
iptables -t nat -F PREROUTING
iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT
echo "iptables czyste..."
#---------------------------------------------------------------------------------
# Domyslnie nie przepuszczamy nic
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
echo "Zblokowane Wszystko..."
#---------------------------------------------------------------------------------
#uruchomienie NAT
echo "Uruchamiam NAT i maskarade..."
iptables -t nat -I POSTROUTING -s 192.168.0.2 -j SNAT --to-source 111.222.333.444
iptables -t nat -I POSTROUTING -s 192.168.0.3 -j SNAT --to-source 111.222.333.444
iptables -t nat -I POSTROUTING -s 192.168.0.4 -j SNAT --to-source 111.222.333.444
iptables -t nat -I POSTROUTING -s 192.168.0.5 -j SNAT --to-source 111.222.333.444
#iptables -t nat -I POSTROUTING -s 192.168.0.6 -j SNAT --to-source 111.222.333.444
#iptables -t nat -I POSTROUTING -s 192.168.0.7 -j SNAT --to-source 111.222.333.444
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#i tak przez tylu userkow ilu jest w sieci... %
#wyhaszowanie linijki z danym IP lokalnym odcina userka od netu %
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
echo "NAT odpalony..."
#---------------------------------------------------------------------------------
# Interfejs lokalny ma specjalne prawa
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A FORWARD -o lo -j ACCEPT
#---------------------------------------------------------------------------------
# Wpuszczamy wszystko z sieci lokalnej i wypuszczamy
# wszystko na nia. Nie nalezy dodawac tutaj analogicznej
# regulki dla FORWARD, to zalatwi za nas modul state
#iptables -A INPUT -i eth1 -j ACCEPT
#iptables -A OUTPUT -o eth1 -j ACCEPT
#---------------------------------------------------------------------------------
# Logujemy pakiety wyblokowane przez modul unclean
# *** Tymczasowo wylaczone z powodu problemow z unclean w Linuxie 2.4.6
#iptables -A INPUT -j LOG -m limit --limit 10/hour -m unclean
#iptables -A INPUT -j DROP -m unclean
#iptables -A OUTPUT -j LOG -m limit --limit 10/hour -m unclean
#iptables -A OUTPUT -j DROP -m unclean
#iptables -A FORWARD -j LOG -m limit --limit 10/hour -m unclean
#iptables -A FORWARD -j DROP -m unclean
#---------------------------------------------------------------------------------
# Odrzucamy z komunikatem ICMP Port Unreachable polaczenia
# na IDENT oraz SOCKS (czesto sprawdzane przez serwery IRC)
iptables -A INPUT -p tcp --dst 0/0 --dport 113 -j REJECT --reject-with icmp-port-unreachable
iptables -A INPUT -p tcp --dst 0/0 --dport 1080 -j REJECT --reject-with icmp-port-unreachable
#---------------------------------------------------------------------------------
# Akceptujemy pakiety ICMP Echo (ping) wchodzace i wychodzace
# Akceptacja odpowiedzi jest realizowana przez modul state RELATED
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type echo-request -j ACCEPT
echo "Zakceptowalem pingi..."
#---------------------------------------------------------------------------------
# Zezwalamy na wszystko co odbywa sie w ramach juz dozwolonych
# polaczen.
echo "Zezwalam na polaczenia juz dozwolone"
iptables -A INPUT -p tcp -j ACCEPT -m state --state ESTABLISHED
iptables -A INPUT -p udp -j ACCEPT -m state --state ESTABLISHED
iptables -A INPUT -p icmp -j ACCEPT -m state --state ESTABLISHED
iptables -A INPUT -p icmp -j ACCEPT -m state --state RELATED
iptables -A FORWARD -p tcp -j ACCEPT -m state --state ESTABLISHED
iptables -A FORWARD -p tcp -j ACCEPT -m state --state RELATED
iptables -A FORWARD -p udp -j ACCEPT -m state --state ESTABLISHED
iptables -A FORWARD -p icmp -j ACCEPT -m state --state ESTABLISHED
iptables -A FORWARD -p icmp -j ACCEPT -m state --state RELATED
iptables -A OUTPUT -p tcp -j ACCEPT -m state --state ESTABLISHED
iptables -A OUTPUT -p tcp -j ACCEPT -m state --state RELATED
iptables -A OUTPUT -p udp -j ACCEPT -m state --state ESTABLISHED
iptables -A OUTPUT -p icmp -j ACCEPT -m state --state ESTABLISHED
iptables -A OUTPUT -p icmp -j ACCEPT -m state --state RELATED
echo "Zezwolilem na polaczenia juz dozwolone..."
#---------------------------------------------------------------------------------
# Indywidualne regulki akceptujace okreslone porty lub serwery
# Zalecana jest jak najwieksza szczegolowosc tych regulek,
# w razie problemow nalezy posilkowac sie regulkami LOG
#podzial na czesci uslug TCP musialem wprowadzic z powodu nalozenia limitow portow
#podczas jednego wywolania iptables.
echo "Uruchamiam uslugi TCP/UDP"
# Uslugi TCP, dozwolone-czesc 1sza.
# 80&8080&8000-(WWW),21&20-(FTP),25-(SMTP),119-(news),53-(DNS),110-(pop3)
# 8888-(Napster),,81&443(HTTPS)
TCP_OUT_ALLOW=80,8080,21,20,25,53,119,8888,6667,110,81,443,8000,3306
# Uslugi UDP: 123-(NTP),53-(DNS),81&443(HTTPS),80&8080&8000-(WWW),21&20-(FTP)
UDP_OUT_ALLOW=123,53,81,443,80,8080,8000,21,20,3306
iptables -A INPUT -p tcp -j ACCEPT -m state --state NEW -m multiport --destination-port $TCP_OUT_ALLOW
iptables -A INPUT -p udp -j ACCEPT -m state --state NEW -m multiport --destination-port $UDP_OUT_ALLOW
iptables -A OUTPUT -p tcp -j ACCEPT -m state --state NEW -m multiport --destination-port $TCP_OUT_ALLOW
iptables -A OUTPUT -p udp -j ACCEPT -m state --state NEW -m multiport --destination-port $UDP_OUT_ALLOW
iptables -A FORWARD -p tcp -j ACCEPT -m state --state NEW -m multiport --destination-port $TCP_OUT_ALLOW
iptables -A FORWARD -p udp -j ACCEPT -m state --state NEW -m multiport --destination-port $UDP_OUT_ALLOW
echo "Uruchomilem uslugi TCP/UDP[cz.1]..."
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
# Uslugi TCP, dozwolone-czesc 2ga.
# 67-(inicjacja udp),28960-(Call Of Duty),15101-(SOF),14011,14012-(Czateria),2064-(distributed.net),706-(SILC),5222-(Jabber),137,139-(Samba)
TCP_OUT_ALLOW1=28960,15101,14011,14012,8000,2064,706,5222,20500,20510,137,139,6667
# Uslugi UDP:
# 67-(inicjacja udp),28960-(Call Of Duty),15101-(SOF),14011,14012-(Czateria),2064-(distributed.net),706-(SILC),5222-(Jabber)
UDP_OUT_ALLOW1=28960,15101,14011,14012,8000,2064,706,5222,20500,20510,137,139,6667
iptables -A INPUT -p tcp -j ACCEPT -m state --state NEW -m multiport --destination-port $TCP_OUT_ALLOW1
iptables -A INPUT -p udp -j ACCEPT -m state --state NEW -m multiport --destination-port $UDP_OUT_ALLOW1
iptables -A OUTPUT -p tcp -j ACCEPT -m state --state NEW -m multiport --destination-port $TCP_OUT_ALLOW1
iptables -A OUTPUT -p udp -j ACCEPT -m state --state NEW -m multiport --destination-port $UDP_OUT_ALLOW1
iptables -A FORWARD -p tcp -j ACCEPT -m state --state NEW -m multiport --destination-port $TCP_OUT_ALLOW1
iptables -A FORWARD -p udp -j ACCEPT -m state --state NEW -m multiport --destination-port $UDP_OUT_ALLOW1
echo "Uruchomilem uslugi TCP/UDP[cz.2]..."
#-------------------------------------------------------------------------------
echo "Uruchamiam uslugi p2p"
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#Dozwolone porty p2p
#*Aurueus[Torrent]:6881-6889
#*DC++:1403
#*Emule:tcp-4662,udp-4672
TCP_P2P=6881,6882,6883,6884,6885,6886,6887,6888,6889,1403,6969,6891
UDP_P2P=6881,6882,6883,6884,6885,6886,6887,6888,6889,1403,6969,6891
iptables -A INPUT -p tcp -j ACCEPT -m state --state NEW -m multiport --destination-port $TCP_P2P
iptables -A INPUT -p udp -j ACCEPT -m state --state NEW -m multiport --destination-port $UDP_P2P
iptables -A OUTPUT -p tcp -j ACCEPT -m state --state NEW -m multiport --destination-port $TCP_P2P
iptables -A OUTPUT -p udp -j ACCEPT -m state --state NEW -m multiport --destination-port $UDP_P2P
iptables -A FORWARD -p tcp -j ACCEPT -m state --state NEW -m multiport --destination-port $TCP_P2P
iptables -A FORWARD -p udp -j ACCEPT -m state --state NEW -m multiport --destination-port $UDP_P2P
echo "Uruchomilem uslugi p2p[cz.1]..."
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#Dozwolone porty p2p
#*Aurueus[Torrent]:6881-6889
#*g3[Torrent]
#*DC++:1403
#*Emule:tcp-4662,udp-4672
TCP_P2P1=4661,4662,57503,2710,89,81,2004,7007,9000
UDP_P2P1=4661,4672,57503,2710,89,81,2004,7007,9000
iptables -A INPUT -p tcp -j ACCEPT -m state --state NEW -m multiport --destination-port $TCP_P2P1
iptables -A INPUT -p udp -j ACCEPT -m state --state NEW -m multiport --destination-port $UDP_P2P1
iptables -A OUTPUT -p tcp -j ACCEPT -m state --state NEW -m multiport --destination-port $TCP_P2P1
iptables -A OUTPUT -p udp -j ACCEPT -m state --state NEW -m multiport --destination-port $UDP_P2P1
iptables -A FORWARD -p tcp -j ACCEPT -m state --state NEW -m multiport --destination-port $TCP_P2P1
iptables -A FORWARD -p udp -j ACCEPT -m state --state NEW -m multiport --destination-port $UDP_P2P1
echo "Uruchomilem uslugi p2p[cz.2]..."
#---------------------------------------------------------------------------------
#zezwalam na polaczenie ssh oraz telnet TYLKO z mojego "bezpiecznego" hosta
iptables -A INPUT -s 192.168.0.4 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -s 192.168.0.4 -p tcp --dport 23 -j ACCEPT
echo "Zezwalam na polaczenia ssh oraz Telnet z bezpiecznego hosta..."
#---------------------------------------------------------------------------------
#Zablokowanie pakietów z ustawionym bitem SYN[z wyj±tkiem naszego zaufanego hosta]
iptables -A INPUT -p tcp -s ! 192.168.0.4 --syn -j DROP
echo "Zablokowalem pakiety z bitem SYN..."
#-------------------------------------------------------------------------------
#Logujemy pakiety ktore nie zostaly zaakceptowane przez
#zadna z powyzszych regulek. Zostana one wyblokowane dzieki
#polityce DROP we wszystkich tablicach
iptables -A INPUT -j LOG -m limit --limit 10/hour
iptables -A OUTPUT -j LOG -m limit --limit 10/hour
iptables -A FORWARD -j LOG -m limit --limit 10/hour
echo "Loguje pakiety odrzucone - zblokowane w polityce DROP"
#------------------------------------------------------------------------------
#wlasciwe przekierowanie portow [dla programow p2p]
echo "Uruchamiam przekierowanie portów..."
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#192.168.0.2
#iptables -A PREROUTING -t nat -p tcp -m multiport -d 111.222.333.444 --dport $TCP_P2P -j DNAT --to 192.168.0.2
#iptables -A PREROUTING -t nat -p udp -m multiport -d 111.222.333.444 --dport $UDP_P2P -j DNAT --to 192.168.0.2
#iptables -A PREROUTING -t nat -p tcp -m multiport -d 111.222.333.444 --dport $TCP_P2P1 -j DNAT --to 192.168.0.2
#iptables -A PREROUTING -t nat -p udp -m multiport -d 111.222.333.444 --dport $UDP_P2P1 -j DNAT --to 192.168.0.2
#echo "Przekierowano porty dla IP[192.168.0.2]..."
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#192.168.0.3
#iptables -A PREROUTING -t nat -p tcp -m multiport -d 111.222.333.444 --dport $TCP_P2P -j DNAT --to 192.168.0.3
#iptables -A PREROUTING -t nat -p udp -m multiport -d 111.222.333.444 --dport $UDP_P2P -j DNAT --to 192.168.0.3
#iptables -A PREROUTING -t nat -p tcp -m multiport -d 111.222.333.444 --dport $TCP_P2P1 -j DNAT --to 192.168.0.3
#iptables -A PREROUTING -t nat -p udp -m multiport -d 111.222.333.444 --dport $UDP_P2P1 -j DNAT --to 192.168.0.3
#echo "Przekierowano porty dla IP[192.168.0.3]..."
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#192.168.0.4
iptables -A PREROUTING -t nat -p tcp -m multiport -d 111.222.333.444 --dport $TCP_P2P -j DNAT --to 192.168.0.4
iptables -A PREROUTING -t nat -p udp -m multiport -d 111.222.333.444 --dport $UDP_P2P -j DNAT --to 192.168.0.4
iptables -A PREROUTING -t nat -p tcp -m multiport -d 111.222.333.444 --dport $TCP_P2P1 -j DNAT --to 192.168.0.4
iptables -A PREROUTING -t nat -p udp -m multiport -d 111.222.333.444 --dport $UDP_P2P1 -j DNAT --to 192.168.0.4
echo "Przekierowano porty dla IP[192.168.0.4]..."
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#192.168.0.5
#iptables -A PREROUTING -t nat -p tcp -m multiport -d 111.222.333.444 --dport $TCP_P2P -j DNAT --to 192.168.0.5
#iptables -A PREROUTING -t nat -p udp -m multiport -d 111.222.333.444 --dport $UDP_P2P -j DNAT --to 192.168.0.5
#iptables -A PREROUTING -t nat -p tcp -m multiport -d 111.222.333.444 --dport $TCP_P2P1 -j DNAT --to 192.168.0.5
#iptables -A PREROUTING -t nat -p udp -m multiport -d 111.222.333.444 --dport $UDP_P2P1 -j DNAT --to 192.168.0.5
#echo "Przekierowano porty dla IP[192.168.0.5]..."
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#192.168.0.6
#iptables -A PREROUTING -t nat -p tcp -m multiport -d 111.222.333.444 --dport $TCP_P2P -j DNAT --to 192.168.0.6
#iptables -A PREROUTING -t nat -p udp -m multiport -d 111.222.333.444 --dport $UDP_P2P -j DNAT --to 192.168.0.6
#iptables -A PREROUTING -t nat -p tcp -m multiport -d 111.222.333.444 --dport $TCP_P2P1 -j DNAT --to 192.168.0.6
#iptables -A PREROUTING -t nat -p udp -m multiport -d 111.222.333.444 --dport $UDP_P2P1 -j DNAT --to 192.168.0.6
#echo "Przekierowano porty dla IP[192.168.0.6]..."
echo "Porty przekierowane..."
#---------------------------------------------------------------------------------
echo "ALL DONE"
echo "MaTriX Has You" - zacząłem kombinować i znalazłem rozwiązanie.. , carlosA 19/08/04 00:30
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
i działa, jednak nadal pozostaje dla mnie tajemnicą dlaczego:
iptables -A PREROUTING -s 192.168.0.0/255.255.255.0 -j MASQUERADE, nie działa, zważywszy na fakt, że w innym miejscu działa.
1. Albo stanowi różnice, że na tamtym łączu jest modem na RJ-45 (ale też neo+)
2. Albo tak duże różnice zaszły pomiędzy iptables (nie pamiętam wersji, ale niewielka różnica) pomiędzy wersjami RH 8 i 9 (chociaż z tego co pamiętam jajko przeszło tylko 2.4.18 na 2.4.20)#whatever - mam iptables 1.2.11 na jajku 2.6.7-3 , Glock19 19/08/04 00:32
na PLD ofkz - odpowiedz na to pytanie znajdziesz , josh 19/08/04 12:57
miedzy innymi tutaj:
http://iptables-tutorial.frozentux.net/...ial.html
cytuje z rozdzialu:
6.5.6. MASQUERADE target
"Note that the MASQUERADE target is only valid within the POSTROUTING chain in the nat table, just as the SNAT target."
Sproboj takze zrozumiec dlaczego MASQUARADE i SNAT nie maja zastosowania na przyklad w PREROUTING. - gdyby tak sie zastanowic , Yoghurt 19/08/04 13:05
co robi maskarada i jak wedruje pakiet przez boxa linuchowego. w uproszczeniu - wpada sobie pakiet z sieci 192.168.1.0/24 do twojego linucha i najpierw jest w PREROUTINGU (logiczne, najpierw tutaj sie pojawi). tutaj zostanie podjeta decyzja co z nim dalej zrobic, jesli wlaczyles routing w jadrze systemu to pakiet ten poleci sobie do FORWARD. tutaj jesli domyslna polityka jest ACCEPT albo sa odpowiednie regulki to pakiet poleci sobie dalej i wpadnie do POSTROUTINGU... i juz bedzie mial opuscic twojego linucha ale nagle, kuku! w internecie nie moze pojawic sie adres nieroutowalny (192.168.1.0/24) wiec trzeba ten adres zmienic - i tutaj wkracza do dziela SNAT albo maskarada (ktora swoja droga jest szczegolnym przypadkiem SNAT'u). czyli jak sama nazwa wskazuje dokonaj translacji adresu zrodlowego (SOURCE NAT). pamietaj jeszcze ze musisz miec zaladowany modul do maskarady (albo wkompilowany w jadro)root is a state of mind |
|
|
|
|
All rights reserved ® Copyright and Design 2001-2024, TwojePC.PL |
|
|
|
|