nftables를 사용하여 SSH 공개 키 연결 시도 기록

nftables를 사용하여 SSH 공개 키 연결 시도 기록

질문

SSH 공개 키 인증 및 nftables를 사용하여 SSH 시도 로깅을 설정하는 가장 좋은 방법은 무엇입니까? 또한 이것을 테스트하는 가장 좋은 방법은 무엇입니까?

이것은 나에게 학습 연습이기 때문에 '그냥 처리'하는 패키지를 설치하지 않고 이 작업을 수행하고 싶습니다.

설명

네트워킹 개념을 테스트하고 배우기 위해 상당히 빈 새 시스템을 설정했습니다. 시스템이 Arch Linux를 실행 중입니다. nftables가 실행 중이며 SSH 공개 키 인증을 사용하여 이 시스템에 로그인할 수 있습니다. 테스트 시스템은 또한 sshd.socket을 사용하고 있습니다.

그러나 nftable 규칙 중 하나가 예상대로 로그아웃되지 않는 것으로 나타났습니다.

log prefix "REJECTED" reject with icmpx type port-unreachable

이 규칙은 nftables.conf의 입력 체인 맨 아래에 있으므로 거부된 모든 입력 트래픽은 이 규칙에 도달해야 합니다(제 생각에는).

아마도 내가 이것을 잘못 테스트하고 있는 것 같지만, 다른 컴퓨터를 통해 로그인을 시도한 후에 실행하면 journalctl -k | grep "REJECTED"어떤 항목도 표시되지 않습니다. 그러나 올바른 키를 가진 다른 컴퓨터가 1분에 두 번 이상 로그인을 시도하면 항목이 표시됩니다.

또한 이 nftable 규칙(위의 거부 규칙 위에 위치)을 사용하면 성공적인 SSH 로그인을 볼 수 있습니다.

tcp dport ssh limit rate 2/minute log prefix "SSH connection" accept

실행하면 journalctl -k | grep "SSH"예상대로 이러한 연결이 표시됩니다.

답변1

TCP 연결 로그인이 실패한 네트워크 계층과 어떤 방법으로 로그인했는지 확인할 수 없습니다. SSH 데몬은 로그인이 실패하는 시기를 결정하고 이를 기록한 후 재시도를 허용하거나 연결을 닫습니다(보통 일정 횟수의 시도 실패 후).

실패한 로그인 시도는 인증 로그인에 저장됩니다 /var/log/auth.log. 여기에서 실패한 로그인과 성공한 로그인에 대한 로그 항목을 찾을 수 있습니다.

네트워크 계층에서는 SSH 데몬에 대한 새 연결을 기록할 수 있습니다. 다음 예는 nftables에서 직접 가져온 것입니다.위키 문서:

tcp dport 22 ct state new log prefix \"New SSH connection: \" accept

관련 정보