1 votes

utiliser `pf` pour autoriser le trafic TCP sur un port spécifique (depuis un sous-réseau spécifique)

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é sur pf 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 via pf ; 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 ?

1voto

poige Points 898

l'apf a la priorité sur le pf, auquel cas, (Q) comment puis-je changer ou contourner cela ?

C'est pas sur la préséance C'est un ET logique : ces pare-feu sont indépendants l'un de l'autre et vous les invoquez tous les deux. Même si Pf ne bloque pas les connexions, vous avez spécifiquement vérifié que socketfilterfw ne passera pas.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X