LWM-Linux/04 - Networking in Linux/VPN and Proxy Configuration.md

163 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

i# VPN and proxy configuration in Linux
## 1. VPN Configuration
VPNs (Virtual Private Networks) provide secure, encrypted connections over public networks. There are several VPN protocols and clients available for Linux.
### OpenVPN:
OpenVPN is one of the most popular and secure VPN protocols. To set it up:
- 1. Install OpenVPN:
```
sudo apt install openvpn
```
- 2. Obtain configuration files from your VPN provider.
- 3. Connect to the VPN:
```
sudo openvpn --config /path/to/your/config.ovpn
```
- 4. For automatic connection, create a systemd service:
```
sudo nano /etc/systemd/system/openvpn.service
```
Add the following content:
```
[Unit]
Description=OpenVPN connection to YOUR_VPN
After=network.target
[Service]
ExecStart=/usr/sbin/openvpn --config /path/to/your/config.ovpn
Restart=always
[Install]
WantedBy=multi-user.target
```
Enable and start the service:
```
sudo systemctl enable openvpn.service
sudo systemctl start openvpn.service
```
### WireGuard:
WireGuard is a newer, faster VPN protocol. To set it up:
- a. Install WireGuard:
```
sudo apt install wireguard
```
- b. Create a configuration file:
```
sudo nano /etc/wireguard/wg0.conf
```
Add your WireGuard configuration details.
- c. Start the WireGuard connection:
```
sudo wg-quick up wg0
```
- d. To enable automatic connection on boot:
```
sudo systemctl enable wg-quick@wg0
```
### Built-in VPN clients:
Many Linux distributions include built-in VPN clients in their network managers, supporting protocols like OpenVPN, L2TP/IPsec, and PPTP.
## 2. Proxy Configuration
Proxies route your traffic through an intermediary server. There are several ways to configure proxies in Linux:
### Environment variables:
Set these variables in your shell configuration file (e.g., ~/.bashrc):
```
export http_proxy="http://proxy_server:port"
export https_proxy="http://proxy_server:port"
export ftp_proxy="http://proxy_server:port"
export no_proxy="localhost,127.0.0.1,::1"
```
### System-wide proxy settings:
For GNOME-based systems:
- a. Open Settings > Network > Network Proxy
- b. Choose "Manual" and enter your proxy details
### For KDE-based systems:
- a. Open System Settings > Network Settings > Proxy
- b. Choose "Manual" and enter your proxy details
### Application-specific proxy settings:
Many applications have their own proxy settings. For example:
- Firefox: Preferences > Network Settings > Configure Proxy Access to the Internet
- Chrome: Settings > Advanced > System > Open your computer's proxy settings
### Command-line tools:
Use proxychains to route terminal commands through a proxy:
#### 1. Install proxychains:
```
sudo apt install proxychains
```
#### 2. Configure proxychains:
```
sudo nano /etc/proxychains.conf
```
Add your proxy server details.
#### 3. Use proxychains:
```
proxychains command_to_run
```
### SOCKS proxy with SSH:
Create a SOCKS proxy using SSH:
```
ssh -D 1080 -f -C -q -N username@remote_host
```
Then configure applications to use SOCKS5 proxy at 127.0.0.1:1080.
## 3. Testing and Verification
To verify your VPN or proxy configuration:
- Check your IP address:
```
curl ifconfig.me
```
- DNS leak test:
```
dig +short myip.opendns.com @resolver1.opendns.com
```
- WebRTC leak test (in browsers)
- Use tools like ipleak.net or dnsleak.com
## 4. Security Considerations
- Keep your VPN client and system updated
- Use strong authentication methods (e.g., certificates for OpenVPN)
- Be cautious with free VPN or proxy services
- Consider using a kill switch to prevent traffic leaks if the VPN disconnects
## 5. Troubleshooting
- Check logs: `journalctl -u openvpn` or `journalctl -u wg-quick@wg0`
- Verify DNS settings
- Ensure correct permissions on configuration files
- Check for conflicting network settings
- [(1) Setting Up a VPN on Linux Mint: A Step-by-Step Guide - FOSS Linux.](https://www.fosslinux.com/102356/how-to-set-up-a-vpn-on-linux-mint.htm.)
- [(2) How to Configure OpenVPN in Linux Mint? IPVanish.](https://support.ipvanish.com/hc/en-us/articles/360001738513-How-to-Configure-OpenVPN-in-Linux-Mint.)
- [(3) How to configure OpenVPN on Linux Mint - FastVPN - Namecheap.](https://www.namecheap.com/support/knowledgebase/article.aspx/10416/2271/how-to-configure-openvpn-on-linux-mint/.)
- [(4) How to Set up an OpenVPN Connection in Linux Mint - Comparitech.](https://www.comparitech.com/blog/vpn-privacy/openvpn-connection-linux-mint/.)