Ik heb de volgende iptables firewall geschreven voor de volgende constructie en wou daar graag commentaar van jullie op hebben als dat kan. Dus als er dingen ontbreken of verkeerd zijn laat dat dan horen, ik heb hem getest en hij werkt dus wel.
Constructie: Slackware server met 2 netwerkkaarten, op eth0 komt m'n inet binnen en op eth1 zit m'n interne netwerk. Op het interne netwerk zitten 2 computers met respectievelijk 192.168.20.3 en 192.168.20.4 als ip adressen. Mijn eth0 heeft een extern ip in de 130.*.*.* range.
Het is de bedoeling dat de firewall het inet verkeer van de interne pc's forward en masquerade. Alle het inkomende verkeer op het externe ip moet worden geblokkeert behalve de poorten: 22/80/113/31330/65101.
Constructie: Slackware server met 2 netwerkkaarten, op eth0 komt m'n inet binnen en op eth1 zit m'n interne netwerk. Op het interne netwerk zitten 2 computers met respectievelijk 192.168.20.3 en 192.168.20.4 als ip adressen. Mijn eth0 heeft een extern ip in de 130.*.*.* range.
Het is de bedoeling dat de firewall het inet verkeer van de interne pc's forward en masquerade. Alle het inkomende verkeer op het externe ip moet worden geblokkeert behalve de poorten: 22/80/113/31330/65101.
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
| #!/bin/sh # Iptables ipt="/usr/sbin/iptables" # Netwerk kaarten, Intern en extern int_if="eth1" ext_if="eth0" # IP int_ip="192.168.20.2" ext_ip="130.*.*.*" # Interne netwerk IP int_net="192.168.20.0/24" # DNS IP dns1="130.89.1.2" dns2="130.89.220.2" # Flush echo "Flushing tables..." $ipt -F $ipt -t nat -F $ipt -t mangle -F # Policies $ipt -P FORWARD DROP $ipt -P INPUT ACCEPT $ipt -P OUTPUT ACCEPT # Allow echo "Allowing 22,113,80,31330,65101..." $ipt -A INPUT -j ACCEPT -i $ext_if -s 0/0 -d $ext_ip -p tcp --dport 22 $ipt -A INPUT -j ACCEPT -i $ext_if -s 0/0 -d $ext_ip -p tcp --dport 80 $ipt -A INPUT -j ACCEPT -i $ext_if -s 0/0 -d $ext_ip -p tcp --dport 113 $ipt -A INPUT -j ACCEPT -i $ext_if -s 0/0 -d $ext_ip -p tcp --dport 31330 $ipt -A INPUT -j ACCEPT -i $ext_if -s 0/0 -d $ext_ip -p tcp --dport 65101 $ipt -A INPUT -j ACCEPT -i $int_if -s 0/0 -d $int_ip -p tcp --dport 22 $ipt -A INPUT -j ACCEPT -i $int_if -s 0/0 -d $int_ip -p tcp --dport 80 $ipt -A INPUT -j ACCEPT -i $int_if -s 0/0 -d $int_ip -p tcp --dport 113 $ipt -A INPUT -j ACCEPT -i $int_if -s 0/0 -d $int_ip -p tcp --dport 31330 $ipt -A INPUT -j ACCEPT -i $int_if -s 0/0 -d $int_ip -p tcp --dport 65101 $ipt -A INPUT -j ACCEPT -i $ext_if -s $dns1 -d $ext_ip -p udp --sport 53 $ipt -A INPUT -j ACCEPT -i $ext_if -s $dns2 -d $ext_ip -p udp --sport 53 $ipt -A INPUT -j ACCEPT -i $ext_if -s 0/0 -d $ext_ip -p icmp --icmp-type echo-request -m limit --limit-burst 2 # Block echo "Blocking the rest..." $ipt -A INPUT -j DROP -i $ext_if -s 0/0 -d $ext_ip -p tcp $ipt -A INPUT -j DROP -i $ext_if -s 0/0 -d $ext_ip -p udp $ipt -A INPUT -j DROP -i $ext_if -s 0/0 -d $ext_ip -p icmp # Forwarding echo "Forwarding $int_net to the outside world..." $ipt -A FORWARD -j ACCEPT -s $int_net $ipt -A FORWARD -j ACCEPT -d $int_net # Masquerade echo "Masquerading $int_net..." $ipt -t nat -A POSTROUTING -j MASQUERADE -s $int_net -d ! $int_net echo "Done! Have a nice day!" |