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명령이 실행되지 않을 수 있습니다. 로그를 확인하거나 일시적으로 비활성화하세요.

게다가 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

지금은 그게 제가 생각할 수 있는 전부입니다!

관련 정보