Kernel-Modules
載入 NetBSD 核心模組
我想開始
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
為什麼我(即使是 root)不允許載入模組?
NetBSD 使用核心安全級別來確定可以在正在執行的系統上執行哪些操作。從連結:
-1 永久不安全模式
- 不要在啟動時提高安全級別
0 不安全模式
init
程序 (PID 1) 可能無法被、或跟踪或訪問ptrace(2)
。systrace(4)``procfs
- 可以更改不可變和僅附加文件標誌
- 所有設備都可以根據其權限進行讀取或寫入
注意:您不能在此安全級別以上執行 X11
sysutils/aperture
如果您真的需要它,請嘗試。1 安全模式
- 安全級別 0 的所有效果
/dev/mem
並且/dev/kmem
可能不會寫入- 掛載文件系統的原始磁碟設備是只讀的
- 不能刪除不可變和僅附加文件標誌
- 核心模組可能無法載入或解除安裝
- net.inet.ip.sourceroute
sysctl(8)
變數不能改變- 添加或刪除
sysctl(9)
節點被拒絕- RTC 偏移量可能不會改變
- Set-id coredump 設置不得更改
ipkdb(4)
不允許附加基於 IP 的核心調試器- 可用於執行原始磁碟和/或記憶體訪問的設備直通請求被拒絕
iopl
並且ioperm
電話被拒絕- 拒絕訪問非託管記憶體
2 高度安全模式
- 安全級別 1 的所有效果
- 無論是否掛載,原始磁碟設備始終是只讀的
- 新磁碟可能無法掛載,現有掛載只能從讀寫降級為只讀
- 系統時鐘不得向後設置或接近溢出
- 每個程序的核心轉儲名稱可能不會更改
- 數據包過濾和 NAT 規則不得更改
我的系統在安全級別 1 下執行,因此“可能無法載入或解除安裝核心模組”。此外,設置
npf=YES
不會rc.conf
自動載入相關的核心模組。不能在執行時降低核心安全級別,因此可以選擇:
- 引導到較低的安全級別,然後載入模組並提高安全級別,或者
- 在引導期間載入模組
顯然後者是更好的選擇。要在啟動時載入核心模組,必須確保
rc.conf
包含:modules=YES
然後,編輯(或創建)
/etc/modules.conf
以包含要載入的模組列表,每行一個。在這種情況下:# echo npf >> /etc/modules.conf