craano
12.10.08, 14:51
Hallo,
ich habe einen virtuellen OpenVZ Container erstellt und möchte damit eine Samba - Freigabe durch einen OpenVPN Tunnel nutzen. Die VE ist dabei selbst Client eines OpenVPN Servers.
Das läuft soweit auch ganz gut.
Jetzt möchte ich aber, dass die VE nur durch den Tunnel zu erreichen ist. Jeder andere Verkehr sollte also geblockt werden. Von außen darf also nur genau der Port offen sein, der von OpenVPN genutzt wird (1194).
Soweit zur Theorie. In der Praxis scheitere ich leider an meinen bescheidenen Iptables Fähigkeiten. Nach langem Googlen und Probieren habe ich ein script gebastelt. Doch leider ist die virtuelle Maschine jetzt gar nicht mehr erreichbar, auch nicht durch den Tunnel.
#!/bin/bash
#./firewall
#Forwarding aktivieren, falls noch nicht passiert
echo "1" > /proc/sys/net/ipv4/ip_forward
# venet0: Nur UDP auf Port 1194 reinlassen (VPN)
iptables -A INPUT -i venet0 -p udp --dport 1194 -j ACCEPT
iptables -A INPUT -i venet0 -j DROP
# veent0: Nur UDP auf Port 1194 senden
iptables -A OUTPUT -o venet0 -p udp --dport 1194 -j ACCEPT
iptables -A OUTPUT -o venet0 -j DROP
# Forwarding ueber venet0 ausschalten
iptables -A FORWARD -i venet0 -p udp --dport 1194 -j ACCEPT
iptables -A FORWARD -o venet0 -p udp --dport 1194 -j ACCEPT
iptables -A FORWARD -i venet0 -j DROP
#Kommunikation ueber Tunnel erlauben
iptables -A INPUT -i tap0 -j ACCEPT
iptables -A OUTPUT -o tap0 -j ACCEPT
iptables -A FORWARD -i tap0 -j ACCEPT
dimension5000:~# ifconfig
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:16 errors:0 dropped:0 overruns:0 frame:0
TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1290 (1.2 KiB) TX bytes:1290 (1.2 KiB)
tap0 Link encap:Ethernet HWaddr 00:FF:17:D5:61:F8
inet addr:10.10.10.4 Bcast:10.10.10.255 Mask:255.255.255.0
inet6 addr: fe80::2ff:17ff:fed5:61f8/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:44 errors:0 dropped:0 overruns:0 frame:0
TX packets:90 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:3405 (3.3 KiB) TX bytes:10338 (10.0 KiB)
venet0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:127.0.0.1 P-t-P:127.0.0.1 Bcast:0.0.0.0 Mask:255.255.255.255
UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1
RX packets:9104 errors:0 dropped:0 overruns:0 frame:0
TX packets:5824 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:523632 (511.3 KiB) TX bytes:450514 (439.9 KiB)
venet0:0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:192.168.0.199 P-t-P:192.168.0.199 Bcast:0.0.0.0 Mask:255.255.255.255
UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1
Weiss jemand Rat, wie ich sämtlichen Traffic am Tunnel vorbei blocken kann?
Grüße.
craano.
ich habe einen virtuellen OpenVZ Container erstellt und möchte damit eine Samba - Freigabe durch einen OpenVPN Tunnel nutzen. Die VE ist dabei selbst Client eines OpenVPN Servers.
Das läuft soweit auch ganz gut.
Jetzt möchte ich aber, dass die VE nur durch den Tunnel zu erreichen ist. Jeder andere Verkehr sollte also geblockt werden. Von außen darf also nur genau der Port offen sein, der von OpenVPN genutzt wird (1194).
Soweit zur Theorie. In der Praxis scheitere ich leider an meinen bescheidenen Iptables Fähigkeiten. Nach langem Googlen und Probieren habe ich ein script gebastelt. Doch leider ist die virtuelle Maschine jetzt gar nicht mehr erreichbar, auch nicht durch den Tunnel.
#!/bin/bash
#./firewall
#Forwarding aktivieren, falls noch nicht passiert
echo "1" > /proc/sys/net/ipv4/ip_forward
# venet0: Nur UDP auf Port 1194 reinlassen (VPN)
iptables -A INPUT -i venet0 -p udp --dport 1194 -j ACCEPT
iptables -A INPUT -i venet0 -j DROP
# veent0: Nur UDP auf Port 1194 senden
iptables -A OUTPUT -o venet0 -p udp --dport 1194 -j ACCEPT
iptables -A OUTPUT -o venet0 -j DROP
# Forwarding ueber venet0 ausschalten
iptables -A FORWARD -i venet0 -p udp --dport 1194 -j ACCEPT
iptables -A FORWARD -o venet0 -p udp --dport 1194 -j ACCEPT
iptables -A FORWARD -i venet0 -j DROP
#Kommunikation ueber Tunnel erlauben
iptables -A INPUT -i tap0 -j ACCEPT
iptables -A OUTPUT -o tap0 -j ACCEPT
iptables -A FORWARD -i tap0 -j ACCEPT
dimension5000:~# ifconfig
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:16 errors:0 dropped:0 overruns:0 frame:0
TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1290 (1.2 KiB) TX bytes:1290 (1.2 KiB)
tap0 Link encap:Ethernet HWaddr 00:FF:17:D5:61:F8
inet addr:10.10.10.4 Bcast:10.10.10.255 Mask:255.255.255.0
inet6 addr: fe80::2ff:17ff:fed5:61f8/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:44 errors:0 dropped:0 overruns:0 frame:0
TX packets:90 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:3405 (3.3 KiB) TX bytes:10338 (10.0 KiB)
venet0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:127.0.0.1 P-t-P:127.0.0.1 Bcast:0.0.0.0 Mask:255.255.255.255
UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1
RX packets:9104 errors:0 dropped:0 overruns:0 frame:0
TX packets:5824 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:523632 (511.3 KiB) TX bytes:450514 (439.9 KiB)
venet0:0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:192.168.0.199 P-t-P:192.168.0.199 Bcast:0.0.0.0 Mask:255.255.255.255
UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1
Weiss jemand Rat, wie ich sämtlichen Traffic am Tunnel vorbei blocken kann?
Grüße.
craano.