시작시 pf를 시작하는 방법?


6

pf시작시 일명 패킷 필터링-프로세스를 시작 하는 매우 우아한 방법을 찾고 있습니다. launchctl또는 pfctl명령을 사용하면 루트 권한이 필요하므로에 권한을 추가하는 것은 쓸모가 없습니다 .bash_profile. 이 문제에 대한 대안 솔루션이 있습니까?


실제로 달성하려는 것을 설명 할 수 있습니까? Pf가 최선의 방법이 아닐 수도 있습니다.
Harv

@Harv 시작시 일부 응용 프로그램이 설정 한 발신 연결을 차단하고 싶습니다.
rudicangiotti

이것을 확인하십시오 : hanynet.com/pflists/index.html , 라디오 침묵, 리틀 스 니치 등을 배제 한 것 습니까?
Harv

@Harv는 무료 애플리케이션이 아니기 때문에 가능합니다. pflist는 오픈 소스 프로젝트이지만 현재 사용중인 macOS Sierra 및 다음 버전과 완전히 호환되지 않는 것 같습니다. 또한 사용자 친화적 인 인터페이스입니다 pf.
rudicangiotti

답변:


6

기본적으로 pf는 시작할 때 자동으로 실행되지 않으며 시작 데몬 com.apple.pfctl.plist 는 / System / Library / LaunchDaemons /에 있습니다. 부팅하는 동안 pf를 활성화하려면 -eplist에 스위치 를 추가해야합니다 .

/ System / Library / LaunchDaemons /의 모든 파일은 macOS 10.11 이상에서 SIP로 보호 되므로 먼저 비활성화해야합니다 .

그런 다음 기본 시스템으로 부팅 한 후 실행 데몬 plist를 편집하십시오.

sudo nano /System/Library/LaunchDaemons/com.apple.pfctl.plist

교체

  ...
  <key>ProgramArguments</key>
  <array>
    <string>/sbin/pfctl</string>
    <string>-f</string>
    <string>/etc/pf.conf</string>
  </array>
  ...

  ...
  <key>ProgramArguments</key>
  <array>
    <string>/sbin/pfctl</string>
    <string>-e</string>
    <string>-f</string>
    <string>/etc/pf.conf</string>
  </array>
  ...

복구 모드로 재부팅하고 SIP를 다시 활성화하십시오.


내 친구여, 이것이 최선의 방법이며, 나는 당신의 대답을지지합니다.
Francis의 ResponseBase

이런 시스템 파일을 편집하는 것이 안전하다고 생각하지 않습니다. 변경 사항이 OS 업그레이드 후에도 지속되지 않을 수 있습니다. 사용자 레벨에서 launchctl 작업을 작성해서는 안됩니까?

4

데몬을 사용하여 시작할 때 프로세스를 시작할 수 있습니다. 또는 .plist내부 에 파일을 추가하거나 수정하는 데몬을 만들거나 기존의 데몬을 편집 할 /System/Library/LaunchDaemons수도 /Library/LaunchDaemons있습니다.
필자의 경우, 데몬 인 macOS Sierra를 실행하면 pfctl이미 해당 폴더 중 하나 안에 있지만 -e옵션 없이 설정되었습니다 . 결과적으로 시작시 데몬이 아무런 영향을 미치지 않고 시작되었습니다.
언급 된 옵션을 추가하여 문제가 해결되었으며 옵션이 적절하지 않아도 더 많은 문제가 있습니다.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Disabled</key>
  <false/>
  <key>Label</key>
  <string>com.apple.pfctl</string>
  <key>WorkingDirectory</key>
  <string>/var/run</string>
  <key>Program</key>
  <string>/sbin/pfctl</string>
  <key>ProgramArguments</key>
  <array>
    <string>/sbin/pfctl</string>
    <string>-e</string>
    <string>-f</string>
    <string>/etc/pf.conf</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
  <key>StandardErrorPath</key>
  <string>/var/log/pfctl.err</string>
  <key>StandardOutPath</key>
  <string>/var/log/pfctl.out</string>
</dict>
</plist>

0

이 문제에 대한 대안 솔루션이 있습니까?

예 *, 시스템 환경 설정 / 보안 및 개인 정보 보호 / 방화벽 옵션 ...에서 "스텔스 모드 사용"을 선택하고 방화벽을 켜십시오.

어떻게 든 이것은 PF를 가능하게합니다. 을 실행하여 확인할 수 있습니다 sudo pfctl -s info.

* High Sierra 및 Mojave에서 테스트

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.