Hoi. Ik probeer een hele simpele Linux router op te zetten waarbij alle poorten geblokeerd moeten zijn behalve een paar.
Op de machine is eth0 de verbinding naar het internet, en is ingesteld in de 10.0.0.x range (subnet 255.255.0.0), en moet zijn internet verbinding bij 10.0.0.138 (SpeedTouch modem) weghalen. eth1 is de NIC voor het LAN, en zit in de 172.16.x.x range (subnet 255.255.252.0).
Nu heb ik het volgende zeer simpele iptables script opgesteld:
Dat *zou* genoeg moeten zijn om DNS requests mee te doen, te surfen & te pingen. Alleen lijkt het niet te werken. Pingen naar de gateway, internet ip, lan ip wil gewoon aangezien ICMP helemaal open staat, maar DNS resolven (voor bijv. pingen naar www.tweakers.net) wil niet. Voor de rest lijkt HTTP ook niet te werken.
Als ik echter het volgende in mijn script zet:
Werkt alles wel (dus het complete tcp & udp protocol vrijgeven).
Dus wat doe ik verkeerd bij het open zetten van poorten?
Op de machine is eth0 de verbinding naar het internet, en is ingesteld in de 10.0.0.x range (subnet 255.255.0.0), en moet zijn internet verbinding bij 10.0.0.138 (SpeedTouch modem) weghalen. eth1 is de NIC voor het LAN, en zit in de 172.16.x.x range (subnet 255.255.252.0).
Nu heb ik het volgende zeer simpele iptables script opgesteld:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| #! /bin/sh echo -n Setting IPTables Rules ... # Flush everything iptables -F; iptables -t nat -F; iptables -t mangle -F # Forward iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE # Accept internal connections iptables -A INPUT -i eth1 -j ACCEPT # Open up ports iptables -A INPUT -i eth0 -p icmp -j ACCEPT iptables -A INPUT -i eth0 -p udp --destination-port 53 -j ACCEPT iptables -A INPUT -i eth0 -p tcp --destination-port 53 -j ACCEPT iptables -A INPUT -i eth0 -p tcp --destination-port 80 -j ACCEPT # Drop everything iptables -P INPUT DROP # Start forwarding echo 1 > /proc/sys/net/ipv4/ip_forward |
Dat *zou* genoeg moeten zijn om DNS requests mee te doen, te surfen & te pingen. Alleen lijkt het niet te werken. Pingen naar de gateway, internet ip, lan ip wil gewoon aangezien ICMP helemaal open staat, maar DNS resolven (voor bijv. pingen naar www.tweakers.net) wil niet. Voor de rest lijkt HTTP ook niet te werken.
Als ik echter het volgende in mijn script zet:
code:
1
2
| iptables -A INPUT -i eth0 -p tcp -j ACCEPT iptables -A INPUT -i eth0 -p udp -j ACCEPT |
Werkt alles wel (dus het complete tcp & udp protocol vrijgeven).
Dus wat doe ik verkeerd bij het open zetten van poorten?