Toon posts:

Openvpn icm iptables

Pagina: 1
Acties:

Verwijderd

Topicstarter
Voor school moeten we een project maken waarbij we de infrastructuur van een onderneming moeten opzetten in linux + daarvoor ook een filiaal moeten voorzien.
Ons netwerk ziet er als volgt uit.

Afbeeldingslocatie: http://chismoor.net/infrastructuur.jpg

Aan de rechter kant van de tekening hebben we een firewall die op het schoolnetwerk zit firewall adres is 172.23.100.202, daarachter hangt er een lan en een dmz.

Aan de linker kant staat een filiaal (op iemands laptop) en die is verbonden met het internet.
We kunnen tussen de 2 filialen een vpn verbinding maken met behulp van openvpn. Het openvpn adres van het filiaal is 192.168.3.6 en het p-t-p adres is 192.168.3.5.

Aan de overkant zijn de adressen als volgt, het ip is 192.168.3.1 en het p-t-p adres is 192.168.3.2.
Beide firewalls kunnen met elkaar pingen en de firewall van het filiaal kan ook pingen met onze lan en onze dmz. Tot zover werkt alles nog goed.

Maar als we van de client(192.168.10.10) in het filiaal (helemaal links) willen pingen naar de lan van het hoofdkantoor (rechterkant). Dan komt deze verbinding niet toe op het hoofdkantoor.


Dit zijn de routes van het extern filiaal
code:
1
2
3
4
5
6
7
8
9
10
gent:~# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.3.5     *               255.255.255.255 UH    0      0        0 tun0
192.168.3.0     192.168.3.5     255.255.255.0   UG    0      0        0 tun0
192.168.2.0     192.168.3.5     255.255.255.0   UG    0      0        0 tun0
192.168.1.0     192.168.3.5     255.255.255.0   UG    0      0        0 tun0
192.168.111.0   *               255.255.255.0   U     0      0        0 eth0
192.168.10.0    *               255.255.255.0   U     0      0        0 eth1
default         192.168.111.2   0.0.0.0         UG    0      0        0 eth0


Ip route van het hoofdkantoor
code:
1
2
3
4
5
6
7
8
9
Gateway:~# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.3.0     192.168.3.2     255.255.255.0   UG    0      0        0 tun0
192.168.2.0     *               255.255.255.0   U     0      0        0 eth1
192.168.1.0     *               255.255.255.0   U     0      0        0 eth2
192.168.10.0    192.168.3.2     255.255.255.0   UG    0      0        0 tun0
localnet        *               255.255.0.0     U     0      0        0 eth0
default         172.23.100.1    0.0.0.0         UG    0      0        0 eth0


Ziet iemand hoe we dit probleem kunnen oplossen?

PS : alle servers (buiten de client links) draaien debian zonder gui. De client gebruikt ubuntu.

[ Voor 1% gewijzigd door Verwijderd op 12-12-2009 10:06 . Reden: Vermelding os ]


  • e_var
  • Registratie: September 2009
  • Laatst online: 26-05-2021
Je hebt het over iptables, maar dat komt in je verhaal niet terug.

Wat je denk ik momenteel nog mist is dat je de tun-interfaces van OpenVPN niet trusted maakt, waardoor het verkeer dus niet verder je lan op wordt geaccepteerd;

iptables -I INPUT -i tun0 -m state --state NEW -j ACCEPT
iptables -I FORWARD -i tun0 -m state --state NEW -j ACCEPT

Vanaf de commandline, -A in je firewall script.

Verder kun je met tcpdump kijken wat er met de data gebeurd, ik denk dat je school (zonder je opleiding te weten) het op zijn minst kan waarderen dat je dit hebt gebruikt.

Verwijderd

Topicstarter
Met tcpdump heb ik ontdekt dat de client een ping verzend naar de tunnel, maar die request komt blijkbaar niet toe langs de andere kant. Ondertussen heb ik de iptables ook eens gepost, misschien vinden jullie hierin een foutje.


Firewall script op het hoofdfiliaal
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
#!/bin/sh
PATH=/usr/sbin:/sbin:/bin:/usr/bin

# delete all existing rules.
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X

#alles accepteren
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# Blokkeer steeds alle verkeer van/naar onbekende connecties:
#iptables -A INPUT -m state --state INVALID -j DROP
#iptables -A FORWARD -m state --state INVALID -j DROP
#iptables -A OUTPUT -m state --state INVALID -j DROP

#Allow established connections, and those not coming from the outside
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW -i ! eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth2 -m state --state ESTABLISHED,RELATED -j ACC$
iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACC$


#Allow outgoing connections from the LAN side
iptables -A FORWARD -i eth2 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth2 -j ACCEPT
#testrule
iptables -A FORWARD -i tun0 -o eth2 -j ACCEPT
iptables -A FORWARD -i eth2 -o tun0 -j ACCEPT

#allow outgoing connections from DMZ side
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
#testrule
iptables -A FORWARD -i tun0 -o eth1 -j ACCEPT
iptables -A FORWARD -i eth1 -o tun0 -j ACCEPT


