This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| openvpn [2021/11/10 00:06] – [Here is my steps] vissie | openvpn [2021/11/10 03:39] (current) – [Here is my steps] vissie | ||
|---|---|---|---|
| Line 9: | Line 9: | ||
| ====Here is my steps==== | ====Here is my steps==== | ||
| - | Step 1 — Installing OpenVPN and EasyRSA | + | ===Step 1 — Installing OpenVPN and EasyRSA=== | 
| sudo apt install openvpn | sudo apt install openvpn | ||
|   wget https:// |   wget https:// | ||
|   aunpack ./ |   aunpack ./ | ||
| - | Step 2 — Configuring the EasyRSA Variables and Building the CA | + | ===Step 2 — Configuring the EasyRSA Variables and Building the CA=== | 
|   cd ./ |   cd ./ | ||
| cp vars.example vars | cp vars.example vars | ||
| Line 27: | Line 27: | ||
|   set_var EASYRSA_REQ_EMAIL  |   set_var EASYRSA_REQ_EMAIL  | ||
|   set_var EASYRSA_REQ_OU  |   set_var EASYRSA_REQ_OU  | ||
| - | Step 3 — Creating the Server Certificate, | + | ===Step 3 — Creating the Server Certificate, | 
| ./easyrsa init-pki | ./easyrsa init-pki | ||
|   "... Your newly created PKI dir is: / |   "... Your newly created PKI dir is: / | ||
| Line 39: | Line 39: | ||
|   sudo cp ./ |   sudo cp ./ | ||
| ./easyrsa sign-req server server | ./easyrsa sign-req server server | ||
| + |   sudo cp ./ | ||
| + |   sudo cp ./ | ||
| ./easyrsa gen-dh | ./easyrsa gen-dh | ||
| sudo openvpn --genkey --secret ta.key | sudo openvpn --genkey --secret ta.key | ||
|   sudo cp ./ta.key / |   sudo cp ./ta.key / | ||
|   sudo cp ./ |   sudo cp ./ | ||
| - | Step 4 — Generating a Client Certificate and Key Pair | + | ===Step 4 — Generating a Client Certificate and Key Pair=== | 
| cd ~ | cd ~ | ||
|   mkdir -p ~/ |   mkdir -p ~/ | ||
| Line 56: | Line 58: | ||
|   sudo cp ~/ |   sudo cp ~/ | ||
|   sudo cp / |   sudo cp / | ||
| - | Step 5 — Configuring the OpenVPN Service | + | ===Step 5 — Configuring the OpenVPN Service=== | 
|   sudo cp / |   sudo cp / | ||
|   sudo gzip -d / |   sudo gzip -d / | ||
| Line 75: | Line 77: | ||
|   push " |   push " | ||
| # Optional! | # Optional! | ||
| - | port 443 | + | port 11 | 
| # Optional! | # Optional! | ||
| proto tcp | proto tcp | ||
| Line 81: | Line 83: | ||
| explicit-exit-notify 0 | explicit-exit-notify 0 | ||
| ... | ... | ||
| - | Step 6 — Adjusting the Server Networking Configuration  | + | ===Step 6 — Adjusting the Server Networking Configuration=== | 
|   sudo vim / |   sudo vim / | ||
| ... | ... | ||
| Line 99: | Line 101: | ||
| # from the VPN. Remember to replace eth0 in the -A POSTROUTING line below with the interface you found in the above command: | # from the VPN. Remember to replace eth0 in the -A POSTROUTING line below with the interface you found in the above command: | ||
| - | / | + | <sxh bash; gutter: false> | 
| # | # | ||
| # rules.before | # rules.before | ||
| Line 122: | Line 124: | ||
| *filter | *filter | ||
| . . . | . . . | ||
| + | </ | ||
|    |    | ||
| + |   sudo vim / | ||
| + | ... | ||
| + |   DEFAULT_FORWARD_POLICY=" | ||
| + | ... | ||
| + | sudo ufw allow 1194/udp | ||
| + | sudo ufw allow OpenSSH | ||
| + | ===Step 7 — Starting and Enabling the OpenVPN Service=== | ||
| + | sudo systemctl start openvpn@server | ||
| + | sudo systemctl status openvpn@server | ||
| + | sudo systemctl enable openvpn@server | ||
| + | ===Step 8 — Creating the Client Configuration Infrastructure=== | ||
| + |   mkdir -p ~/ | ||
| + |   cp / | ||
| + |   vim ~/ | ||
| + | ... | ||
| + | remote my.server.com 1194 | ||
| + | proto udp | ||
| + | # Downgrade privileges after initialization (non-Windows only) | ||
| + | user nobody | ||
| + | group nogroup | ||
| + | #ca ca.crt | ||
| + | #cert client.crt | ||
| + | #key client.key | ||
| + | #tls-auth ta.key 1 | ||
| + | cipher AES-256-CBC | ||
| + | auth SHA256 | ||
| + | key-direction 1 | ||
| + |   # Finally, add a few commented out lines. Although you can include these directives in every client configuration file, you only need to enable them for Linux clients  | ||
| + |   # that ship with an / | ||
| + | # script-security 2 | ||
| + |   # up / | ||
| + |   # down / | ||
| + | ... | ||
| + |   vim ~/ | ||
| + |    | ||
| + | #!/bin/bash | ||
| + | |||
| + | # First argument: Client identifier | ||
| + | <sxh bash; gutter: false> | ||
| + | KEY_DIR=/ | ||
| + | OUTPUT_DIR=/ | ||
| + | BASE_CONFIG=/ | ||
| + | |||
| + | cat ${BASE_CONFIG} \ | ||
| + |     <(echo -e '< | ||
| + |     ${KEY_DIR}/ | ||
| + |     <(echo -e '</ | ||
| + |     ${KEY_DIR}/ | ||
| + |     <(echo -e '</ | ||
| + |     ${KEY_DIR}/ | ||
| + |     <(echo -e '</ | ||
| + |     ${KEY_DIR}/ | ||
| + |     <(echo -e '</ | ||
| + |     > ${OUTPUT_DIR}/ | ||
| + | </ | ||
| + |   chmod 700 ~/ | ||
| + | ===Step 9 — Generating Client Configurations===   | ||
| + |   cd ~/ | ||
| + |   sudo ./ | ||
| + |   ls ~/ | ||
| + | ===Step 10 — Installing the Client Configuration=== | ||
| + | sudo apt install openvpn | ||
| + |   # Check to see if your distribution includes an / | ||
| + |   ls / | ||
| + | update-resolv-conf | ||
| + | #Next, edit the OpenVPN client configuration file you transfered: | ||
| + | vim client1.ovpn | ||
| + | <sxh bash; gutter: false> | ||
| + | ... | ||
| + | script-security 2 | ||
| + | up / | ||
| + | down / | ||
| + | ... | ||
| + | </ | ||
| + |    | ||
| + | |||
|    |    | ||
| ==== Here is my notes: ==== | ==== Here is my notes: ==== | ||