우리는 CIS 기본 규칙에 따라 Linux 운영 체제를 강화하고 있습니다. 이 명령 프롬프트를 사용하여 "SSH 루트 로그인이 비활성화되었는지 확인(자동)" 규칙을 확인합니다.
다음 명령을 입력하세요:
find <partition> -xdev \( -perm -4000 -o -perm -2000 \) -type f |
awk '{print "-a always,exit -F path=" $1 " -F perm=x -F auid>='"$(awk '/^\s*UID_MIN/{print $2}' /etc/login.defs)"' -F auid!=4294967295 -k privileged" }'
출력 명령:
생성된 모든 라인이
.rules
파일에 있는지 확인/etc/audit/rules.d/
하고auditctl -l
.
ansible의 도움으로 Linux Defender 방화벽을 구성하고 명령 프롬프트에서 값을 가져오려고 했습니다. 그러나 명령 프롬프트에서 /etc/audit/rules.d
.rules 파일의 내용을 변경하면 위의 입력 명령을 사용할 수 없으며 수동으로 파티션을 사용하고 폴더에서 권한 프로세스를 얻을 수 없습니다. 시스템을 다시 시작한 후에도 변경 사항 auditctl -l
이 명령 중간.
필요한 출력을 얻기 위해 ansible 스크립트를 작성하는 데 도움을 줄 수 있습니까?
답변1
<partition>
감사 규칙을 생성하려는 파일 시스템의 일부로 대체되어야 합니다 . 가장 일반적인 경우는 전체 시스템에 대한 감사 규칙을 만드는 것입니다. 이 경우 에는 <partition>
./
여기서 명령 예제의 표현은 약간 오해의 소지가 있습니다. 이 경우 <partition>
에는아니요참조디스크 파티션유사 /dev/sda1
하지만 감사 규칙을 생성하려는 파일 시스템 트리 부분에만 해당됩니다.
이 명령은 규칙을 표준 출력으로 출력합니다. 이를 사용하려면 출력을 적절한 파일로 리디렉션해야 합니다. 당신이라면 어떨까요?만들다감사 규칙의 경우 출력을 다음과 같이 리디렉션 /etc/audit/rules.d/cis.rules
하고 실행하여 auditctl -R /etc/audit/rules.d/cis.rules
즉시 적용할 수 있습니다.
find / -xdev \( -perm -4000 -o -perm -2000 \) -type f |
awk '{print "-a always,exit -F path=" $1 " -F perm=x -F auid>='"$(awk '/^\s*UID_MIN/{print $2}' /etc/login.defs)"' -F auid!=4294967295 -k privileged" }' \
> /etc/audit/rules.d/cis.rules
당신이라면 어떨까요?확인하다기존 규칙의 경우 출력을 임시 파일로 리디렉션한 다음 /etc/audit/rules.d/
이를 디렉터리의 기존 규칙 파일과 비교해야 합니다. 보다 쉬운 비교를 위해 diff
유사한 도구를 사용하여 차이점을 쉽게 볼 수 있도록 두 파일을 먼저 정렬할 수 있습니다 .
따라서 간단한 유효성 검사 스크립트는 다음과 같습니다.
#!/bin/sh
ACTUAL_RULES=/etc/audit/rules.d/cis.rules
# Create a temporary directory and set it to auto-delete on script exit
WORKDIR=$(mktemp -d) && trap "rm -rf $WORKDIR" EXIT
# Create a sorted set of what the rules should be
find / -xdev \( -perm -4000 -o -perm -2000 \) -type f |
awk '{print "-a always,exit -F path=" $1 " -F perm=x -F auid>='"$(awk '/^\s*UID_MIN/{print $2}' /etc/login.defs)"' -F auid!=4294967295 -k privileged" }' |
sort > $WORKDIR/cis.rules.sorted.should-be
# sort the actual rules
sort < $ACTUAL_RULES >$WORKDIR/cis.rules.sorted.actual
# compare expected vs. actual
diff -u $WORKDIR/cis.rules.sorted.should-be $WORKDIR/cis.rules.sorted.actual
스크립트의 출력이 없으면(반환 코드는 0) 확인에 성공한 것입니다.
예상 규칙과 실제 규칙 사이에 차이가 있는 경우 스크립트는 코드 1로 종료되고 출력에는 diff -u
추가 규칙(단일 접두사 포함 +
)과 누락된 규칙(단일 접두사 포함 -
)이 표시됩니다. diff
배포판에서 출력 색상을 지정할 수 있는 경우 추가 규칙은 녹색으로 출력되고 누락된 규칙은 빨간색으로 출력됩니다.