Raspberry PI VPN: Difference between revisions
imported>Jawadmin No edit summary |
imported>Jacob No edit summary |
||
| (6 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
Raspberry PI | <hr><p style="text align:left;"> | ||
Return [[Raspberry PI Knowledge Base]] | |||
<span style="float:right;"> | |||
Next [[Raspberry PI WiFi]] | |||
</span></p><hr> | |||
Install openvpn | Install openvpn | ||
| Line 7: | Line 11: | ||
Adjust /etc/openvpn/server.conf to reflect the local environment, for rapid see | Adjust /etc/openvpn/server.conf to reflect the local environment, for rapid see | ||
$ vim /etc/openvpn/serverl.conf | $ vim /etc/openvpn/serverl.conf | ||
/etc/openvpn/serverl.conf | [[/etc/openvpn/serverl.conf]] | ||
Routing is required enable this in sys control by changing /etc/openvpn/server.conf and activating it. | Routing is required enable this in sys control by changing /etc/openvpn/server.conf and activating it. | ||
$ sudo vim /etc/sysctl.conf | $ sudo vim /etc/sysctl.conf | ||
/etc/sysctl.conf | [[/etc/sysctl.conf]] | ||
Activate the change by executing: | Activate the change by executing: | ||
| Line 23: | Line 27: | ||
$ sudo iptables -A OUTPUT -o tun+ -j ACCEPT | $ sudo iptables -A OUTPUT -o tun+ -j ACCEPT | ||
$ sudo iptables -t nat -A POSTROUTING -s 20.172.0.0/24 -o eth0 -j MASQUERADE | $ sudo iptables -t nat -A POSTROUTING -s 20.172.0.0/24 -o eth0 -j MASQUERADE | ||
$ sudo iptables -I FORWARD -i tun0 -o eth0 -s 20.172.0.0/24 -d 10. | $ sudo iptables -I FORWARD -i tun0 -o eth0 -s 20.172.0.0/24 -d 10.9.9.0/24 -m conntrack --ctstate NEW -j ACCEPT | ||
$ sudo iptables -A INPUT -i eth0 -m state --state NEW -p udp --dport 1194 -j ACCEPT | $ sudo iptables -A INPUT -i eth0 -m state --state NEW -p udp --dport 1194 -j ACCEPT | ||
$ sudo iptables -A FORWARD -i tun+ -j ACCEPT | $ sudo iptables -A FORWARD -i tun+ -j ACCEPT | ||
| Line 50: | Line 54: | ||
$ sudo cp rules.v4 /etc/iptables/ | $ sudo cp rules.v4 /etc/iptables/ | ||
The content of rules.v4 looks like this for rpi2: | The content of rules.v4 looks like this for rpi2: | ||
/etc/iptables/rules.v4 | [[/etc/iptables/rules.v4]] | ||
Now reboot | Now reboot | ||
$ sudo shutdown -h now | $ sudo shutdown -h now | ||
<hr><p style="text align:left;"> | |||
Return [[Raspberry PI Knowledge Base]] | |||
<span style="float:right;"> | |||
Return [[Raspberry PI Knowledge Base]] | |||
</span></p> | |||
Latest revision as of 15:24, 6 March 2020
Return Raspberry PI Knowledge Base Next Raspberry PI WiFi
Install openvpn
$ sudo apt-get update $ sudo apt-get update $ sudo apt-get install openvpn
Adjust /etc/openvpn/server.conf to reflect the local environment, for rapid see
$ vim /etc/openvpn/serverl.conf /etc/openvpn/serverl.conf
Routing is required enable this in sys control by changing /etc/openvpn/server.conf and activating it.
$ sudo vim /etc/sysctl.conf /etc/sysctl.conf
Activate the change by executing:
$ sudo sysctl -p
Now set the firewall to allow traffic to be routed. First view existing entries in iptables:
$ sudo iptables -L $ sudo iptables -t nat -L
Enter the iptables rules, for rpi2 this is:
$ sudo iptables -A INPUT -i tun+ -j ACCEPT $ sudo iptables -A OUTPUT -o tun+ -j ACCEPT $ sudo iptables -t nat -A POSTROUTING -s 20.172.0.0/24 -o eth0 -j MASQUERADE $ sudo iptables -I FORWARD -i tun0 -o eth0 -s 20.172.0.0/24 -d 10.9.9.0/24 -m conntrack --ctstate NEW -j ACCEPT $ sudo iptables -A INPUT -i eth0 -m state --state NEW -p udp --dport 1194 -j ACCEPT $ sudo iptables -A FORWARD -i tun+ -j ACCEPT $ sudo iptables -A FORWARD -i tun+ -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT $ sudo iptables -A FORWARD -i eth0 -o tun+ -m state --state RELATED,ESTABLISHED -j ACCEPT
Check the content:
$ sudo iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- anywhere anywhere ACCEPT udp -- anywhere anywhere state NEW udp dpt:openvpn Chain FORWARD (policy ACCEPT) target prot opt source destination ACCEPT all -- 20.172.0.0/24 10.0.0.0/24 ctstate NEW ACCEPT all -- anywhere anywhere ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED Chain OUTPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- anywhere anywhere
Now install iptables-persistent, this will ask to save the existing rules in /etc/iptables/rules.v4, which will then be loaded at startup:
$ sudo apt-get install iptables-persistent
If iptables-persistent is already installed, run iptables-save and copy the file to /etc/iptables/rules.v4
$ sudo iptables-save > rules.v4 $ sudo cp rules.v4 /etc/iptables/
The content of rules.v4 looks like this for rpi2:
/etc/iptables/rules.v4
Now reboot
$ sudo shutdown -h now
Return Raspberry PI Knowledge Base Return Raspberry PI Knowledge Base