#allow connections from dmz to lan
iptables -A FORWARD -i eth1 -o eth2 -j ACCEPT
iptables -A FORWARD -i eth2 -o eth1 -j ACCEPT

# Laat verkeer van de router naar de router zelf toe:
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

#enable ssh
iptables -A INPUT -p tcp --destination-port 22 -j ACCEPT
iptables -A FORWARD -p tcp --destination-port 22 -j ACCEPT

#ping toelaten van uit het netwerk
iptables -A OUTPUT -p icmp --icmp-type 8 -m state --state NEW,ESTABLISHED,RELAT$
iptables -A INPUT -p icmp --icmp-type 0 -m state --state ESTABLISHED,RELATED -j$
#iptables -A FORWARD -p ICMP -j ACCEPT
#iptables -A OUTPUT -p ICMP -j ACCEPT
#iptables -A INPUT -p ICMP -j ACCEPT
#echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts


#poort 80
iptables -A INPUT -i eth1 -p tcp --dport 80 -d 192.168.2.2 -j ACCEPT
iptables -A OUTPUT -o eth1 -p tcp --sport 80 -s 192.168.2.2 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 80 -d 192.168.2.2 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -p tcp --sport 80 -s 192.168.2.2 -j ACCEPT
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.2.2

#poort 1194
iptables -A INPUT -p tcp -d 172.23.100.202  --dport 1194 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 1194 -j ACCEPT
iptables -A FORWARD -p tcp --dport 1194 -j ACCEPT

#Masquerade.
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

#openvpn rules
iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth1 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth2 -j ACCEPT
iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT
iptables -A FORWARD -i eth1 -o tun0 -j ACCEPT
iptables -A FORWARD -i eth2 -o tun0 -j ACCEPT

#enable routing
echo 1 > /proc/sys/net/ipv4/ip_forward


Firewall op het extern filiaal

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
#!/bin/sh
PATH=/usr/sbin:/sbin:/bin:/usr/bin
# delete all existing rules.
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X

#Pollicies
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

#Allow established connections, and those not coming from the outside
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW -i ! eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT

#Allow outgoing connections from the LAN side
#iptables -A FORWARD -i eth1 -o tun0 -j ACCEPT
#iptables -A FORWARD -i eth1 -o tun0 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT

# Laat verkeer van de router naar de router zelf toe:
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

#Masquerade.
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

#enable ssh
iptables -A INPUT -p tcp --destination-port 22 -j ACCEPT
iptables -A FORWARD -p tcp --destination-port 22 -j ACCEPT

#ping toelaten van uit het netwerk
#iptables -A OUTPUT -p icmp --icmp-type 8 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#iptables -A INPUT -p icmp --icmp-type 0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p ICMP -j ACCEPT
iptables -A OUTPUT -p ICMP -j ACCEPT
iptables -A INPUT -p ICMP -j ACCEPT
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

#openvpn rules
iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth1 -j ACCEPT
iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT
iptables -A FORWARD -i eth1 -o tun0 -j ACCEPT

#poort 1194
iptables -A INPUT -p tcp --dport 1194 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 1194 -j ACCEPT
iptables -A FORWARD -p tcp --dport 1194 -j ACCEPT

#enable routing
echo 1 > /proc/sys/net/ipv4/ip_forward


Edit: de output van tcpdump heb ik hieronder gepost (extern filiaal kant)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
gent:~# tcpdump -i tun0
tcpdump: WARNING: arptype 65534 not supported by libpcap - falling back to cooked socket
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type LINUX_SLL (Linux cooked), capture size 96 bytes
07:18:12.397601 IP 192.168.10.10 > 192.168.1.2: ICMP echo request, id 4615, seq 15, length 64
07:18:13.405899 IP 192.168.10.10 > 192.168.1.2: ICMP echo request, id 4615, seq 16, length 64
07:18:14.414241 IP 192.168.10.10 > 192.168.1.2: ICMP echo request, id 4615, seq 17, length 64
07:18:15.422584 IP 192.168.10.10 > 192.168.1.2: ICMP echo request, id 4615, seq 18, length 64
07:18:16.430950 IP 192.168.10.10 > 192.168.1.2: ICMP echo request, id 4615, seq 19, length 64
07:18:17.439286 IP 192.168.10.10 > 192.168.1.2: ICMP echo request, id 4615, seq 20, length 64
07:18:18.447653 IP 192.168.10.10 > 192.168.1.2: ICMP echo request, id 4615, seq 21, length 64
^C
7 packets captured
7 packets received by filter
0 packets dropped by kernel


De output van de tunnel aan de andere kant blijft leeg, wat wil zeggen dat er een rule staat die alles blokkeert, maar ik zie niet direct in welke:s.

Alvast bedankt

[ Voor 10% gewijzigd door Verwijderd op 12-12-2009 12:40 ]


Verwijderd

Topicstarter
Probleem is opgelost, we hebben de gateway van het extern filiaal vervangen door een client waarop openvpn draait. De gateway had eigenlijk geen toegevoegde waarde in de opstelling.