Saya memiliki aplikasi yang (saat sedang berjalan dan hanya saat sedang berjalan) perlu membuat perubahan pada packet filter ( pf
) sehingga ia memblokir atau memungkinkan lalu lintas tertentu. Aturan-aturan ini harus di samping aturan pengguna sendiri di /etc/pf.conf
- tetapi saya tidak ingin mengedit secara langsung /etc/pf.conf
karena ini sangat mengganggu.
Saya dapat melakukan ini dengan sepele di linux menggunakan iptables
dan bahkan di windows menggunakan wfp
tanpa mengubah file pada-disk, dapatkah saya melakukan hal yang sama di osx pf
?
Solusi hanya bekerja di yosemite
(10.10) dan di atas
cat /etc/pf.conf my_rules.conf | sudo /sbin/pfctl -Ef -
The-
arg untukpfctl
penyebab untuk membaca dari stdin, jadi kami hanya concat pf.conf dengan aturan kita sendiri untuk mendapatkannya untuk membaca dari kedua, tetapi untuk memastikan aturan kami diutamakan (itu sebabnya kami aturan digabungkan terakhir)pfctl
dengan konfigurasi berbeda yang menimpa Anda? Saya dapat melakukan pemeriksaan berkala dengan aturan yang berlaku saat ini, tetapi saya berharap dapat memperoleh pemberitahuan saat itu berubah ... ada ide bagaimana?Jawaban:
Saya memecahkan ini sendiri.
Di mana
my_rules.conf
berisi aturan kita sendiri, ini mendapatkan bersambung kepf.conf
aturan tetapi diutamakan karena mereka sedang ditambahkan setelahpf.conf
dicat
perintah.Perhatikan juga kita gunakan
pfctl -Ef -
dengan-
kekuatanpfctl
untuk membaca dari stdinKita dapat mengambil solusi ini selangkah lebih maju dan memuat aturan kita sendiri dari stdin dengan menggunakan ini:
sumber