212 lines
3.9 KiB
Markdown
212 lines
3.9 KiB
Markdown
|
# Quick Start Guide
|
||
|
|
||
|
## Prerequisites
|
||
|
|
||
|
- LXC Container with Ubuntu/Debian
|
||
|
- Root access
|
||
|
- Internet connection for initial setup
|
||
|
|
||
|
## Installation
|
||
|
|
||
|
### 1. One-Line Install
|
||
|
|
||
|
```bash
|
||
|
curl -sSL https://raw.githubusercontent.com/yourusername/vpn-gateway/main/install.sh | bash
|
||
|
```
|
||
|
|
||
|
### 2. Manual Install
|
||
|
|
||
|
```bash
|
||
|
# Clone repository
|
||
|
git clone https://github.com/yourusername/vpn-gateway.git
|
||
|
cd vpn-gateway
|
||
|
|
||
|
# Run installer
|
||
|
sudo ./install.sh
|
||
|
```
|
||
|
|
||
|
## Initial Setup
|
||
|
|
||
|
### Step 1: Network Detection
|
||
|
|
||
|
The installer will auto-detect your network configuration:
|
||
|
- Network interface (e.g., eth0)
|
||
|
- LAN subnet (e.g., 192.168.1.0/24)
|
||
|
- Container IP address
|
||
|
|
||
|
Confirm or modify as needed.
|
||
|
|
||
|
### Step 2: Choose Provider
|
||
|
|
||
|
Select your VPN provider:
|
||
|
|
||
|
#### Option 1: Mullvad VPN
|
||
|
```
|
||
|
Select provider [1-3]: 1
|
||
|
Enter your Mullvad account number: 1234567890123456
|
||
|
```
|
||
|
|
||
|
#### Option 2: Custom WireGuard Server
|
||
|
```
|
||
|
Select provider [1-3]: 2
|
||
|
Server endpoint (IP:Port): 1.2.3.4:51820
|
||
|
Server public key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
|
||
|
```
|
||
|
|
||
|
#### Option 3: Import Configuration
|
||
|
```
|
||
|
Select provider [1-3]: 3
|
||
|
Path to WireGuard config: /path/to/config.conf
|
||
|
```
|
||
|
|
||
|
### Step 3: Complete Installation
|
||
|
|
||
|
The installer will:
|
||
|
1. Install dependencies
|
||
|
2. Configure killswitch
|
||
|
3. Set up WebUI
|
||
|
4. Start services
|
||
|
|
||
|
## Using the WebUI
|
||
|
|
||
|
### Access the Interface
|
||
|
|
||
|
Open your browser and navigate to:
|
||
|
```
|
||
|
http://<container-ip>
|
||
|
```
|
||
|
|
||
|
### Connect to VPN
|
||
|
|
||
|
1. **Select Location** (Mullvad only)
|
||
|
- Choose country
|
||
|
- Choose city
|
||
|
- Choose server
|
||
|
|
||
|
2. **Click Connect**
|
||
|
- Connection established in ~2-5 seconds
|
||
|
- Status indicator turns green
|
||
|
|
||
|
3. **Verify Connection**
|
||
|
- Check public IP displayed
|
||
|
- Verify location shown
|
||
|
|
||
|
### Disconnect from VPN
|
||
|
|
||
|
1. Click **Disconnect** button
|
||
|
2. **WARNING**: No internet access after disconnect (killswitch active)
|
||
|
|
||
|
## Client Configuration
|
||
|
|
||
|
### Configure Your Devices
|
||
|
|
||
|
Set on each client device:
|
||
|
|
||
|
#### Windows
|
||
|
1. Network Settings → IPv4 Properties
|
||
|
2. Default Gateway: `<container-ip>`
|
||
|
3. DNS Server: `<container-ip>` or `1.1.1.1`
|
||
|
|
||
|
#### Linux
|
||
|
```bash
|
||
|
# Temporary
|
||
|
sudo ip route del default
|
||
|
sudo ip route add default via <container-ip>
|
||
|
echo "nameserver <container-ip>" | sudo tee /etc/resolv.conf
|
||
|
|
||
|
# Permanent (NetworkManager)
|
||
|
nmcli connection modify <connection-name> ipv4.gateway <container-ip>
|
||
|
nmcli connection modify <connection-name> ipv4.dns <container-ip>
|
||
|
```
|
||
|
|
||
|
#### macOS
|
||
|
1. System Preferences → Network
|
||
|
2. Advanced → TCP/IP
|
||
|
3. Router: `<container-ip>`
|
||
|
4. DNS: `<container-ip>`
|
||
|
|
||
|
## Quick Commands
|
||
|
|
||
|
### Check Status
|
||
|
```bash
|
||
|
# Service status
|
||
|
sudo systemctl status vpn-webui
|
||
|
|
||
|
# Connection status
|
||
|
curl http://localhost:5000/api/status
|
||
|
|
||
|
# Health check
|
||
|
sudo /usr/local/bin/vpn-health-check.sh
|
||
|
```
|
||
|
|
||
|
### View Logs
|
||
|
```bash
|
||
|
# All logs
|
||
|
sudo journalctl -u vpn-webui -u vpn-killswitch -f
|
||
|
|
||
|
# WebUI logs only
|
||
|
sudo journalctl -u vpn-webui -f
|
||
|
```
|
||
|
|
||
|
### Restart Services
|
||
|
```bash
|
||
|
sudo systemctl restart vpn-webui
|
||
|
sudo systemctl restart vpn-security-monitor
|
||
|
```
|
||
|
|
||
|
## Important Notes
|
||
|
|
||
|
⚠️ **Killswitch Always Active**
|
||
|
- No internet without VPN connection
|
||
|
- This is intentional for security
|
||
|
- Local network still accessible
|
||
|
|
||
|
⚠️ **After Disconnect**
|
||
|
- Internet blocked until reconnection
|
||
|
- WebUI remains accessible
|
||
|
- Connect to VPN to restore internet
|
||
|
|
||
|
## Troubleshooting
|
||
|
|
||
|
### WebUI Not Accessible
|
||
|
```bash
|
||
|
# Check if service is running
|
||
|
sudo systemctl status vpn-webui
|
||
|
|
||
|
# Check if port is listening
|
||
|
sudo netstat -tlnp | grep 5000
|
||
|
|
||
|
# Restart service
|
||
|
sudo systemctl restart vpn-webui
|
||
|
```
|
||
|
|
||
|
### No Internet After Connect
|
||
|
```bash
|
||
|
# Check VPN status
|
||
|
sudo wg show
|
||
|
|
||
|
# Check killswitch
|
||
|
sudo iptables -L -n -v
|
||
|
|
||
|
# Check DNS
|
||
|
nslookup google.com
|
||
|
```
|
||
|
|
||
|
### Can't Connect to VPN
|
||
|
```bash
|
||
|
# Check logs
|
||
|
sudo journalctl -u vpn-webui -n 50
|
||
|
|
||
|
# Test killswitch
|
||
|
sudo /usr/local/bin/vpn-killswitch.sh verify
|
||
|
|
||
|
# Manual connection test
|
||
|
sudo wg-quick up wg0
|
||
|
```
|
||
|
|
||
|
## Next Steps
|
||
|
|
||
|
- Read [Provider Configuration](PROVIDERS.md) for advanced setup
|
||
|
- Review [Security Documentation](SECURITY.md) for security features
|
||
|
- See [FAQ](FAQ.md) for common questions
|