Configuratie van de interfaces:
eth0: 192.168.0.1/255.255.255.0
eth1: 24.132.xxx.xxx/255.255.255.0
tap0: 10.1.0.1/255.255.255.0
Voor de volledigheid ook het complete IPTABLES-script:
De laatste 2 weken ben ik druk bezig geweest om een OpenVPN-setup werkend te krijgen op mn router/server/verzamelbak. Eerst aan het experimenteren geweest met freeswan en pptpd, dat is allemaal niks geworden. De laatste paar dagen met OpenVPN aan de gang geweest, en dat werkt allemaal ongeveer naar wens. Er blijven wel een paar puntjes over waar nog wat aan gewerkt moet worden. Als leidraad voor de configuratie heb ik de howto op http://brneurosci.org/linuxsetup71.html gebruikt.
Een punt waar ik zelf niet uitkom zijn de aanpassingen van de firewall:
Het stukje firewall waar het om draait:
En dan met name de bovenste 3 regels eruit, hiermee sta je veel te veel toe, maar dat was de enige optie waarmee ik het met mijn beperkte kennis van IPTABLES werkend kon krijgen. Wat ik er van begrijp is dat je op deze manier alle soorten verkeer over alle interfaces toelaat, iets wat niet de bedoeling is.
Tot gister was dit stukje er nog niet bij, en alle netwerkverkeer voor de interfaces eth0 en eth1 werkte prima, maar met tap0 kon ik niks beginnen. Wie kan mij een schop in de goede richting geven zodat ik zonder onnodig veel open te zetten toch kan VPN-en?
eth0: 192.168.0.1/255.255.255.0
eth1: 24.132.xxx.xxx/255.255.255.0
tap0: 10.1.0.1/255.255.255.0
Voor de volledigheid ook het complete IPTABLES-script:
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
151
152
| !/bin/sh
#
###########################################################################
set -x
DEBUG_LEVEL=INFO
EXTIF="eth1"
EXTIP=`ifconfig $EXTIF | awk '/inet addr/ { gsub(".*:", "", $2) ; print $2 }'`
EXTBROAD=`ifconfig $EXTIF | awk '/inet addr/ { gsub(".*:", "", $3) ; print $3 }'`
EXTGW=`/sbin/route -n | grep -A 4 UG | awk '{ print $2}'`
echo External IP: $EXTIP
echo External broadcast: $EXTBROAD
echo Default GW: $EXTGW
echo " --- "
INTIF="eth0"
INTIP=`ifconfig $INTIF | awk '/inet addr/ { gsub(".*:", "", $2) ; print $2 }'`
INT_MASK="`ifconfig $INTIF |grep Mask |cut -d: -f4`"
INTLAN="192.168.0.0/255.255.255.0"
echo Internal Interface: $INTIF
echo Internal IP: $INTIP
echo Internal LAN: $INTLAN
echo " --- "
LOIF="lo"
LOIP="127.0.0.1"
BROADCAST="255.255.255.255"
IPTABLES="`which iptables`"
# /sbin/depmod -a
# /sbin/modprobe ip_tables
# /sbin/modprobe ip_conntrack
# /sbin/modprobe iptable_filter
# /sbin/modprobe iptable_mangle
# /sbin/modprobe iptable_nat
# /sbin/modprobe ipt_LOG
# /sbin/modprobe ipt_limit
# /sbin/modprobe ipt_state
#/sbin/modprobe ipt_owner
#/sbin/modprobe ipt_REJECT
#/sbin/modprobe ipt_MASQUERADE
#/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_conntrack_irc
#/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_nat_irc
###########################################################################
echo "echo 1 > /proc/sys/net/ipv4/ip_forward" && echo 1 > /proc/sys/net/ipv4/ip_forward
echo "echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter" && echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
echo "echo 1 > /proc/sys/net/ipv4/ip_dynaddr" && echo 1 > /proc/sys/net/ipv4/ip_dynaddr
###########################################################################
$IPTABLES -t filter -P INPUT DROP
$IPTABLES -t filter -P OUTPUT DROP
$IPTABLES -t filter -P FORWARD DROP
$IPTABLES -t nat -P PREROUTING ACCEPT
$IPTABLES -t nat -P POSTROUTING ACCEPT
$IPTABLES -t nat -P OUTPUT ACCEPT
$IPTABLES -t mangle -P PREROUTING ACCEPT
$IPTABLES -t mangle -P OUTPUT ACCEPT
$IPTABLES -t filter -F
$IPTABLES -t nat -F
$IPTABLES -t mangle -F
$IPTABLES -t filter -X
$IPTABLES -t nat -X
$IPTABLES -t mangle -X
$IPTABLES -A INPUT -p ALL -i $INTIF -s $INTLAN -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LOIF -s $LOIP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LOIF -s $INTIP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LOIF -s $EXTIP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $INTIF -s 0.0.0.0 -d 255.255.255.255 -j ACCEPT
$IPTABLES -A INPUT -p ALL -d $EXTIP -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -p TCP --syn -s 0/0 --dport http -j ACCEPT
$IPTABLES -A INPUT -p TCP --syn -s 0/0 --dport 110 -j ACCEPT
$IPTABLES -A INPUT -p TCP --syn -s 0/0 --dport 631 -j ACCEPT
$IPTABLES -A INPUT -p TCP --syn -s 0/0 --dport 25 -j ACCEPT
$IPTABLES -A INPUT -p TCP --syn -s 0/0 --dport 22 -j ACCEPT
$IPTABLES -A INPUT -p TCP --syn -s 0/0 --dport 21 -j ACCEPT
$IPTABLES -A INPUT -p TCP --syn -s 0/0 --dport 65500:65534 -j ACCEPT
$IPTABLES -A INPUT -p ICMP -s 0/0 --icmp-type echo-reply -j ACCEPT
$IPTABLES -A INPUT -p ICMP -s 0/0 --icmp-type echo-request -j ACCEPT
$IPTABLES -A INPUT -p ICMP -s 0/0 --icmp-type time-exceeded -j ACCEPT
$IPTABLES -A INPUT -i $EXTIF -d 224.0.0.0/8 -j DROP
$IPTABLES -A INPUT -d $EXTBROAD -j DROP
$IPTABLES -A INPUT -d $BROADCAST -j DROP
$IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3
$IPTABLES -A FORWARD -i $INTIF -j ACCEPT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -m limit --limit 3/minute --limit-burst 3
$IPTABLES -A OUTPUT -p ALL -s $LOIP -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $INTIP -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $EXTIP -j ACCEPT
$IPTABLES -A OUTPUT -m limit --limit 3/minute --limit-burst 3
$IPTABLES -t nat -A POSTROUTING -o $EXTIF -j SNAT --to-source $EXTIP
# Forward
$IPTABLES -t nat -A PREROUTING -p TCP -i $EXTIF -d $EXTIP --dport 6346 -j DNAT --to 192.168.0.10:6346
$IPTABLES -t nat -A PREROUTING -p UDP -i $EXTIF -d $EXTIP --dport 6346 -j DNAT --to 192.168.0.11:6346
$IPTABLES -t nat -A PREROUTING -p TCP -i $EXTIF -d $EXTIP --dport 50000:60000 -j DNAT --to 192.168.0.10:50000-60000
$IPTABLES -t nat -A PREROUTING -p UDP -i $EXTIF -d $EXTIP --dport 50000 -j DNAT --to 192.168.0.10:50000-60000
$IPTABLES -t nat -A PREROUTING -p TCP -i $EXTIF -d $EXTIP --dport 3389 -j DNAT --to 192.168.0.10:3389
$IPTABLES -A FORWARD -p TCP -i $EXTIF -d 192.168.0.10 --dport 6346 -j ACCEPT
$IPTABLES -A FORWARD -p UDP -i $EXTIF -d 192.168.0.10 --dport 6346 -j ACCEPT
$IPTABLES -A FORWARD -p TCP -i $EXTIF -d 192.168.0.10 --dport 50000:60000 -j ACCEPT
$IPTABLES -A FORWARD -p UDP -i $EXTIF -d 192.168.0.10 --dport 50000:60000 -j ACCEPT
$IPTABLES -A FORWARD -p TCP -i $EXTIF -d 192.168.0.10 --dport 3389 -j ACCEPT
# VPN-zooi
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -A INPUT -p udp --dport 1194 -j ACCEPT
#$IPTABLES -A INPUT -i tun+ -j ACCEPT
#$IPTABLES -A FORWARD -i tun+ -j ACCEPT
$IPTABLES -A INPUT -i tap+ -j ACCEPT
$IPTABLES -A FORWARD -i tap+ -j ACCEPT
$IPTABLES -t nat -A POSTROUTING -s 10.1.0.0/24 -o eth0 -j MASQUERADE |
De laatste 2 weken ben ik druk bezig geweest om een OpenVPN-setup werkend te krijgen op mn router/server/verzamelbak. Eerst aan het experimenteren geweest met freeswan en pptpd, dat is allemaal niks geworden. De laatste paar dagen met OpenVPN aan de gang geweest, en dat werkt allemaal ongeveer naar wens. Er blijven wel een paar puntjes over waar nog wat aan gewerkt moet worden. Als leidraad voor de configuratie heb ik de howto op http://brneurosci.org/linuxsetup71.html gebruikt.
Een punt waar ik zelf niet uitkom zijn de aanpassingen van de firewall:
Het stukje firewall waar het om draait:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| # VPN-zooi $IPTABLES -P INPUT ACCEPT $IPTABLES -P FORWARD ACCEPT $IPTABLES -P OUTPUT ACCEPT $IPTABLES -A INPUT -p udp --dport 1194 -j ACCEPT #$IPTABLES -A INPUT -i tun+ -j ACCEPT #$IPTABLES -A FORWARD -i tun+ -j ACCEPT #$IPTABLES -A INPUT -i tap+ -j ACCEPT #$IPTABLES -A FORWARD -i tap+ -j ACCEPT #$IPTABLES -t nat -A POSTROUTING -s 10.1.0.0/24 -o eth0 -j MASQUERADE |
En dan met name de bovenste 3 regels eruit, hiermee sta je veel te veel toe, maar dat was de enige optie waarmee ik het met mijn beperkte kennis van IPTABLES werkend kon krijgen. Wat ik er van begrijp is dat je op deze manier alle soorten verkeer over alle interfaces toelaat, iets wat niet de bedoeling is.
Tot gister was dit stukje er nog niet bij, en alle netwerkverkeer voor de interfaces eth0 en eth1 werkte prima, maar met tap0 kon ik niks beginnen. Wie kan mij een schop in de goede richting geven zodat ik zonder onnodig veel open te zetten toch kan VPN-en?