서버에서 포럼 스크립트를 실행 중이며 적은 수의 첨부 파일이 손실되기 시작합니다. 무엇을 삭제하고 언제 무엇을 찾고 싶습니다. Linux 감사 (auditctl)를 설정하여 디렉토리 삭제 (첨부 파일이 다중 레벨 디렉토리 트리에 저장 됨)에서 파일 삭제를 감시하도록하려면 어떻게해야합니까?
이를 위해 다른 도구를 사용해야합니까?
서버에서 포럼 스크립트를 실행 중이며 적은 수의 첨부 파일이 손실되기 시작합니다. 무엇을 삭제하고 언제 무엇을 찾고 싶습니다. Linux 감사 (auditctl)를 설정하여 디렉토리 삭제 (첨부 파일이 다중 레벨 디렉토리 트리에 저장 됨)에서 파일 삭제를 감시하도록하려면 어떻게해야합니까?
이를 위해 다른 도구를 사용해야합니까?
답변:
이것은 이전 질문에 쓴 답변입니다.
일반적으로 24/7에 대해 lsof를 실행하지 않고 프로세스 / 사용자 / 파일이 수행하는 작업을 알고 싶다면 auditctl을 사용하십시오.
최근의 커널 감사 제어가 있다고 가정하면 간단한 조작이어야합니다. (이것은 Red Hat을 적절히 실행하고 있다면 데비안 푸에 있습니다.)
# apt-get install auditd
실행 중인지 확인하십시오 (/etc/init.d/auditd 상태).
auditctl -a entry,always -F arch=b64 -S open -F pid=<process id>
32 비트 아치를 실행중인 경우 b64를 b32로 바꾸십시오. open은 모든 시스템 호출 또는 'all'이라는 단어로 바꿀 수 있습니다.
자세한 내용은 auditctl 맨 페이지를 참조하십시오.
이 방법을 사용하여 '연결 해제'시스템 호출을 감시하도록 요청할 수 있습니다.
-w 매개 변수는 파일 / 디렉토리를 보는 데 유용하지만 매뉴얼 페이지에서 설명 할 때주의해야 할 점이 있습니다.
-w path 경로에 파일 시스템 오브젝트에 대한 감시를 삽입하십시오. 최상위 디렉토리에는 시계를 삽입 할 수 없습니다. 이것은 커널에 의해 금지되어 있습니다. 와일드 카드도 지원되지 않으며 경고가 생성됩니다. 시계가 작동하는 방식은 내부에서 inode를 추적하는 것입니다. 즉, 디렉토리에 감시를두면 파일 이벤트 인 것처럼 보이지만 실제로는 메타 데이터 업데이트 일뿐입니다. 이렇게하면 몇 가지 이벤트를 놓칠 수 있습니다. 디렉토리의 모든 파일을 감시해야하는 경우 각 파일에 개별 감시를 배치하는 것이 좋습니다. syscall 감사 규칙과 달리 시계는 커널에 전송 된 규칙 수에 따라 성능에 영향을 미치지 않습니다.
몇 가지 아이디어. strace
응용 프로그램의 기능을 확인하는 데 사용할 수 있지만 로그 로그가 생성되어 시스템 속도가 느려질 수 있습니다.
또 다른 아이디어는 사용하는 것입니다 inotifywait
다음, lsof/fuser
그것을 사용 상황을 확인하기 위해 파일에. 가능한 한 정확한 정보를 얻기 위해이 스크립트를 우선 순위가 높은 (가능한 경우) 실행 해보십시오. unlink
이벤트가 전달되기 전에 파일이 사라지기 때문에 호출을 잡을 수 없습니다 .
-f
를 따르려면 플래그로 마스터 상위 프로세스를 추적해야합니다 .
fenix의 감사 권고는 이상적으로 보이지만 AIDE 와 같은 파일 시스템 IDS가 도움 이 될 수 있습니다. 불행히도, 당신이 격리하려는 것에 충분히 세분화되지는 않을 것입니다.
나는 종종 당신이 묘사 한 것과 같은 문제에 대한 해결책으로 스크립트를 작성합니다. 권장 솔루션으로 원하는 것을 달성 할 수 없으면 직접 무언가를 작성하십시오. 종종 그렇게 복잡하지 않습니다.