Jump to content

SSH Port Forwarding:Overview

From jb-vpn.uk Wiki

This document describes the SSH port forwarding system architecture and how it works.

Architecture

[edit]

Components

[edit]

Configuration File: /etc/ssh-port-forwards.conf

[edit]
  * Defines all SSH port forwards in a simple format
  * One device per line

Management Script: /usr/local/bin/ssh-port-forward-manager.sh

[edit]
  * Adds, removes, and lists SSH port forwards
  * Applies iptables rules automatically
  * Validates configurations

Integration: /etc/openvpn/iptables-restore.sh

[edit]
  * Automatically applies all port forwards when VPN starts
  * Ensures rules persist after reboots

How It Works

[edit]
External Client → VPS:EXTERNAL_PORT (e.g., 22222)
  → iptables DNAT rule
  → VPN Tunnel (tun0)
  → VPN_DEVICE:SSH_PORT (e.g., 10.8.0.2:22)

Current Configuration

[edit]

To see the current configuration:

cat /etc/ssh-port-forwards.conf

To see active iptables rules:

== View DNAT rules ==
iptables -t nat -L PREROUTING -n -v | grep DNAT

== View FORWARD rules ==
iptables -t filter -L FORWARD -n -v | grep -E "10\.8\.0\."
[edit]
  • [[Documentation:Configuration](Configuration|- Configuration file format
  • [Management]])(management.md) - Managing port forwards