code:
1
2
3
4
| /usr/local/bin/ip tunnel add vpn0 mode ipip local xxx.xxx.xxx.xxx remote yyy.yyy.yyy.yyy ttl 255 ifconfig vpn0 10.0.2.2 netmask 255.255.255.0 route del -net 10.0.2.0 netmask 255.255.255.0 vpn0 route add -net 10.0.0.0 netmask 255.255.255.0 metric 1 vpn0 |
xxx.xxx.xxx.xxx is dus mijn eigen externe IP, yyy.yyy.yyy.yyy het IP van de bak waarmee de tunnel gemaakt is.
Alles wat daarop binnen komt wordt geaccept door iptables:
code:
1
| iptables -t filter -A INPUT -p ipip -s yyy.yyy.yyy.yyy -i eth0 -j ACCEPT |
eth0 is dus de externe adapter. Deze regel werkt prima.
Nu wil ik dat alleen het ip 10.0.1.1 SSH toegang heeft. Dit dacht ik te doen door:
code:
1
| iptables -t filter -A INPUT -p tcp -s ! 10.0.1.1 --dport 22 -i vpn0 -j DROP |
Deze regel werkt alleen niet..
code:
1
| iptables -t filter -A INPUT -p tcp --dport 22 -i vpn0 -j ACCEPT |
werkt wel.. SSH verbinding kan gemaakt worden, alleen ook door álle IPs over het vpn
code:
1
| iptables -t filter -A INPUT -p tcp -s 10.0.1.1 --dport 22 -i vpn0 -j ACCEPT |
werkt weer niet! Policy van INPUT is DROP, en alles over vpn0 wordt gedropped..
Vreemd, vond ik. Ik liet alles even toe, en maakte die SSH-verbinding vanaf 10.0.1.1 en keek in me netstat. Welk IP zag ik daar?
code:
1
| ::ffff:10.0.1.1 |