Situasi Berikut.
Salah satu server saya menjalankan server OpenVPN serta Server OpenSSH (dan beberapa hal lainnya) , keduanya dapat diakses dari jarak jauh.
Ketika saya tidak di rumah, saya biasanya terhubung ke server tersebut melalui VPN dan membuka beberapa sesi SSH melalui ip publik dari server tersebut.
Saya ingin menyambungkan homeserver saya ke VPN eksternal, sehingga semua lalu lintas (keluar) yang melewati server saya juga disalurkan melalui VPN eksternal.
|MobilePhone|---VPN ----|
|
|Other Dev|-----SSH ----|----VPN---->| Homeserver | --- VPN ---> | External Provider |
| ^
|Laptop|--SSH/NFS/VPN---| |
|
|
|Laptop|--------SSH---------------------|
Saya masih ingin dapat SSH ke server saya melalui (sebelumnya) IP publik. Perute saya masih terhubung langsung ke ISP saya, jadi lalu lintas masuk apa pun harus langsung diteruskan ke server, jadi saya pikir itu harus dimungkinkan.
Naif seperti saya, saya pikir, mungkin hanya berfungsi jika saya menghubungkan server saya ke VPN eksternal melalui tun1 (tun0 digunakan oleh server) dan saya baik untuk pergi. Konfigurasi klien VPN eksternal telah nobind
ditetapkan, jadi seharusnya tidak ada konflik pada port juga.
Saya masih bisa melihat output dari koneksi openvpn. Namun tidak lama setelah itu, semua koneksi saya terputus.
* Saya sekarang tidak dapat terhubung ke VPN saya atau SSH ke dalamnya. Apache juga tidak dapat dijangkau lagi. Saya kira tidak akan ada apa-apa
Router saya masih merespons ping pada alamat IP publiknya.
Saya kira menghubungkan ke VPN mengambil alih antarmuka jaringan server saya atau sesuatu ke arah ini. Jadi itu harus menjadi masalah routing.
Tetapi saya tidak yakin apa yang sebenarnya terjadi di sana dan hal-hal apa yang harus saya ubah agar ini berhasil.
Saya ingin mengerti mengapa ini tidak berhasil seperti yang saya coba.
Apa yang perlu saya pelajari untuk mengatur skenario seperti itu dengan benar?
Catatan :
- Saya berpikir tentang paket yang dikembalikan. Tapi saya pikir saya entah bagaimana dapat mengatur rute, sehingga semua paket yang berasal dari ip internal router saya akan dikirim kembali ke router bukan melalui VPN?
- Sesuatu seperti
ip route add 192.168.0.0/24 via 192.168.0.1 dev eth1
?
Memperbarui
Saya berhasil melangkah lebih jauh dengan menambahkan baris berikut ke /etc/network/interfaces
up ip rule add from 192.168.0.0/24 table 128 || true
up ip route add table 128 to 192.168.0.0/24 dev eth0 || true
up ip route add table 128 default via 192.168.178.1 || true
Ini memungkinkan saya untuk mengakses apache dan SSH ke server saya melalui IP publik aslinya bahkan ketika server terhubung ke VPN eksternal.
Saya kira itu tidak tentang apa yang ada dalam pikiran saya, setiap paket yang berasal dari LAN atau router saya dialihkan melalui eth0 menggunakan router saya sebagai gateway default, bukan adaptor tun1 VPN eksternal.
Sejauh ini baik.
Masalah yang saya alami sekarang adalah, ketika laptop saya terhubung ke server OpenVPN yang berjalan di server saya, setiap koneksi terputus.
Saya kira masalahnya mirip dengan masalah aslinya. Paket-paket yang berasal dari laptop saya, terhubung melalui VPN (172.16.0.10), jangan dialihkan kembali ke laptop karena paket yang dikembalikan akan dikirim melalui gateway default, yang merupakan VPN eksternal yang terhubung dengan server saya.
Saya mengutak-atik tabel routing mencoba untuk merutekan apa pun yang berasal dari 172.16.0.0 kembali ke 172.16.0.xx via tun0
. Akhirnya saya mengacaukan tabel perutean dan sekarang permintaan apa pun habis ketika laptop saya terhubung ke server VPN saya, terlepas dari apakah server saya terhubung ke VPN eksternal atau tidak.
Saya membersihkan tabel routing dan me-reboot server, berharap untuk memperbaiki setidaknya ini lagi.
Saya tidak yakin apakah itu bisa menjadi masalah bahwa laptop saya terhubung ke lan saya (192.168.178.xx) juga.
iptables -t nat -A POSTROUTING -o tun1 -j MASQUERADE