VPN: Difference between revisions
No edit summary |
|||
Line 51: | Line 51: | ||
<pre>wget http://ipinfo.io/ip -qO -</pre> | <pre>wget http://ipinfo.io/ip -qO -</pre> | ||
== Start PIA via Service == | |||
<pre>sudo /etc/init.d/pia</pre> | |||
Add the following: | |||
<pre> | |||
#!/bin/sh | |||
### BEGIN INIT INFO | |||
# Provides: OpenVPN Autoconnect | |||
# Required-Start: $local_fs $remote_fs $network | |||
# Required-Stop: $local_fs $remote_fs $network | |||
# Default-Start: 2 3 4 5 | |||
# Default-Stop: 0 1 6 | |||
# Short-Description: OpenVPN Autoconnect | |||
# Description: OpenVPN Autoconnect | |||
### END INIT INFO | |||
# Documentation available at | |||
# http://refspecs.linuxfoundation.org/LSB_3.1.0/LSB-Core-generic/LSB-Core-generic/iniscrptfunc.html | |||
# Debian provides some extra functions though | |||
. /lib/lsb/init-functions | |||
DAEMON_NAME="openvpnauto" | |||
DAEMON_USER=root | |||
DAEMON_PATH="/usr/sbin/openvpn" | |||
DAEMON_OPTS="--config /etc/openvpn/spain_bp.ovpn --auth-user-pass /etc/openvpn/login.txt" | |||
DAEMON_PWD="/etc/openvpn" | |||
DAEMON_DESC=$(get_lsb_header_val $0 "Short-Description") | |||
DAEMON_PID="/var/run/${DAEMON_NAME}.pid" | |||
DAEMON_NICE=0 | |||
DAEMON_LOG='/var/log/openvpnauto.log' | |||
[ -r "/etc/default/${DAEMON_NAME}" ] && . "/etc/default/${DAEMON_NAME}" | |||
do_start() { | |||
local result | |||
pidofproc -p "${DAEMON_PID}" "${DAEMON_PATH}" > /dev/null | |||
if [ $? -eq 0 ]; then | |||
log_warning_msg "${DAEMON_NAME} is already started" | |||
result=0 | |||
else | |||
log_daemon_msg "Starting ${DAEMON_DESC}" "${DAEMON_NAME}" | |||
touch "${DAEMON_LOG}" | |||
chown $DAEMON_USER "${DAEMON_LOG}" | |||
chmod u+rw "${DAEMON_LOG}" | |||
if [ -z "${DAEMON_USER}" ]; then | |||
start-stop-daemon --start --quiet --oknodo --background \ | |||
--nicelevel $DAEMON_NICE \ | |||
--chdir "${DAEMON_PWD}" \ | |||
--pidfile "${DAEMON_PID}" --make-pidfile \ | |||
--exec "${DAEMON_PATH}" -- $DAEMON_OPTS | |||
result=$? | |||
else | |||
start-stop-daemon --start --quiet --oknodo --background \ | |||
--nicelevel $DAEMON_NICE \ | |||
--chdir "${DAEMON_PWD}" \ | |||
--pidfile "${DAEMON_PID}" --make-pidfile \ | |||
--chuid "${DAEMON_USER}" \ | |||
--exec "${DAEMON_PATH}" -- $DAEMON_OPTS | |||
result=$? | |||
fi | |||
log_end_msg $result | |||
fi | |||
return $result | |||
} | |||
do_stop() { | |||
local result | |||
pidofproc -p "${DAEMON_PID}" "${DAEMON_PATH}" > /dev/null | |||
if [ $? -ne 0 ]; then | |||
log_warning_msg "${DAEMON_NAME} is not started" | |||
result=0 | |||
else | |||
log_daemon_msg "Stopping ${DAEMON_DESC}" "${DAEMON_NAME}" | |||
killproc -p "${DAEMON_PID}" "${DAEMON_PATH}" | |||
result=$? | |||
log_end_msg $result | |||
rm "${DAEMON_PID}" | |||
fi | |||
return $result | |||
} | |||
do_restart() { | |||
local result | |||
do_stop | |||
result=$? | |||
if [ $result = 0 ]; then | |||
do_start | |||
result=$? | |||
fi | |||
return $result | |||
} | |||
do_status() { | |||
local result | |||
status_of_proc -p "${DAEMON_PID}" "${DAEMON_PATH}" "${DAEMON_NAME}" | |||
result=$? | |||
return $result | |||
} | |||
do_usage() { | |||
echo $"Usage: $0 {start | stop | restart | status}" | |||
exit 1 | |||
} | |||
case "$1" in | |||
start) do_start; exit $? ;; | |||
stop) do_stop; exit $? ;; | |||
restart) do_restart; exit $? ;; | |||
status) do_status; exit $? ;; | |||
*) do_usage; exit 1 ;; | |||
esac</pre> |
Revision as of 20:29, 22 December 2024
PIA and OpenVPN
Install OpenVPN
sudo apt-get install openvpn unzip -y cd /etc/openvpn
Download Private Internet Access
sudo wget --no-check-certificate https://www.privateinternetaccess.com/openvpn/openvpn.zip sudo unzip openvpn.zip ls -lh
Pick a Country to use as Primary VPN
cp spain.ovpn spain_bp.ovpn vi spain_bp.ovpn
At the end of the file, add Routes to the Local Networks (if needed)
route 192.168.1.0 255.255.255.0 net_gateway route 192.168.2.0 255.255.255.0 net_gateway
Add Credentials to Login.txt file
sudo vi /etc/openvpn/login.txt
In this format:
username password
Limit access to login file
sudo chmod 700 /etc/openvpn/login.txt
Add nameservers to DNS (if needed)
echo "nameserver 8.8.8.8" | sudo tee -a /etc/resolv.conf echo "nameserver 8.8.4.4" | sudo tee -a /etc/resolv.conf sudo chattr +i /etc/resolve.conf
At this point, you should be able to test with:
sudo openvpn --config /etc/openvpn/spain_bp.ovpn --auth-user-pass /etc/openvpn/login.txt
And then to test that your network providers IP is hidden:
wget http://ipinfo.io/ip -qO -
Start PIA via Service
sudo /etc/init.d/pia
Add the following:
#!/bin/sh ### BEGIN INIT INFO # Provides: OpenVPN Autoconnect # Required-Start: $local_fs $remote_fs $network # Required-Stop: $local_fs $remote_fs $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: OpenVPN Autoconnect # Description: OpenVPN Autoconnect ### END INIT INFO # Documentation available at # http://refspecs.linuxfoundation.org/LSB_3.1.0/LSB-Core-generic/LSB-Core-generic/iniscrptfunc.html # Debian provides some extra functions though . /lib/lsb/init-functions DAEMON_NAME="openvpnauto" DAEMON_USER=root DAEMON_PATH="/usr/sbin/openvpn" DAEMON_OPTS="--config /etc/openvpn/spain_bp.ovpn --auth-user-pass /etc/openvpn/login.txt" DAEMON_PWD="/etc/openvpn" DAEMON_DESC=$(get_lsb_header_val $0 "Short-Description") DAEMON_PID="/var/run/${DAEMON_NAME}.pid" DAEMON_NICE=0 DAEMON_LOG='/var/log/openvpnauto.log' [ -r "/etc/default/${DAEMON_NAME}" ] && . "/etc/default/${DAEMON_NAME}" do_start() { local result pidofproc -p "${DAEMON_PID}" "${DAEMON_PATH}" > /dev/null if [ $? -eq 0 ]; then log_warning_msg "${DAEMON_NAME} is already started" result=0 else log_daemon_msg "Starting ${DAEMON_DESC}" "${DAEMON_NAME}" touch "${DAEMON_LOG}" chown $DAEMON_USER "${DAEMON_LOG}" chmod u+rw "${DAEMON_LOG}" if [ -z "${DAEMON_USER}" ]; then start-stop-daemon --start --quiet --oknodo --background \ --nicelevel $DAEMON_NICE \ --chdir "${DAEMON_PWD}" \ --pidfile "${DAEMON_PID}" --make-pidfile \ --exec "${DAEMON_PATH}" -- $DAEMON_OPTS result=$? else start-stop-daemon --start --quiet --oknodo --background \ --nicelevel $DAEMON_NICE \ --chdir "${DAEMON_PWD}" \ --pidfile "${DAEMON_PID}" --make-pidfile \ --chuid "${DAEMON_USER}" \ --exec "${DAEMON_PATH}" -- $DAEMON_OPTS result=$? fi log_end_msg $result fi return $result } do_stop() { local result pidofproc -p "${DAEMON_PID}" "${DAEMON_PATH}" > /dev/null if [ $? -ne 0 ]; then log_warning_msg "${DAEMON_NAME} is not started" result=0 else log_daemon_msg "Stopping ${DAEMON_DESC}" "${DAEMON_NAME}" killproc -p "${DAEMON_PID}" "${DAEMON_PATH}" result=$? log_end_msg $result rm "${DAEMON_PID}" fi return $result } do_restart() { local result do_stop result=$? if [ $result = 0 ]; then do_start result=$? fi return $result } do_status() { local result status_of_proc -p "${DAEMON_PID}" "${DAEMON_PATH}" "${DAEMON_NAME}" result=$? return $result } do_usage() { echo $"Usage: $0 {start | stop | restart | status}" exit 1 } case "$1" in start) do_start; exit $? ;; stop) do_stop; exit $? ;; restart) do_restart; exit $? ;; status) do_status; exit $? ;; *) do_usage; exit 1 ;; esac