
ノックデーモンを設定しようとしていますが、ノックコマンドを実行していないようです。問題をデバッグするために、ドキュメントの例を少し編集し、次のような単純な設定を使用しました。
[options]
logfile = /var/log/knockd.log
[openSSH]
sequence = 7000,8000,9000
seq_timeout = 10
tcpflags = syn
command = /usr/bin/touch /tmp/knock
[closeSSH]
sequence = 9000,8000,7000
seq_timeout = 10
tcpflags = syn
command = /usr/bin/rm /tmp/knock
knock -v 192.168.0.2 7000 8000 9000
以下のように、デーモン以外のモードでkockdを実行して出力を記録することで、knockが送信されるパケットを検出していることを証明することもできましたsudo knockd -c /etc/knockd.conf -ienp2s0 -Dv > log
。ファイルの内容はlog
次のとおりです。
config: new section: 'options'
config: log file: /var/log/knockd.log
config: new section: 'openSSH'
config: openSSH: sequence: 7000:tcp,8000:tcp,9000:tcp
config: openSSH: seq_timeout: 10
config: tcp flag: SYN
config: openSSH: start_command: /usr/bin/touch /tmp/knock
config: new section: 'closeSSH'
config: closeSSH: sequence: 9000:tcp,8000:tcp,7000:tcp
config: closeSSH: seq_timeout: 10
config: tcp flag: SYN
config: closeSSH: start_command: /usr/bin/rm /tmp/knock
ethernet interface detected
listening on enp2s0...
-------- snip -------
2024-00-11 13:08:17: tcp: 192.168.0.182:34892 -> 192.168.0.2:7000 74 bytes
2024-00-11 13:08:17: tcp: 192.168.0.182:49042 -> 192.168.0.2:8000 74 bytes
2024-00-11 13:08:17: tcp: 192.168.0.182:47252 -> 192.168.0.2:9000 74 bytes
waiting for child processes...
closing...
ではファイルは生成されません/tmp/knock
。私は何を見逃していますか?
答え1
追加ロギングのためにコマンド出力をリダイレクトします。出力とエラーをファイルにリダイレクトするようにコマンドを変更します。
[openSSH]
sequence = 7000,8000,9000
seq_timeout = 10
tcpflags = syn
command = /bin/touch /tmp/knock 2>/tmp/knock_error
[closeSSH]
sequence = 9000,8000,7000
seq_timeout = 10
tcpflags = syn
command = /bin/rm /tmp/knock 2>/tmp/knock_error
これにより、内容を確認できます/tmp/knock_error
。
SELinux
またはを使用すると、AppArmor
コマンドが実行されない可能性があります。ログを確認するか、一時的に無効にしてください。
しかもdmesg
&lsof
。
dmesg
ノックシーケンスをトリガして実行します。knockd
実行されたコマンドに関連する可能性があるカーネルメッセージ、ネットワークエラー、または警告を見つけます。
プロセスがファイルのロックをlsof
保持していることを確認して確認してください。/tmp/knock
これは、ファイルが作成されているが削除されていないか、ファイルを開いたままにするプロセスがあるかどうかを確認するのに役立ちます。
sudo lsof /tmp/knock
問題を引き起こす可能性がある最新の変更については、システムアップデートログを確認してください。
cat /var/log/pacman.log
iptables -L -n -v
ファイアウォールが指定されたノックシーケンスを許可していることを確認して使用してください。
また、次の方法でプロセスの状態を確認できますknockd
。ps aux | grep knockd
あなたはインストールすることができます審査またはインストールした場合は、監査イベントのログを確認できます。
sudo ausearch -m avc -ts recent
Journalctlを使用して最新のログ/詳細情報を表示できます。journalctl -xe
Arch Linuxも使用できますrsyslog
。
cat /var/log/syslog
今はそれが私が考えることができるすべてです!