Jawaban yang Diedit
(Re) meningkat pada hampir semua jawaban orang lain yang ditingkatkan (@elmart, @ user26312, saya sendiri). Pengeditan tidak diperlukan dalam skrip:
#!/bin/bash
default_line=$(netstat -rn |grep default)
gateway=$(echo $default_line | awk '{print $2}')
interface=$(echo $default_line | awk '{print $6}')
echo $gateway
echo $interface
scutil <<EOF
d.init
get State:/Network/Service/forticlientsslvpn/IPv4
d.add InterfaceName ppp0
set State:/Network/Service/forticlientsslvpn/IPv4
EOF
route delete default
route delete -ifscope $interface default
route add -ifscope $interface default $gateway
route add -net 0.0.0.0 -interface $interface
Buat file yang Anda masukkan ini, dapat dieksekusi dan dieksekusi (setelah terhubung dengan VPN) dengan sudo. Sebelum skrip melakukan perubahan, skrip ini akan melihat rute default Anda saat ini dan karenanya mengetahui gerbang dan antarmuka Anda saat ini.
Jawaban lama
Bukan solusi lengkap, Anda harus melakukan dua hal tingkat tinggi berikut setelah setiap pengaturan koneksi VPN:
- Kita harus mengatur antarmuka terowongan
ppp0
- Ulangi rute default (karena 1. secara implisit menetapkan gateway default yang salah, terowongan terpecah akan tetap berfungsi dengan baik setelah ini)
Buat file dengan nama scutil-forti
misalnya
d.init
get State:/Network/Service/forticlientsslvpn/IPv4
d.add InterfaceName ppp0
set State:/Network/Service/forticlientsslvpn/IPv4
Ulangi rute gateway, jadi buat file lain routes-forti
,, dengan (perhatikan garis dengan pengaturan spesifik untuk jaringan Anda):
sudo route delete default
sudo route delete -ifscope en0 default # This line depends on your interface
sudo route add -ifscope en0 default 192.168.2.252 # This depends on your normal local gateway.
sudo route add -net 0.0.0.0 -interface en0
sekarang, jalankan,
$ cat scutil-forti |sudo scutil ; bash routes-forti
State:/Network/Service/forticlientsslvpn/IPv4
kuncinya ada untuk mulai dengan begitu terowongan VPN berjalan dan dihapus ketika terowongan VPN dihapus terputus. Rute sebenarnya tidak berbeda dari yang seharusnya.Saya telah mengerjakan ulang solusi @ hbogert menjadi sebuah skrip tunggal yang lebih mudah dikelola:
Itu dengan asumsi Anda menggunakan antarmuka en0 dan 192.168.1.1 gateway standar. Jika tidak, gantikan dengan nilai yang sesuai. Jika Anda tidak mengenal mereka, ketikkan
route get www.google.com
untuk mendapatkannya. Kemudian:chmod u+x fix-vpn
).sudo fix-vpn
) tepat setelah terhubung ke vpn.Saya sudah mencobanya dan berhasil. Seperti yang saya katakan, ini hanyalah pengerjaan ulang dari solusi sebelumnya. Saya hanya mempostingnya sebagai jawaban terpisah karena saya tidak punya cukup ruang dalam komentar.
BTW, saya juga berpikir ini bisa dimasukkan dalam
/etc/ppp/ip-up
skrip sehingga dieksekusi secara otomatis saat menghubungkan. Tetapi untuk beberapa alasan, itu tidak berfungsi seperti itu. Jika seseorang dapat menjelaskan / meningkatkannya, silakan lakukan.sumber
Saya dapat menggunakan Forticlient versi lama dan mengonfirmasi bahwa itu berfungsi!
Berikut tautannya di dropbox saya:
https://www.dropbox.com/s/p43ssvp0gusmzeq/forticlientsslvpn_macosx_4.0.2297.dmg?dl=0
sumber
PEMBARUAN: Mengunduh dan menginstal versi terbaru dan resmi 5.4.1 untuk Mac OS X memperbaiki semua masalah pada Mac OS X El Capitan.
Seperti dijelaskan dalam forum fortinet, seseorang harus mengunduh FortiClient versi terbaru (belum diterbitkan) untuk memperbaiki masalah pada Mac OS X El Capitan:
https://www.dropbox.com/sh/cb0j4pxw1f8nq84/AABHzZW1bpx1VjzYAmiK00S9a?dl=0
Ini solusi termudah bagi saya.
sumber
Memperbaiki jawaban @ elmart sedikit (saya pikir).
Dengan begitu skrip tidak perlu diedit (dan mengubah antarmuka seharusnya tidak menjadi masalah).
xargs
digunakan untuk menghapus spasi.Saya juga menambahkan (meskipun saya tidak tahu apakah ini merupakan peningkatan):
Ke bagian paling awal dari skrip untuk mengingatkan orang untuk menggunakan sudo.
sumber
route get
perintah untuk menghilangkan ketergantungan pada DNS.$ netstat -rn
untuk mendapatkan gateway dan antarmuka.Saya mengambil skrip hbogert dan membungkusnya dengan Applescript untuk saya dan karyawan lain, tersedia di sini: https://www.dropbox.com/s/lh0hsqdesk3i0n7/Execute-Post-VPN-Connection.app.zip?dl=0
Cukup sambungkan ke VPN, lalu jalankan aplikasi dan ketik kata sandi admin Anda (diperlukan untuk sudo). CATATAN: HARUS DISELAMATKAN / Aplikasi /
sumber
Saya memecahkan masalah bagi saya dengan mengkonfigurasi ulang pengaturan DNS untuk menggunakan server DNS Google sebelum yang disediakan oleh FortiClient. Sayangnya, ini harus dilakukan setelah setiap kali terhubung kembali.
Detail tentang ini dapat ditemukan di sini .
sumber
Pada versi OS X saya saat ini (Sierra 10.12.6) & FortiClient 5.6.1 sepertinya jika ServerAddresses memiliki lebih dari 2 alamat, maka panggilan "set" tidak bertahan apa-apa (jika Anda "mendapatkan", tidak ada yang akan terjadi. diperbarui). Untuk mengatasinya, saya memutuskan untuk hanya menyimpan alamat DNS FortiClient pertama dan menggabungkannya dengan alamat DNS publik saya (8.8.8.8).
Selain itu, saya akan menyarankan untuk secara otomatis menjalankan skrip bash pada FortiClient connect: ini dapat dilakukan dengan mengekspor skrip konfigurasi FortiClient kemudian mengimpornya kembali
Panduan lengkap di bawah ini:
1 / Buat skrip bash berikut dan simpan di suatu tempat (dalam kasus saya, ini menjadi
~/bashscripts/update-forticlient-dns.sh
) dan jangan lupa ganti<FIRST IP ADDRESS FOR FORTICLIENT DNS>
dengan hasilscutil --dns | grep "nameserver\[0\]"
ketika koneksi FortiClient Anda naik2 / Jalankan FortiClient, lalu buka Preferensi > Umum dan klik tombol Cadangan yang akan mengekspor konfigurasi FortiClient Anda ke file
3 / Dalam file ini, cari & edit / forticlient_configuration / vpn / sslvpn / koneksi / koneksi [name = "KONEKSI ANDA"] / on_connect / skrip / skrip script dan panggil skrip Anda di dalamnya:
4 / Kembali ke konsol FortiClient, klik kunci di sudut kiri bawah, lalu pergi ke Preferensi > Umum dan klik tombol Pulihkan : cari file konfigurasi yang diperbarui dan hanya itu, konfigurasi DNS Anda akan diperbarui dengan cepat setiap kali Anda terhubung ke VPN.
sumber