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権限でもモジュールをロードできないのですか?
答え1
NetBSD は以下を使用します。カーネルセキュリティレベル実行中のシステムで実行できる操作を決定します。リンクから:
- 1つの恒久的な安全でないモード
- 起動時にセキュリティレベルを上げないでください。
0 安全でないモード
- または、
init
プロセス(PID 1)を追跡またはアクセスできません。ptrace(2)
systrace(4)
procfs
- 不変フラグと追加専用フラグは変更される可能性があります。
- すべてのデバイスは、その権限に従って読み書きできます。
注:このセキュリティレベル以上ではX11を実行できません。
sysutils/aperture
本当に必要なら試してみてください。セーフモード1個
- securelevel 0のすべての効果
/dev/mem
そして/dev/kmem
書かないかもしれません- マウントされたファイルシステムのRAWディスクデバイスは読み取り専用です。
- 削除できない不変および追加の専用ファイルフラグ
- カーネルモジュールをロードまたはアンロードできないことがある
- 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
次に、ロードするモジュールのリストを1行に1つずつ含めるように編集(または作成)します。この場合:
# echo npf >> /etc/modules.conf