Bagaimana saya harus menggunakan VPN di Mac untuk mencegah kompromi sebelum VPN dimulai?

11

Seperti yang akan didengar oleh sebagian besar pengguna berpengalaman, menggunakan Mac di publik Wi-Fi yang tidak tepercaya dapat berpotensi berbahaya. Alat seperti Firesheep 1 telah membuatnya sangat mudah untuk mencegat komunikasi yang tidak terenkripsi.

Menggunakan VPN terowongan penuh untuk mengenkripsi semua komunikasi sering disebut sebagai solusi ajaib untuk menguping, tetapi tentu saja itu tidak mudah:

  • Tergantung pada protokol dan konfigurasi koneksi VPN, koneksi mungkin turun lebih mudah. (mis. TLS vs UDP)
  • Koneksi VPN tidak dibuat secara instan saat Anda terhubung ke jaringan publik.

Saya berpikir bahwa dua poin terakhir peduli banyak karena setiap kali pengaturan jaringan Anda mengubah berbagai aplikasi segera berbicara dengan server mereka - saya menganggap itu configdyang menginformasikan mereka, kan?

yaitu Sebelum terowongan VPN dibuat, sebagian besar (berjalan) proses yang membutuhkan internet akan berkomunikasi.

Saya melihat dua komponen menjadi pengguna VPN yang baik:

  1. Memastikan hal-hal tidak dikirim dengan jelas sebelum hal itu ditetapkan.
  2. Memastikan bahwa hal-hal tidak dikirim dalam waktu yang jelas jika VPN gagal .

Bagaimana saya bisa menggunakan VPN di Mac di jaringan publik untuk membatasi lalu lintas yang tidak dienkripsi sebelum VPN dijalankan?

gentmatt
sumber
Sangat menyenangkan untuk meninjau kembali ini - pertanyaan lama yang saya tautkan tampaknya lebih terfokus pada cara mengetahui kapan VPN memutuskan koneksi daripada cara mengatur berbagai hal untuk memulai dengan aman - jadi kita bisa mendapat manfaat dari beberapa pertanyaan runcing pada praktik untuk meningkatkan keamanan saat menggunakan VPN.
bmike

Jawaban:

2

Mari kita kesampingkan solusi apa pun di mana Anda membawa masalah jaringan kedua. Mari kita juga membiarkan masalah menghentikan lalu lintas setelah VPN gagal untuk pertanyaan terkait, tetapi berbeda .

Saya melihat masalah ini sebagai solusi sentris pengguna dan bukan sesuatu yang mudah dicapai dengan memodifikasi perilaku OS X.

Siapkan dua akun di Mac Anda (tidak perlu akun admin, tetapi jika salah satunya, Anda tidak perlu akun ketiga untuk mengubah pengaturan sistem).

  1. Akun shell yang ada untuk menjalankan apa-apa dan hanya membuat koneksi VPN.
  2. Akun utama yang akan menjalankan program yang ingin Anda pastikan hanya mendapatkan akses ke jaringan setelah diamankan dengan VPN.

Jadi, dengan pergantian pengguna yang cepat diaktifkan, Anda dapat keluar dari akun utama. Ini memastikan bahwa tidak ada program atau proses dari pengguna yang akan terus berjalan di latar belakang. Sebagian besar aplikasi OS X berperilaku baik, dan menangguhkan akses jaringan ketika mereka tidak memiliki jendela aktif di layar, tetapi Anda harus memantau dan menguji ini selamanya untuk memastikan tidak ada yang terjadi - logout lebih mudah dipertahankan.

Sekarang, Anda juga dapat mengganti "akun" di atas dengan OS dan menjalankan sistem virtualisasi seperti Fusion (atau Parallels atau lainnya) dan hanya memulai OS tamu setelah OS host telah mengamankan semuanya pada VPN. Tergantung pada perangkat lunak VM yang Anda pilih, Anda juga mungkin memiliki kendali atas jaringan dan dapat menghidupkan dan mematikan akses bahkan ketika OS tamu (atau OS) sedang berjalan. Ini pada dasarnya mensimulasikan perangkat keras tambahan yang awalnya saya katakan tidak akan saya pertimbangkan.

Saya harap ini menunjukkan satu cara Anda bisa lebih aman saat bepergian dan menggunakan jaringan yang tidak Anda percayai sambil meminimalkan risiko yang akan selalu terjadi. Jika orang lain memiliki jaringan - mereka memiliki DNS, dapat mencatat paket, dapat mencoba serangan man-in-the-middle (MITM) serta memeriksa semua paket Anda secara mendalam untuk mencoba menentukan apa yang mengalir di dalam terowongan VPN.

bmike
sumber
1
Ini jawaban yang cukup masuk akal. Menggunakan VM di akun pengguna kedua mudah diatur. Meskipun OS mungkin masih mengizinkan lalu lintas jaringan yang tidak aman, tidak masalah apakah itu dalam lingkungan terbatas dari akun pengguna yang berlebihan.
gentmatt
Saya berharap ada tombol yang mudah, tetapi seperti yang Anda lihat - itu tidak sepele untuk mengontrol sebelum atau sesudah lalu lintas pada lapisan kernel karena OS X dirancang untuk menggunakan jalur apa pun yang naik. OS tidak dirancang untuk mematikan semuanya, tetapi gear jaringan.
bmike
3

Ini adalah pendekatan yang sepenuhnya di luar GUI MacOS X. Karenanya pendekatan masalah ini tidak akan mengganggu pengaturan jaringan atau VPN apa pun.

Katakanlah saya ingin menggunakan IPSEC VPN (berdasarkan penggunaan 500 / udp == isakmp & 50 / ip == esp).

Buat ipfwfile konfigurasi yang hanya memungkinkan protokol yang diperlukan untuk membangun VPN:

/usr/bin/sudo cat <<____eof >/etc/ipfw.vpn.rules
# VPN trafic contention
#
# DHCP
add 00100 permit udp from any to any src-port bootpc dst-port bootps
# DNS
add 01000 permit udp from me to any dst-port domain
add 01010 permit udp from any to me dst-port domain
# isakmp
add 01050 permit udp from me to any dst-port isakmp
add 01060 permit udp from any to me dst-port isakmp
# esp
add 01100 permit esp from me to any
add 01110 permit esp from any to me
# all other ip go to the central black hole
add 20000 deny ip from any to any
____eof

Pastikan sintaksnya OK:

/usr/bin/sudo /sbin/ipfw -n /etc/ipfw.vpn.rules

Instal di kernel:

/usr/bin/sudo /sbin/ipfw /etc/ipfw.vpn.rules

Periksa apakah OS Anda dapat melakukan boot ulang, dan dapatkan alamat IP-nya melalui DHCP yang biasa. Periksa bahwa sebagian besar protokol IP diblokir:

ping www.google.com

Tentu saja, jika Anda ingin menggunakan VPN di atas SSL, Anda harus menyesuaikan file konfigurasi ini (isakmp + esp → https).

dan
sumber