Knockdはノックコマンドを実行しません。

Knockdはノックコマンドを実行しません。

ノックデーモンを設定しようとしていますが、ノックコマンドを実行していないようです。問題をデバッグするために、ドキュメントの例を少し編集し、次のような単純な設定を使用しました。

[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コマンドが実行されない可能性があります。ログを確認するか、一時的に無効にしてください。

しかもdmesglsof

dmesgノックシーケンスをトリガして実行します。knockd実行されたコマンドに関連する可能性があるカーネルメッセージ、ネットワークエラー、または警告を見つけます。

プロセスがファイルのロックをlsof保持していることを確認して確認してください。/tmp/knockこれは、ファイルが作成されているが削除されていないか、ファイルを開いたままにするプロセスがあるかどうかを確認するのに役立ちます。

sudo lsof /tmp/knock

問題を引き起こす可能性がある最新の変更については、システムアップデートログを確認してください。

cat /var/log/pacman.log

iptables -L -n -vファイアウォールが指定されたノックシーケンスを許可していることを確認して使用してください。

また、次の方法でプロセスの状態を確認できますknockdps aux | grep knockd

あなたはインストールすることができます審査またはインストールした場合は、監査イベントのログを確認できます。

sudo ausearch -m avc -ts recent

Journalctlを使用して最新のログ/詳細情報を表示できます。journalctl -xe

Arch Linuxも使用できますrsyslog

cat /var/log/syslog

今はそれが私が考えることができるすべてです!

おすすめ記事