공간 부족 오류(가능한 취약점?)의 위험을 제거하거나 최소한 최소화하기 위해 시스템에 상당히 광범위한 로깅 및 로그 순환 작업을 설정했습니다.
그러나 logrotate
서비스 매뉴얼 페이지에서는 이 질문에 대한 명확한 답을 찾을 수 없습니다.
logrotate 서비스는 일일, 주간 또는 월간 옵션에 대한 마지막 로그 회전의 타임스탬프를 어떻게 결정합니까?
발췌 내용은 man logrotate
다음과 같습니다.
weekly [weekday]
Log files are rotated once each weekday, or if the date is advanced by at least 7 days since the last rotation
(while ignoring the exact time). The weekday interpretation is following: 0 means Sunday, 1 means Monday, ..., 6
means Saturday; the special value 7 means each 7 days, irrespectively of weekday. Defaults to 0 if the weekday ar‐
gument is omitted.
이전 회전 로그 파일의 마지막 수정된 타임스탬프를 확인하여 마지막 회전 시간을 지속적으로 확인합니까(cronjob 사용)?
그렇다면 사용자가 어떻게든 시스템을 "속여서" 시스템 시간을 비동기화하도록 강제한 경우(일반적으로 이는 매우 드문 공격 벡터이므로 제대로 보호되지 않기 때문에 수행하기 쉽습니다), 따라서 logrotate
회전된 로그를 생성합니다. 미래의 타임스탬프를 사용하면 기본적으로 logrotate
주파수 기반 회전 이 비활성화됩니까 ?
참고: 문제의 시스템은 tumblerd
(시스템 구성 때문이거나 말할 수 없는 실제 취약점 때문에) 썸네일 관리자인 것으로 알고 있습니다. syslog
시스템 오류가 발생하면 및 로그에 항목을 계속 추가하기 때문입니다. 각각 최대 100GB(먼저 공간 측면에서, 다음으로 메모리 누수 및 CPU 로드 급증). 이는 그 자체로 문제가 되었을 뿐만 아니라 3개의 로그 파일을 읽을 수 없게 되었으며 당시 제가 생각할 수 있는 유일한 해결책은 해당 파일을 지우는 것이었습니다.user.log
messages
echo "" > [filename]
답변1
FOSS이기 때문에 logrotate
소스코드를 다운받아서 읽어보시면 됩니다. Ubuntu에서 패키징 시스템은 다음을 표시합니다.
walt@bat:~(0)$ apt-cache show logrotate
Package: logrotate
Architecture: amd64
Version: 3.8.7-2ubuntu2.16.04.2
Priority: important
Section: admin
Origin: Ubuntu
Maintainer: Ubuntu Developers <[email protected]>
Original-Maintainer: Paul Martin <[email protected]>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 113
Depends: libacl1 (>= 2.2.51-8), libc6 (>= 2.14), libpopt0 (>= 1.14), libselinux1 (>= 1.32), cron | anacron | cron-daemon, base-passwd (>= 2.0.3.4)
Suggests: mailx
Breaks: postgresql-common (<= 126)
Filename: pool/main/l/logrotate/logrotate_3.8.7-2ubuntu2.16.04.2_amd64.deb
Size: 37660
MD5sum: ae3cf957775ac5c9e72604ac80b71e24
SHA1: 78687a0db41fad8b25b9aaa0f9e9e01739cb6136
SHA256: 4089998610e24a849d0286f1a657a714e7f3fe249f82eef3896778054ea1753e
Homepage: https://fedorahosted.org/logrotate/
Description-en: Log rotation utility
The logrotate utility is designed to simplify the administration of
log files on a system which generates a lot of log files. Logrotate
allows for the automatic rotation compression, removal and mailing of
log files. Logrotate can be set to handle a log file daily, weekly,
monthly or when the log file gets to a certain size. Normally, logrotate
runs as a daily cron job.
Description-md5: bb73169bb75b2b8a2fda1453d214416d
Task: minimal
Supported: 5y
Package: logrotate
Priority: important
Section: admin
Installed-Size: 113
Maintainer: Ubuntu Developers <[email protected]>
Original-Maintainer: Paul Martin <[email protected]>
Architecture: amd64
Version: 3.8.7-2ubuntu2
Depends: libacl1 (>= 2.2.51-8), libc6 (>= 2.14), libpopt0 (>= 1.14), libselinux1 (>= 1.32), cron | anacron | cron-daemon, base-passwd (>= 2.0.3.4)
Suggests: mailx
Breaks: postgresql-common (<= 126)
Filename: pool/main/l/logrotate/logrotate_3.8.7-2ubuntu2_amd64.deb
Size: 37642
MD5sum: 858f35a2a3eec8dc07e9896f8a905981
SHA1: 18802ca05d004b4d70aa400920668f71af98b47e
SHA256: bc370a2003b18b1761adceed2fdf575122117cbf17edc6de377d64dc01623d6e
Description-en: Log rotation utility
The logrotate utility is designed to simplify the administration of
Since `logrotate` is FOSS, you could just dowload the source and read it. On Ubuntu. log files on a system which generates a lot of log files. Logrotate
allows for the automatic rotation compression, removal and mailing of
log files. Logrotate can be set to handle a log file daily, weekly,
monthly or when the log file gets to a certain size. Normally, logrotate
runs as a daily cron job.
Description-md5: bb73169bb75b2b8a2fda1453d214416d
Homepage: https://fedorahosted.org/logrotate/
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Origin: Ubuntu
Supported: 5y
Task: minimal
Homepage: https://fedorahosted.org/logrotate/
좋은 출발점입니다.
좋은 logrotate
기술은 로깅 엔터티가 현재 로그 파일을 닫고 새 로그 파일을 열도록 강제하는 것입니다. 이는 signals
또는 (서버 중지, 로그 파일 이름 바꾸기, 서버 시작)을 통해 수행할 수 있습니다.