herstarten is natuurlijk zelden nodig met een linux doos. Ik zal even een stukje plakken van mijn rules dan kan je zien wat ik doe.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| IPTABLES=/sbin/iptables
saveint="eth0"
saveip="192.168.0.254"
modemip="even.verwijderd"
gamepc="192.168.0.3"
modemint="eth1"
savenet="192.168.0.0/24"
echo "Enabling forwarding"
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "Clearing eveything already specified"
$IPTABLES -P INPUT DROP
$IPTABLES -F INPUT
$IPTABLES -P OUTPUT DROP
$IPTABLES -F OUTPUT
$IPTABLES -P FORWARD DROP
$IPTABLES -F FORWARD
#new chains |
Hierboven worden de standaard rules gewist
code:
1
2
3
4
5
6
7
8
| #UDP: incoming UDP connections go here
$IPTABLES -F UDP
$IPTABLES -X UDP
$IPTABLES -N UDP
#LOCKDOWN: untrusted clients
$IPTABLES -F LOCKDOWN
$IPTABLES -X LOCKDOWN
$IPTABLES -N LOCKDOWN |
Hierboven worden nieuwe target gewist verdwijderd en opnieuw geinnitialiseerd.
code:
1
2
| #natting
$IPTABLES -t nat -F |
nat rules worden gewissed
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| #WarcraftIII
$IPTABLES -t nat -A PREROUTING -p tcp -d $modemip --dport 6112 -j DNAT --to $gamepc:6112
$IPTABLES -t nat -A PREROUTING -p udp -d $modemip --dport 6112 -j DNAT --to $gamepc:6112
$IPTABLES -t nat -A PREROUTING -p tcp -d $modemip --dport 6113 -j DNAT --to $gamepc:6113
$IPTABLES -t nat -A PREROUTING -p udp -d $modemip --dport 6113 -j DNAT --to $gamepc:6113
$IPTABLES -t nat -A PREROUTING -p tcp -d $modemip --dport 6114 -j DNAT --to $gamepc:6114
$IPTABLES -t nat -A PREROUTING -p udp -d $modemip --dport 6114 -j DNAT --to $gamepc:6114
#C&C3
$IPTABLES -t nat -A PREROUTING -p tcp -d $modemip --dport 29900 -j DNAT --to $gamepc:29900
$IPTABLES -t nat -A PREROUTING -p tcp -d $modemip --dport 29901 -j DNAT --to $gamepc:29901
$IPTABLES -t nat -A PREROUTING -p tcp -d $modemip --dport 6667 -j DNAT --to $gamepc:6667
$IPTABLES -t nat -A PREROUTING -p tcp -d $modemip --dport 28910 -j DNAT --to $gamepc:28910
$IPTABLES -t nat -A PREROUTING -p udp -d $modemip --dport 27900 -j DNAT --to $gamepc:27900
$IPTABLES -t nat -A PREROUTING -p udp -d $modemip --dport 13139 -j DNAT --to $gamepc:13139
#xbox
$IPTABLES -t nat -A PREROUTING -p udp -d $modemip --dport 88 -j DNAT --to 192.168.0.6:88
$IPTABLES -t nat -A PREROUTING -p udp -d $modemip --dport 3074 -j DNAT --to 192.168.0.6:3074
$IPTABLES -t nat -A PREROUTING -p tcp -d $modemip --dport 3074 -j DNAT --to 192.168.0.6:3074
#ap
$IPTABLES -t nat -A PREROUTING -p tcp -d $modemip --dport 6115 -j DNAT --to 192.168.0.253:80
#ftp when needed
#$IPTABLES -t nat -A PREROUTING -p tcp -d $modemip --dport 20 -j DNAT --to 192.168.0.1:20
#$IPTABLES -t nat -A PREROUTING -p tcp -d $modemip --dport 21 -j DNAT --to 192.168.0.1:21 |
poortmapping woord verschillende games/xbox enzo
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| #SYN: incoming TCP connections go here
$IPTABLES -F SYN
$IPTABLES -X SYN
$IPTABLES -N SYN
$IPTABLES -A SYN -i $modemint --protocol tcp --dport 25 -j ACCEPT
$IPTABLES -A SYN -i $modemint --protocol tcp --dport 22 -j ACCEPT
$IPTABLES -A SYN -i $modemint --protocol tcp --dport 80 -j ACCEPT
$IPTABLES -A SYN -i $modemint --protocol tcp --dport 21 -j ACCEPT
$IPTABLES -A SYN -i $modemint --protocol tcp --dport 20 -j ACCEPT
$IPTABLES -A SYN -i $modemint --protocol tcp -j DROP
$IPTABLES -A SYN -i $modemint --protocol tcp --dport 3306 -j ACCEPT
$IPTABLES -A SYN -i $modemint --protocol tcp --dport 3128 -j ACCEPT
$IPTABLES -A SYN -i $modemint --protocol tcp --dport 5000 -j ACCEPT
$IPTABLES -A SYN -i $modemint --protocol tcp --dport 21 -j ACCEPT
$IPTABLES -A SYN -i $modemint --protocol tcp --dport 20 -j ACCEPT
$IPTABLES -A SYN -i $modemint --protocol tcp --dport 443 -j ACCEPT
$IPTABLES -A SYN -i $modemint --protocol tcp --dport 389 -j ACCEPT
$IPTABLES -A SYN -i $modemint --protocol tcp --dport 993 -j ACCEPT
$IPTABLES -A SYN -i $modemint --protocol tcp --dport 1194 -j ACCEPT
$IPTABLES -A SYN -i $modemint --protocol tcp --dport 2345 -j ACCEPT
$IPTABLES -A SYN -j DROP |
Nieuw chain waar alle TCP syn pakketten binnenkomen worden gechecked.
code:
1
2
3
4
5
6
| #ICMP: incoming ICMP connections go here
$IPTABLES -F ICMP
$IPTABLES -X ICMP
$IPTABLES -N ICMP
#$IPTABLES -A ICMP -i $modemint --protocol icmp -j ACCEPT
$IPTABLES -A ICMP -j DROP |
Nieuw chain waar alle ICMP pakketten binnenkomen worden gechecked.
code:
1
2
3
| $IPTABLES -A UDP -i $modemint -d $modemip --protocol udp --dport 53 -j ACCEPT
$IPTABLES -A UDP -i $modemint -d $modemip --protocol udp --dport 4534 -j ACCEPT
$IPTABLES -A UDP -j DROP |
Nieuw chain waar alle UDP worden gechecked.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| #LOCKDOWN: untrusted clients
$IPTABLES -F LOCKDOWN
$IPTABLES -X LOCKDOWN
$IPTABLES -N LOCKDOWN
$IPTABLES -A LOCKDOWN -i $saveint -o $modemint -d 194.109.6.13/32 --protocol tcp --dport 8080 -j ACCEPT
$IPTABLES -A LOCKDOWN -i $saveint -o $modemint -d 12.129.232.125/32 --protocol tcp -j ACCEPT
$IPTABLES -A LOCKDOWN -i $saveint -o $modemint --protocol tcp --dport 80 -j ACCEPT
$IPTABLES -A LOCKDOWN -i $saveint -o $modemint --protocol tcp --dport 21 -j ACCEPT
$IPTABLES -A LOCKDOWN -i $saveint -o $modemint --protocol tcp --dport 20 -j ACCEPT
$IPTABLES -A LOCKDOWN -i $saveint -o $modemint --protocol tcp --dport 443 -j ACCEPT
$IPTABLES -A LOCKDOWN -i $saveint -o $modemint --protocol tcp --dport 1863 -j ACCEPT
$IPTABLES -A LOCKDOWN -i $saveint -o $modemint --protocol tcp --dport 3724 -j ACCEPT
$IPTABLES -A LOCKDOWN -i $saveint -o $modemint --protocol udp -j ACCEPT
$IPTABLES -A LOCKDOWN -i $saveint -o $modemint -d 194.109.6.66/32 --protocol icmp -j ACCEPT
$IPTABLES -A LOCKDOWN -i $saveint -o $modemint -d 194.109.133.133/32 -j ACCEPT
$IPTABLES -A LOCKDOWN -j LOG --log-prefix LOCKDOWN:
$IPTABLES -A LOCKDOWN -j DROP |
Chain waar alle untrusted systemen worden gechecked.
code:
1
2
3
4
5
6
7
8
| #INPUT
$IPTABLES -A INPUT -i $modemint -d $modemip -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -i $modemint --protocol tcp --syn -j SYN
$IPTABLES -A INPUT -i $modemint --protocol udp -j UDP
$IPTABLES -A INPUT -i $modemint --protocol icmp -j ICMP
$IPTABLES -A INPUT -i $saveint -j ACCEPT
$IPTABLES -A INPUT -i lo -j ACCEPT |
De input rule wat accepteer ik allemaal. Wordt gejumped naar de SYN ICMP en UDP chain die eerder was aangemaakt
code:
1
2
3
4
5
6
7
8
9
10
11
| $IPTABLES -A FORWARD -i $modemint -o $saveint -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i $modemint -o $saveint -j ACCEPT
#$IPTABLES -A FORWARD -i $saveint -o $modemint -j ACCEPT
$IPTABLES -A FORWARD -i $saveint -o $modemint -d 192.168.250.3/32 -j DROP
#untrusted local segments and pc
$IPTABLES -A FORWARD -i $saveint -o $modemint -s 192.168.0.4/32 -j LOCKDOWN
$IPTABLES -A FORWARD -i $saveint -o $modemint -s 192.168.0.16/28 -j LOCKDOWN
$IPTABLES -A FORWARD -i $saveint -s 192.168.0.0/28 -o $modemint -j ACCEPT
$IPTABLES -A FORWARD -i $saveint -s 192.168.0.253/32 -o $modemint -j ACCEPT
$IPTABLES -A FORWARD -i $saveint -o $modemint -j DROP |
De forwarding rules vanaf hier wordt alles doorgestuurd naar de LOCKDOWN of direct geaccepteerd
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
26
27
28
29
30
| $IPTABLES -A OUTPUT -o lo -j ACCEPT
$IPTABLES -A OUTPUT -o $saveint -j ACCEPT
$IPTABLES -A OUTPUT -o $modemint -d 10.0.0.150/32 -j ACCEPT
$IPTABLES -A OUTPUT -o $modemint -d 194.109.6.66/32 -j ACCEPT
$IPTABLES -A OUTPUT -o $modemint -d 194.109.9.99/32 -j ACCEPT
$IPTABLES -A OUTPUT -o $modemint -d 194.109.5.241/32 -j ACCEPT
$IPTABLES -A OUTPUT -o $modemint -d 194.109.6.92/32 -j ACCEPT
$IPTABLES -A OUTPUT -o $modemint -d 83.98.192.86/32 -j ACCEPT
$IPTABLES -A OUTPUT -o $modemint -d 83.98.251.95/32 -j ACCEPT
$IPTABLES -A OUTPUT -o $modemint -d 194.109.21.26/32 -j ACCEPT
$IPTABLES -A OUTPUT -o $modemint -d 212.24.177.98/32 -j ACCEPT
$IPTABLES -A OUTPUT -o $modemint -d 10.0.0.138/32 -j ACCEPT
$IPTABLES -A OUTPUT -o $modemint --protocol udp --dport 5060 -j ACCEPT
#$IPTABLES -A OUTPUT -o $modemint -d 82.101.62.99/32 -j ACCEPT
$IPTABLES -A OUTPUT -o $modemint -d 195.13.23.5/32 --protocol udp --dport 123 -j ACCEPT
$IPTABLES -A OUTPUT -o $modemint --protocol udp -j ACCEPT
$IPTABLES -A OUTPUT -o $modemint --protocol tcp --dport 80 -j ACCEPT
$IPTABLES -A OUTPUT -o $modemint --protocol tcp --dport 20 -j ACCEPT
$IPTABLES -A OUTPUT -o $modemint --protocol tcp --dport 23 -j ACCEPT
$IPTABLES -A OUTPUT -o $modemint --protocol tcp --dport 6667 -j ACCEPT
$IPTABLES -A OUTPUT -o $modemint --protocol tcp --dport 25 -j ACCEPT
$IPTABLES -A OUTPUT -o $modemint --protocol tcp --sport 22 -j ACCEPT
$IPTABLES -A OUTPUT -o $modemint --protocol tcp --sport 25 -j ACCEPT
$IPTABLES -A OUTPUT -o $modemint --protocol tcp --sport 21 -j ACCEPT
$IPTABLES -A OUTPUT -o $modemint --protocol tcp --sport 20 -j ACCEPT
$IPTABLES -A OUTPUT -o $modemint --protocol tcp --sport 80 -j ACCEPT
$IPTABLES -A OUTPUT -o $modemint --protocol udp --dport 53 -j ACCEPT
$IPTABLES -A OUTPUT -o $modemint --protocol udp --sport 53 -j ACCEPT
$IPTABLES -A OUTPUT -o $modemint -j LOG --log-prefix LOCAL_OUT:
$IPTABLES -A OUTPUT -o $modemint -j DROP |
Output chain geeft aan wat de firewal zelf allemaal mag
code:
1
2
3
4
| $IPTABLES -A OUTPUT -o lo -j ACCEPT
$IPTABLES -t nat -A POSTROUTING -s $savenet -o $modemint -d ! 10.0.0.138 -j MASQUERADE
$IPTABLES -t nat -A POSTROUTING -o $saveint -d 192.168.0.253 -j MASQUERADE
$IPTABLES -t nat -A POSTROUTING -s 172.16.0.0/24 -o $modemint -j MASQUERADE |
en als laatste wat nat zooi. Dit is best wel complex allemaal alleen als je de netfilter docs leest kan je dit zelf doen en is het best logisch allemaal.