GNU/Linux >> Belajar Linux >  >> Linux

Linux – Blokir Akses Jaringan Suatu Proses?

Apakah mungkin untuk memblokir akses jaringan (keluar) dari satu proses?

Jawaban yang Diterima:

Dengan Linux 2.6.24+ (dianggap eksperimental hingga 2.6.29), Anda dapat menggunakan ruang nama jaringan untuk itu. Anda harus mengaktifkan 'ruang nama jaringan' di kernel Anda (CONFIG_NET_NS=y ) dan util-linux dengan unshare alat.

Kemudian, memulai proses tanpa akses jaringan semudah:

unshare -n program ...

Ini menciptakan ruang nama jaringan kosong untuk proses tersebut. Artinya, dijalankan tanpa antarmuka jaringan, termasuk tanpa loopback . Dalam contoh di bawah ini kami menambahkan -r untuk menjalankan program hanya setelah ID pengguna dan grup yang efektif saat ini telah dipetakan ke pengguna super (hindari sudo):

$ unshare -r -n ping 127.0.0.1
connect: Network is unreachable

Jika aplikasi Anda memerlukan antarmuka jaringan, Anda dapat mengatur yang baru:

$ unshare -n -- sh -c 'ip link set dev lo up; ping 127.0.0.1'
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=32 time=0.066 ms

Perhatikan bahwa ini akan membuat yang baru, lokal putaran balik. Artinya, proses spawned tidak akan dapat mengakses port terbuka 127.0.0.1 host .

Jika Anda perlu mendapatkan akses ke jaringan asli di dalam namespace, Anda dapat menggunakan nsenter untuk memasuki namespace lain.

Contoh berikut menjalankan ping dengan namespace jaringan yang digunakan oleh PID 1 (ditentukan melalui -t 1 ):

$ nsenter -n -t 1 -- ping -c4 example.com
PING example.com (93.184.216.119) 56(84) bytes of data.
64 bytes from 93.184.216.119: icmp_seq=1 ttl=50 time=134 ms
64 bytes from 93.184.216.119: icmp_seq=2 ttl=50 time=134 ms
64 bytes from 93.184.216.119: icmp_seq=3 ttl=50 time=134 ms
64 bytes from 93.184.216.119: icmp_seq=4 ttl=50 time=139 ms

--- example.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 134.621/136.028/139.848/2.252 ms

Linux
  1. Linux – Bagaimana Cara Berhenti Berbagi Jaringan Untuk Proses Saat Ini?

  2. Linux – Perintah Untuk Menjalankan Proses Anak “offline” (tanpa Jaringan Eksternal) Di Linux?

  3. 'jaringan' Layanan OS Linux

  1. Proses Pembuatan Linux?

  2. Membuat daemon di Linux

  3. Tidak dapat mengakses situs web tertentu di Linux (tetapi dapat di Windows)

  1. Cara mematikan proses zombie di Linux

  2. Blokir akses jaringan dari suatu proses?

  3. Cara memblokir akses internet ke program tertentu di Linux