J'ai donc lu plusieurs articles sur la façon d'utiliser à la fois le pare-feu des applications ( apf
o socketfilterfw
) et le filtre de paquets ( pf
) en même temps. Je pensais que ce serait simple puisque je ne suis pas une pf
débutant, mais peut-être y a-t-il quelque chose à apprendre sur pf
ou, sinon, de la combinaison sous MacOS.
Essentiellement, j'essaie d'ajouter une pf
règle qui autorise le trafic (TCP) vers un port spécifique (disons 9999
), d'un sous-réseau spécifique (disons 192.168.5.0/24
). Finalement, sur le Mac, l'application en question sera une java
d'où mon désir de limiter l'exposition en autorisant simplement le pare-feu d'application à accepter le trafic provenant de n'importe où et destiné à java
. A sa place, pour l'expérimentation, j'utilise netcat ( nc
).
Dans les Préférences Système, j'ai bien sûr activé le pare-feu d'application, activé ("Activer le mode furtif"), et fait en sorte que pf
est activé. J'ai ensuite chargé des règles supplémentaires dans pf
mais lorsque l'application est bloquée ( /usr/bin/nc
dans ce cas), il semble que mes règles pf ne soient jamais utilisées. Un exemple de transcription pour montrer mon état actuel :
mac $ alias apf=/usr/libexec/ApplicationFirewall/socketfilterfw
mac $ apf --getglobalstate
Firewall is enabled. (State = 1)
mac $ apf --getstealthmode
Stealth mode enabled
mac $ apf --getappblocked /usr/bin/nc
Incoming connection to /usr/bin/nc is blocked
mac $ sudo pfctl -s info |& grep ^Status
Status: Enabled for 0 days 21:52:31 Debug: Urgent
mac $ sudo pfctl -s rules
pass in quick proto tcp from any to any port = 9999 flags S/SA keep state
scrub-anchor "com.apple/*" all fragment reassemble
anchor "com.apple/*" all
mac $
À ce stade, il semble que je devrais être en mesure de commencer nc
écouter et se connecter depuis une autre machine, comme dans :
mac $ nc -l 9999
linux $ nc -v -w 1 mac 9999
nc: connect to mac port 9999 (tcp) failed: Operation timed out
Donc, des hypothèses et des questions :
-
apf
a la priorité surpf
Dans ce cas, (Q) comment puis-je changer ou contourner cela ? - Je ne peux pas bloquer l'application dans
apf
et autoriser certains ports à entrer viapf
; voir (Q) ci-dessus. -
pf
ne sont pas vraiment interprétées de la même manière sur MacOS que, disons, sur FreeBSD ; alors : (Q) pourquoi pas ? - Je ne comprends pas assez et je ne suis vraiment qu'un débutant, d'où la question (Q) : qu'est-ce que je ne sais pas ?