π§SSH Tunneling Complete Guide
Overview
SSH Tunnel Types
1. Local Port Forwarding (-L)
ssh -L [local_ip:]local_port:destination_host:destination_port user@ssh_server
# Common usage
ssh -L 8080:192.168.1.100:80 user@10.10.10.50[Your Machine] β [SSH Server/Pivot] β [Target Service]
localhost:8080 β 10.10.10.50:22 β 192.168.1.100:80# Access internal web server
ssh -L 8080:192.168.1.100:80 user@pivot.com
# Then browse: http://localhost:8080
# Access internal RDP
ssh -L 3389:192.168.1.50:3389 user@pivot.com
# Then RDP to: localhost:3389
# Access database server
ssh -L 1433:db.internal.com:1433 user@jumpbox.com
# Forward multiple ports
ssh -L 8080:web.internal:80 -L 3389:dc.internal:3389 user@pivot.com2. Remote Port Forwarding (-R)
3. Dynamic Port Forwarding (-D)
SSH Options and Flags
Essential Flags
Practical Combinations
Advanced SSH Tunneling
Multiple Hops (ProxyJump)
SSH Config File
Persistent Tunnels with autossh
Troubleshooting SSH Tunnels
Common Issues
Debugging Commands
SSH Tunneling in Different Scenarios
Scenario 1: Web Application Testing
Scenario 2: Database Access
Scenario 3: RDP/VNC Access
SSH Tunneling with Metasploit
Using SSH Sessions
Security Considerations
SSH Server Configuration
Key Management
Firewall Evasion
Best Practices
Quick Reference
References
Last updated