npf
보호를 위해 외부 방화벽에만 의존하는 대신 NetBSD 서버에서 이 기능을 사용 하고 싶습니다 . 그러나 나는 다음을 얻습니다.
$ npfctl show
npfctl: /dev/npf: No such file or directory
글쎄, 어쩌면 내가 장치 노드를 삭제했을 수도 있습니다. 에도 불구하고:
$ grep npf /dev/MAKEDEV
makedev bpf npf
npf)
mkdev npf c 198 0
# mknod /dev/npf c 198 0
$ npfctl show
npfctl: /dev/npf: Device not configured
아, 그런데 드라이버를 먼저 로드해야 합니다.
$ modstat | grep npf; echo $?
1
$ find /stand -name 'npf.kmod'
/stand/sparc64/7.0/modules/npf/npf.kmod
$ uname -sr
NetBSD 7.0.2
# modload npf
modload: Operation not permitted
왜 루트 권한이라도 모듈을 로드할 수 없나요?
답변1
NetBSD는 다음을 사용합니다.커널 보안 수준실행 중인 시스템에서 수행할 수 있는 작업을 결정합니다. 링크에서:
-1개의 영구적인 안전하지 않은 모드
- 시작 시 보안 수준을 높이지 마세요.
0 안전하지 않은 모드
- 또는
init
프로세스(PID 1)를 추적하거나 액세스할 수 없습니다.ptrace(2)
systrace(4)
procfs
- 불변 플래그와 추가 전용 플래그는 변경될 수 있습니다.
- 모든 장치는 해당 권한에 따라 읽거나 쓸 수 있습니다.
참고: 이 보안 수준 이상에서는 X11을 실행할 수 없습니다.
sysutils/aperture
정말 필요하다면 시도해 보세요.안전 모드 1개
- securelevel 0의 모든 효과
/dev/mem
그리고/dev/kmem
쓰지 않을 수도 있다- 마운트된 파일 시스템의 원시 디스크 장치는 읽기 전용입니다.
- 제거할 수 없는 불변 및 추가 전용 파일 플래그
- 커널 모듈을 로드하거나 언로드하지 못할 수 있음
- net.inet.ip.sourceroute
sysctl(8)
변수는 변경할 수 없습니다.- 노드 추가 또는 제거가
sysctl(9)
거부되었습니다.- RTC 오프셋을 변경하면 안 됩니다.
- Set-id 코어 덤프 설정을 변경하면 안 됩니다.
ipkdb(4)
연결된 IP 기반 커널 디버거는 허용되지 않습니다.- 원시 디스크 및/또는 메모리 액세스를 수행하는 데 사용되었을 수 있는 장치 통과 요청이 거부되었습니다.
iopl
그리고ioperm
그 전화는 거절됐어- 관리되지 않는 메모리에 대한 액세스가 거부되었습니다.
2 높은 보안 모드
- securelevel 1의 모든 효과
- 원시 디스크 장치는 마운트 여부에 관계없이 항상 읽기 전용입니다.
- 새 디스크를 마운트할 수 없으며 기존 마운트를 읽기-쓰기에서 읽기 전용으로 다운그레이드할 수 있습니다.
- 시스템 시계를 뒤로 설정하거나 오버플로에 가깝게 설정할 수 없습니다.
- 각 프로세스의 코어 덤프 이름은 변경할 수 없습니다.
- 패킷 필터링 및 NAT 규칙을 변경하면 안 됩니다.
내 시스템이 보안 수준 1에서 실행 중이므로 "커널 모듈을 로드하거나 언로드할 수 없습니다." 또한 설정은 관련 커널 모듈을 자동으로 로드 npf=YES
하지 않습니다 . rc.conf
런타임 시 커널 보안 수준을 낮출 수 있는 방법이 없으므로 옵션은 다음과 같습니다.
- 낮은 보안 수준으로 부팅한 다음 모듈을 로드하고 보안 수준을 높이거나
- 시작 시 모듈 로드
분명히 후자가 더 나은 선택입니다. 부팅 시 커널 모듈을 로드하려면 rc.conf
다음을 확인해야 합니다.
modules=YES
/etc/modules.conf
그런 다음 로드할 모듈 목록을 한 줄에 하나씩 포함하도록 편집(또는 생성)합니다 . 이 경우:
# echo npf >> /etc/modules.conf