Muskampen 2025: Segraren korad!
Permalänk

Iptables hjälp

Hej.
Har suttit ett par dagar med att försöka confa min brandvägg.
har läst väldigt mkt på forum och andra ställen men det sätter sig inte riktigt verkar det som. Jag har även testat färdiga script men inte heller det ville funka som det skulle.
Efter att ha kämpat ett tag nu så hoppas jag det finns någon av er som kan hjälpa mig.
Vad jag vill göra är följande:

*Trafik ska kastas som standard, om den inte matchar en regel. Båda trafik ut och in.
*Jag vill vidarebefodra trafik (NAT med maskering) från eth1 (ext) till eth0 (int)

När jag kör följande script så låses jag ute helt.
Det bör tilläggas att jag vill ha ssh öppet även utåt så jag kommer åt den från distans. På vilken port har ingen betydelse, har den på standard atm eftersom jag inte fått iptables att funka.
Så här ser reglerna ut.

#Lås ALL INPUT trafik ute iptables -P INPUT DROP #Lås ALL FORWARD trafik ute iptables -P FORWARD DROP #Lås ALL OUTPUT trafik ute iptables -P OUTPUT DROP ############################################ #Loggar alla drops #Skapar kedjan iptables -N logdrop #Loggar anslutningen iptables -A logdrop -j LOG #DROP på anslutningen iptables -A logdrop -j DROP ############################################# #Kasta alla paket som inte är NEW/ESTABLISHED iptables -A INPUT -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "NEW NOT SYN " iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP ############################################# #Kasta all trafik som tillhör näten 192/172 iptables -A INPUT --source 192.168.0.0/24 -j DROP iptables -A INPUT --source 172.16.0.0/16 -j DROP ############################################# #Tillåt att localhost ansluter iptables -A INPUT --in-interface lo --source 127.0.0.0/8 -j ACCEPT #Övriga världens LC får inte ansluta iptables -A INPUT --in-interface ! lo --source 127.0.0.0/8 -j DROP ############################################# #Begränsa ping iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT iptables -A INPUT -p icmp --icmp-type 3 -j ACCEPT iptables -A INPUT -p icmp --icmp-type 11 -j ACCEPT ############################################# #Släpp igenom viss trafik, baserad på port #SSH iptables -A INPUT -p tcp --destination-port 22 -j ACCEPT #WWW iptables -A INPUT -p tcp --destination-port 80 -j ACCEPT ############################################## #Tillåta svarstrafik iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT ############################################## #Logga all spärrad trafik iptables -A INPUT -j logdrop

Detta är en kombination av sånt jag hittat och sånt som jag skrivit själv, i hopp om att lära mig. Tacksam för hjälp.
Ursäkta de noobiga frågorna.

Visa signatur

Slå ner honom, ta hans byxor!
---------------------------------------
Mjölk äger allt!

Permalänk
Medlem

Varför droppa utgående trafik? Det räcker med att droppa den ingående sen öppnar man de portar som man behöver.

Permalänk
Medlem

Re: Iptables hjälp

Citat:

Ursprungligen inskrivet av General_Dark
När jag kör följande script så låses jag ute helt.

Det beror på att du har satt policyn på OUTPUT till DROP, men saknar regler som släpper ut trafik.

Jag skrev om reglerna så att de någorlunda passar in på dina önskemål:

iptables -P INPUT DROP iptables -F INPUT iptables -P FORWARD DROP iptables -F FORWARD iptables -P OUTPUT DROP iptables -F OUTPUT iptables -F -t nat iptables -F logdrop iptables -N logdrop iptables -A logdrop -j LOG iptables -A logdrop -j DROP iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -i eth0 -j ACCEPT iptables -A INPUT -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -i eth1 -p tcp -m multiport --dport 22,80 -j ACCEPT iptables -A INPUT -i eth1 -p icmp ! --icmp-type 8 -j ACCEPT #släpp igenom all icmp utom ekoförfrågningar iptables -A OUTPUT -o lo -j ACCEPT iptables -A OUTPUT -o eth0 -j ACCEPT iptables -A OUTPUT -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -j logdrop iptables -t nat -A POSTROUTING -i eth0 -o eth1 -j MASQUERADE iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT iptables -A FORWARD -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT echo "1" > /proc/sys/net/ipv4/ip_forward

Permalänk

Tackar för svaren:)

Varför jag vill droppa trafik som går ut är för att utifall en av adtorerna på insidan blir attackerad och t.ex. börjar skicka spamtrafik vill jag inte att den skall nå utanför nätverket och börja skicka ut på internet.

Tack för reglerna med:)
Men en fråga bara, om jag vill blockera all trafik som går ut från routern utom vissa portar som jag godkänner blir det mkt att skriva om då?
Jag skriver gärna om dem själv, och förhoppningsvis lär mig något, bara jag får lite vägledning för hur jag skall göra. Jag förstår att jag måste börja med att låsa allt och sen öppna upp, men lite mer exakt och detaljrikt skulle inte skada;)
Tack på förhand:)

Visa signatur

Slå ner honom, ta hans byxor!
---------------------------------------
Mjölk äger allt!

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av General_Dark
Tackar för svaren:)

Varför jag vill droppa trafik som går ut är för att utifall en av adtorerna på insidan blir attackerad och t.ex. börjar skicka spamtrafik vill jag inte att den skall nå utanför nätverket och börja skicka ut på internet.

Tack för reglerna med:)
Men en fråga bara, om jag vill blockera all trafik som går ut från routern utom vissa portar som jag godkänner blir det mkt att skriva om då?
Jag skriver gärna om dem själv, och förhoppningsvis lär mig något, bara jag får lite vägledning för hur jag skall göra. Jag förstår att jag måste börja med att låsa allt och sen öppna upp, men lite mer exakt och detaljrikt skulle inte skada;)
Tack på förhand:)

OUTPUT-kedjan gäller endast trafik som genereras av systemet ifråga. Om du vill styra över trafiken som passerar genom (routas) så är det FORWARD-kedjan som är intressant. Det är inget krav att sätta defaultpolicyn till DROP, dock är det det vanligaste sättet.

Om du t.ex endast vill tillåta vissa portar att släppas igenom skulle det kunna se ut så här:

iptables -P FORWARD DROP
iptables -A FORWARD -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -o eth1 -p tcp -m multiport --dport 22,80 -j ACCEPT
iptables -A FORWARD -o eth1 -p udp --dport 53 -j ACCEPT

Eller du kanske vill tillåta allt men spärra ett visst ip att nå en viss port:

iptables -P FORWARD ACCEPT
iptables -A FORWARD -o eth1 -s 172.16.0.10 -p tcp --dport 25 -j DROP

Den här bilden visar rätt bra hur kedjorna och tabellerna hänger ihop:

Permalänk
Permalänk
Medlem

Reglerna:

iptables -A INPUT -p UDP -i eth1 -s 0/0 --dport 135:139 -j DROP
iptables -A INPUT -p TCP -i eth1 -s 0/0 --dport 135:139 -j DROP
iptables -A INPUT -p TCP -i eth1 -s 0/0 --dport 445 -j DROP

kan vara bra att lägga in i INPUT-kedjans början för att slippa att loggarna fylls av alla Windows-datorer sökande efter datorer i nätet. De flesta Windows-användare har tyvärr inte en brandvägg som hindrar att de oavsiktligt skickas ut med multicast på Internet fast de är avsedda enbart för LAN.

Visa signatur

Fagerja