특정 SSHD 이벤트를 기록하지 않는 쉬운 방법이 있습니까?

특정 SSHD 이벤트를 기록하지 않는 쉬운 방법이 있습니까?

내 호스트의 모니터링 도구는 서비스가 작동 중인지 확인하기 위해 포트 22에서 SSH를 통해 주기적으로 연결하고 있습니다.

이로 인해 내 /var/log/messages에 다음과 같은 메시지가 넘쳤습니다.

Dec 13 22:20:17  sshd[29487]: Did not receive identification string from 80.xx.xx.xx

해당 특정 IP에 대해 "식별 문자열을 받지 못함" 메시지를 무음으로 설정하는 쉬운 방법이 있습니까?

답변1

본 적 있어?문서?

LogLevel QUIET|FATAL|ERROR|INFO정보에는 기본값이 있습니다 .

LogLevel ERROR스팸 로그인 메시지를 끄세요.

답변2

이러한 줄을 구문 분석하고 제거하는 스크립트를 작성하지 않고 /var/log/messages(실행할 수도 있음 cron) 모든 출력을 비활성화하거나 리디렉션합니다 ssh. 보고 싶은 일부 관련 로그를 얻을 수 있으므로 이는 최선의 아이디어는 아닙니다.

내가 뭘 할까?다음과 같이 작성하는 것입니다.

#! /bin/bash
sed "/$search/d" /var/log/messages >/var/log/tmp
mv /var/log/tmp /var/log/messages

안전한 곳에 보관하시고 cron하루에 한 번씩 실행해 주세요. 귀하의 공급자가 얼마나 자주 실행되는지 모르므 sshd로 귀하의 필요에 맞게 실행 시간을 조정할 수 있습니다. cron(cronjob)에 규칙을 추가하는 방법에 대한 자세한 내용은 다음을 참조하세요.이것은 매우 좋은 튜토리얼입니다.

대신, 시작된 스크립트에 액세스할 수 있고 ssh(아마도 그럴 것으로 예상됨) 이를 편집할 수 있는 경우(가능할 것으로 예상됨) call ssh 를 사용할 수 있습니다 ssh -q. 이 매개변수는 실행을 "조용하게" q만듭니다 . 즉, 아무 것도 기록되지 않습니다. ssh이는 위험하므로 피해야 합니다. 파일을 편집할 수 있는 경우 호스팅 제공업체에 문의하여 해당 파일이 귀하의 계약을 준수하는지 확인하겠습니다.

ssh또는 공급자에게 연락하여 문제를 설명하고 데몬을 수정할 수 있는지(또는 수정할 수 있는지) 물어볼 수 있습니다 .


긴 이야기 짧게제가 아는 한, 에서 보낸 메시지 하나만 차단하는 것은 불가능합니다 ssh. 그러나 특정 간격으로 메시지 파일을 구문 분석하여 이러한 줄을 정리하거나 공급자가 시작되는 위치를 찾을 수 있는 경우 sshd조용한 명령을 보낼 수 있습니다.

답변3

나는 이 작업을 수행하는 쉬운 방법이 없다고 생각합니다 sshd.

나는 이것이 작성자(보통 OpenBSD 사용자) 측의 디자인 선택이라고 생각합니다. 왜냐하면 그들은 거의 항상 보안 측면에서 "실수"하기 때문입니다. 이 경우에는 중요한 정보를 억제하는 손잡이를 제공하지 않습니다. 정보.

당신은 "쉬움"이라고 말했으므로 아마도 그것이 당신에게 필요한 대답의 전부일 것입니다.

하지만 덜 쉬운 옵션을 고려하고 계시다면 제 조언은 다음과 같습니다.이러지 마세요, 그렇기 때문입니다.

당신이 나와 같다면, 이 질문을 하는 근본적인 동기는 실행 가능한 항목을 로그에서 눈에 띄게 만들고 소음을 줄이는 것입니다. 당신은 혼자가 아닙니다. :-)

실제로 메시지에는 다양한 유형이 있습니다.

  • 유명한,
  • 종료하기 어렵고,
  • 절대로 행동으로 옮길 수 없다

...그건 너야진짜내가 원하는 것은 필터링해. 그럼 그렇게 하세요.

예를 들어, 저는 전날 로그에서 "흥미롭지 않은" 항목을 필터링하고 일일 보고서를 보내는 스크립트를 작성했습니다. 당신은해야합니다매우필터 사용에 주의하세요. 하지만 올바르게 수행하면 시간을 절약할 수 있습니다.정말 주의가 필요한 항목을 눈에 띄게 하세요..

물론 가끔 원시 로그를 살펴보는데, 정말 긴급한 내용을 포착할 수 있는 다른 방법도 있습니다. 그러나 매일 수동으로 로그를 다시 확인할 수 있는 시간은 충분하지 않습니다. 특히 살펴봐야 할 상자가 여러 개 있지만 저장소가 대규모 로그 처리를 보장할 만큼 크지 않은 경우에는 더욱 그렇습니다.

즉, 만일의 경우에 대비해진짜이를 수행해야 하는 설득력 있는 이유가 있습니다(MaxMackie의 솔루션은 사용 사례와 일치하지 않으므로 이러한 메시지가 사라지도록 해야 하며 메시지가 beforesyslog에 도달해야 합니다). 두 가지 옵션이 있다고 생각합니다.

.1. 소스 코드를 수정합니다.

하지만이것도 하지 마세요. 너무 많은 오버헤드와 위험 - 취약점 게시와 기능 업그레이드 사이의 지연이 너무 깁니다.

.2. sshd출력을 다른 곳으로 보낸 다음 직접 syslog로 보냅니다.

FreeBSD에서는 값을 사용하여 sshd시작 시 /etc/rc.conf또는 전달되어야 하는 매개변수를 지정할 수 있습니다. 옵션(디버그) 및 옵션(stderr에 로그)을 사용하여 실행하도록 지시합니다./etc/rc.conf.localsshd_flagssshd-d-e

sshd_flags="-d -e"

그런 다음 출력을 loggerPerl 또는 Perl 로 파이프할 수 있습니다 Sys::Syslog(이상한 상황을 정리하기 위해 래퍼를 사용함). 데몬을 데몬이 아닌 것으로 지정한다는 것은 많은 기능을 직접 다시 만들어야 함을 의미하므로 이는 사소한 일이 아닙니다. 필요한 경우 더 자세한 내용을 제공해 드릴 수 있습니다.

그러나 가장 좋은 방법은 필터링입니다.

관련 정보