Tot voorkort heb ik mijn internet gedeelt met een Clarkconnect Router, dit heeft goed gewerkt, maar de router is nu erg brak omdat ik zelf dingen heb zitten installeren enzo, daar is zo'n standaard router installatie eigenlijk niet voor bedoeld en met de hoge systeemspecs (Pentium 166/64MB) werd het er ook niet beter op 
Ik heb nu vakantie, dus ik dacht: Ik heb mooi tijd om een nieuwe router op te zetten
Dus ik heb van oude onderdelen een systeempje gebouwd met:
Athlon 650
512MB SD-RAM
20GB HDD
2x 3com PCI nics (1x 10/100 voor interne netwerk en 1x 10MBit voor kabelmodem)
ISA Videokaart
Daar heb ik vervolgens Debian 3.0 op gezet. Met kernel 2.4.18-bf2.4.
Vervolgens heb ik de netwerkinterfaces geconfigureerd, en apache/php/mysql/webmin/enz...... erop gezet
Voor het routeren had ik het volgende script gemaakt:
Dit werkt, maar is natuurlijk niet erg veilig.
Daarom heb ik met dit tooltje een script in elkaar gezet:
Maar om een of andere manier werkt dit niet

Ik ben hier nu enkele dagen mee bezig, driekwart van de tijd bezig geweest met Howto's, guides, manuals, enz.. doorlezen, en de rest met prutsen op die bak
Ik weet echt niet wat er mis is met dat script
Ik heb nu vakantie, dus ik dacht: Ik heb mooi tijd om een nieuwe router op te zetten
Dus ik heb van oude onderdelen een systeempje gebouwd met:
Athlon 650
512MB SD-RAM
20GB HDD
2x 3com PCI nics (1x 10/100 voor interne netwerk en 1x 10MBit voor kabelmodem)
ISA Videokaart
Daar heb ik vervolgens Debian 3.0 op gezet. Met kernel 2.4.18-bf2.4.
Vervolgens heb ik de netwerkinterfaces geconfigureerd, en apache/php/mysql/webmin/enz...... erop gezet
Voor het routeren had ik het volgende script gemaakt:
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 # # router echo -e "\n\nLoading Router Script...\n" # IP Forwarding aanzetten echo "1" > /proc/sys/net/ipv4/ip_forward # Alles resetten iptables -P INPUT ACCEPT iptables -F INPUT iptables -P OUTPUT ACCEPT iptables -F OUTPUT iptables -P FORWARD DROP iptables -F FORWARD iptables -t nat -F # NAT iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT iptables -A FORWARD -j LOG iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE echo -e "\ndone...\n" |
Dit werkt, maar is natuurlijk niet erg veilig.
Daarom heb ik met dit tooltje een script in elkaar gezet:
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
| #!/bin/sh # # router echo -e "\n\nLoading Router Script...\n" IPT=/sbin/iptables LSMOD=/sbin/lsmod # Flushing old rules $IPT -F $IPT -t nat -F # Next is your IP NET=mijn externe ip adres # DROP IF NO FLAGS SET OR ALL FLAGS SET (Some scanning methods uses these) $IPT -t filter -A INPUT -p tcp -s 0/0 -d $NET --tcp-flags ALL NONE -j DROP $IPT -t filter -A INPUT -p tcp -s 0/0 -d $NET --tcp-flags ALL ALL -j DROP # We dont need ipchains $LSMOD | grep ipchains -q -s && rmmod ipchains # Allow everything on the loopback interface $IPT -t filter -A INPUT -i lo -s 0/0 -d 0/0 -j ACCEPT $IPT -t filter -A OUTPUT -o lo -s 0/0 -d 0/0 -j ACCEPT # This is done to enable source verification if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ]; then for f in /proc/sys/net/ipv4/conf/*/rp_filter do echo 2 > $f done fi # This one is for syncookies protection if [ -e /proc/sys/net/ipv4/tcp_syncookies ]; then echo 1 > /proc/sys/net/ipv4/tcp_syncookies fi # We dont want ICMP Dead Errors if [ -e /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses ]; then echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses fi # We want to Ignore ICMP Broadcasts if [ -e /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts ]; then echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts fi # We dont want anyone to play with dynamic TCP/IP if [ -e /proc/sys/net/ipv4/ip_dynaddr ]; then echo 0 > /proc/sys/net/ipv4/ip_dynaddr fi # These IP addresses are blocked, because they are not "routable" $IPT -t filter -A INPUT -s 1.0.0.0/8 -d $NET -j DROP $IPT -t filter -A INPUT -s 2.0.0.0/8 -d $NET -j DROP $IPT -t filter -A INPUT -s 7.0.0.0/8 -d $NET -j DROP $IPT -t filter -A INPUT -s 23.0.0.0/8 -d $NET -j DROP $IPT -t filter -A INPUT -s 27.0.0.0/8 -d $NET -j DROP $IPT -t filter -A INPUT -s 31.0.0.0/8 -d $NET -j DROP $IPT -t filter -A INPUT -s 41.0.0.0/8 -d $NET -j DROP $IPT -t filter -A INPUT -s 45.0.0.0/8 -d $NET -j DROP $IPT -t filter -A INPUT -s 60.0.0.0/8 -d $NET -j DROP $IPT -t filter -A INPUT -s 68.0.0.0/8 -d $NET -j DROP $IPT -t filter -A INPUT -s 69.0.0.0/8 -d $NET -j DROP $IPT -t filter -A INPUT -s 70.0.0.0/8 -d $NET -j DROP $IPT -t filter -A INPUT -s 71.0.0.0/8 -d $NET -j DROP $IPT -t filter -A INPUT -s 80.0.0.0/8 -d $NET -j DROP $IPT -t filter -A INPUT -s 88.0.0.0/8 -d $NET -j DROP $IPT -t filter -A INPUT -s 90.0.0.0/8 -d $NET -j DROP $IPT -t filter -A INPUT -s 91.0.0.0/8 -d $NET -j DROP $IPT -t filter -A INPUT -s 92.0.0.0/8 -d $NET -j DROP $IPT -t filter -A INPUT -s 100.0.0.0/8 -d $NET -j DROP $IPT -t filter -A INPUT -s 111.0.0.0/8 -d $NET -j DROP $IPT -t filter -A INPUT -s 112.0.0.0/8 -d $NET -j DROP $IPT -t filter -A INPUT -s 127.0.0.0/8 -d $NET -j DROP $IPT -t filter -A INPUT -s 127.0.0.0/8 -d $NET -j DROP $IPT -t filter -A INPUT -s 128.66.0.0/16 -d $NET -j DROP $IPT -t filter -A INPUT -s 172.16.0.0/12 -d $NET -j DROP $IPT -t filter -A INPUT -s 197.0.0.0/16 -d $NET -j DROP $IPT -t filter -A INPUT -s 201.0.0.0/8 -d $NET -j DROP $IPT -t filter -A INPUT -s 220.0.0.0/8 -d $NET -j DROP $IPT -t filter -A INPUT -s 222.0.0.0/8 -d $NET -j DROP $IPT -t filter -A INPUT -s 240.0.0.0/8 -d $NET -j DROP $IPT -t filter -A INPUT -s 242.0.0.0/8 -d $NET -j DROP $IPT -t filter -A INPUT -s 244.0.0.0/8 -d $NET -j DROP $IPT -t filter -A INPUT -s 251.0.0.0/8 -d $NET -j DROP $IPT -t filter -A INPUT -s 254.0.0.0/8 -d $NET -j DROP # In this Firewall we dont want Multicast allowed $IPT -t filter -A INPUT -s 224.0.0.0/8 -d 0/0 -j DROP $IPT -t filter -A INPUT -s 0/0 -d 224.0.0.0/8 -j DROP $IPT -t filter -A OUTPUT -s 224.0.0.0/8 -d 0/0 -j DROP $IPT -t filter -A OUTPUT -s 0/0 -d 224.0.0.0/8 -j DROP # Block Packets with Stuffed Routing $IPT -t filter -A INPUT -s 255.255.255.255 -j DROP $IPT -t filter -A INPUT -d 0.0.0.0 -j DROP $IPT -t filter -A OUTPUT -s 255.255.255.255 -j DROP $IPT -t filter -A OUTPUT -d 0.0.0.0 -j DROP # ICMP Should be allowed out $IPT -A OUTPUT -p icmp -s $NET -d 0/0 -j ACCEPT # Open inbound established connections (ssh) $IPT -A INPUT -p tcp --sport 22 --destination-port 513:65535 ! --syn -m state --state RELATED -j ACCEPT # FTP Data fix $IPT -A INPUT -p tcp --sport 20 --destination-port 1023:65535 ! --syn -m state --state RELATED -j ACCEPT $IPT -A INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT $IPT -A INPUT -p udp -s 0/0 -d $NET --destination-port 1023:65535 -j ACCEPT # Open ports for outbound established connections $IPT -A OUTPUT -p tcp -s $NET -d 0/0 --destination-port 1:65535 -j ACCEPT $IPT -A OUTPUT -p udp -s $NET -d 0/0 --destination-port 1:65535 -j ACCEPT # FTP allowed $IPT -t filter -A INPUT -p tcp -s 0/0 -d $NET --destination-port 20 ! --syn -j ACCEPT $IPT -t filter -A INPUT -p tcp -s 0/0 -d $NET --destination-port 21 -j ACCEPT # SSH allowed $IPT -t filter -A INPUT -p tcp -s 0/0 -d $NET --destination-port 22 -j ACCEPT # HTTP allowed $IPT -t filter -A INPUT -p tcp -s 0/0 -d $NET --destination-port 80 -j ACCEPT # HTTPS allowed $IPT -t filter -A INPUT -p tcp -s 0/0 -d $NET --destination-port 443 -j ACCEPT # These TCP ports are opened also $IPT -t filter -A INPUT -p tcp --destination-port 10000 -j ACCEPT $IPT -t filter -A INPUT -p tcp --destination-port 2064 -j ACCEPT # This is for forwarding and masquerading echo '1'> /proc/sys/net/ipv4/ip_forward /sbin/iptables --table nat --append POSTROUTING -o eth0 -j MASQUERADE /sbin/iptables --append FORWARD --in-interface eth1 -j ACCEPT # RESTART KLOGD (So we dont get flooded by iptables to tty) killall -9 klogd /sbin/klogd -x -c 4 # Deny everything not let through earlier $IPT -A INPUT -j DROP echo -e "\ndone...\n" |
Maar om een of andere manier werkt dit niet
Ik ben hier nu enkele dagen mee bezig, driekwart van de tijd bezig geweest met Howto's, guides, manuals, enz.. doorlezen, en de rest met prutsen op die bak
Ik weet echt niet wat er mis is met dat script