
강화된 Debian GNU/Linux 배포판 감사
강화된 Debian GNU/Linux 및 CentOS 8 배포판 감사.
주요 테스트 환경은 Debian GNU/Linux 9/10/11/12/13 및 CentOS 8, Ubuntu 22이며, 다른 버전은 완전히 테스트되지 않았습니다. 이 릴리스에서는 데스크탑 관련 항목이 구현되어 있지 않습니다.
코드 프레임워크는 OVH-debian-cis 프로젝트를 기반으로 하며, Debian 9/10/11/12/13 및 CentOS 8의 기능에 따라 일부 원래 구현을 수정하고, STIG Red_Hat_Enterprise_Linux_7_V2R5, STIG Ubuntu V1R2 및 cisecurity.org 권장 사항의 검사 항목을 추가 및 구현했으며, HardenedLinux 커뮤니티에서 몇 가지 검사 항목을 추가 및 구현했습니다. 인프라의 감사 및 적용 기능이 구현되었으며, 자동으로 수정할 수 있는 항목에 대해 자동 수정 기능이 구현되었습니다.
# bash bin/hardening.sh --audit-all
[...]
hardening [INFO] Treating /home/test/harbian-audit/bin/hardening/13.15_check_duplicate_gid.sh
13.15_check_duplicate_gid [INFO] Working on 13.15_check_duplicate_gid
13.15_check_duplicate_gid [INFO] Checking Configuration
13.15_check_duplicate_gid [INFO] Performing audit
13.15_check_duplicate_gid [ OK ] No duplicate GIDs
13.15_check_duplicate_gid [ OK ] Check Passed
[...]
################### SUMMARY ###################
Total Available Checks : 271
Total Checks Run : 271
Total Passed Checks : [ 226/271 ]
Total Failed Checks : [ 44/271 ]
Enabled Checks Percentage : 100.00 %
Conformity Percentage : 83.39 %
$ git clone https://github.com/hardenedlinux/harbian-audit.git && cd harbian-audit
# cp etc/default.cfg /etc/default/cis-hardening
# sed -i "s#CIS_ROOT_DIR=.*#CIS_ROOT_DIR='$(pwd)'#" /etc/default/cis-hardening
# bin/hardening.sh --init
# bin/hardening.sh --audit-all
hardening [INFO] Treating /home/test/harbian-audit/bin/hardening/1.1_install_updates.sh
1.1_install_updates [INFO] Working on 1.1_install_updates
1.1_install_updates [INFO] Checking Configuration
1.1_install_updates [INFO] Performing audit
1.1_install_updates [INFO] Checking if apt needs an update
1.1_install_updates [INFO] Fetching upgrades ...
1.1_install_updates [ OK ] No upgrades available
1.1_install_updates [ OK ] Check Passed
[...]
################### SUMMARY ###################
Total Available Checks : 284
Total Checks Run : 284
Total Passed Checks : [ 260/284 ]
Total Failed Checks : [ 24/284 ]
Enabled Checks Percentage : 100.00 %
Conformity Percentage : 91.55 %
# bin/hardening.sh --set-hardening-level 5
# bin/hardening.sh --apply
hardening [INFO] Treating /home/test/harbian-audit/bin/hardening/1.1_install_updates.sh
1.1_install_updates [INFO] Working on 1.1_install_updates
1.1_install_updates [INFO] Checking Configuration
1.1_install_updates [INFO] Performing audit
1.1_install_updates [INFO] Checking if apt needs an update
1.1_install_updates [INFO] Fetching upgrades ...
1.1_install_updates [ OK ] No upgrades available
1.1_install_updates [INFO] Applying Hardening
1.1_install_updates [ OK ] No Upgrades to apply
1.1_install_updates [ OK ] Check Passed
[...]
네트워크 설치(최소 CD)로 Debian GNU/Linux를 설치한 경우, 강화 도구를 사용하기 전에 패키지를 설치해야 합니다.
# apt-get install -y bc net-tools pciutils network-manager
Redhat/CentOS의 경우 강화 도구 사용 전 패키지 설치가 필요합니다:
# yum install -y bc net-tools pciutils NetworkManager epel-release
강화를 완료하기 전에 모든 사용자의 비밀번호를 설정해야 합니다. 그렇지 않으면 강화 완료 후 로그인할 수 없습니다. 예시(OS 사용자: root 및 test):
# passwd
# passwd test
강화 스크립트는 bin/hardening 디렉토리에 있습니다. 각 스크립트는 etc/conf.d/[script_name].cfg에 해당 구성 파일이 있습니다.
각 강화 스크립트는 해당 구성 파일에서 개별적으로 활성화할 수 있습니다. 예를 들어, disable_system_accounts의 기본 구성 파일은 다음과 같습니다:
# Configuration for script of same name
status=disabled
# Put here your exceptions concerning admin accounts shells separated by spaces
EXCEPTIONS=""
status 매개변수는 3가지 값을 가질 수 있습니다:
disabled (아무것도 하지 않음): 스크립트가 실행되지 않습니다.audit (읽기 전용): 스크립트가 변경이 적용되어야 하는지 확인합니다.enabled (읽기-쓰기): 스크립트가 변경이 필요한지 확인하고 가능한 항목을 자동으로 적용합니다.또한 레벨을 수정하여 구성 항목을 활성화할 수 있습니다. 다음 명령을 사용하세요:
audit-all을 통해 etc/conf.d/[script_name].cfg 생성# bash bin/hardening.sh --audit-all
set-hardening-level로 [script_name].cfg 활성화
다음 명령을 사용하여 강화 레벨을 설정하면 해당 레벨의 감사 항목이 적용됩니다.# bash bin/hardening.sh --set-hardening-level <level>
전역 구성은 etc/hardening.cfg에 있습니다. 이 파일은 로그 레벨과 백업 디렉토리를 제어합니다. 스크립트가 파일을 편집하도록 지시되면 이 디렉토리에 타임스탬프가 포함된 백업을 생성합니다.
검사를 실행하고 수정 사항을 적용하려면 bin/hardening.sh를 실행하세요.
이 명령에는 두 가지 주요 작동 모드가 있습니다:
--audit: 활성화된 모든 스크립트와 감사 모드 스크립트로 시스템 감사--apply: 활성화된 모든 스크립트와 감사 모드 스크립트로 시스템 감사 후 활성화된 스크립트에 대한 변경 사항 적용또한 --audit-all을 사용하면 비활성화된 스크립트를 포함한 모든 감사 스크립트를 강제로 실행할 수 있습니다. 이는 시스템을 변경하지 않습니다.
--audit-all-enable-passed는 구성을 빠르게 시작하는 방법으로 사용할 수 있습니다. 모든 스크립트를 감사 모드로 실행합니다. 스크립트가 통과하면 이후 실행을 위해 자동으로 활성화됩니다. 구성을 이미 사용자 정의하기 시작했다면 이 옵션을 사용하지 마십시오.
OS를 강화하려면 다음 명령을 사용하세요:
# bash bin/hardening.sh --apply
rsyslog를 사용하고 harbian-audit 로그를 별도의 로그 파일에 출력하려면 다음과 같이 구성하세요:
user.info /var/log/harbian-audit.log
user.* -/var/log/user.log
로그는 /var/log/harbian-audit.log 파일에 출력됩니다.
방화벽 규칙에 docs/configurations/etc.iptables.rules.v4.sh를 적용하고 iptables 로그를 별도의 로그 파일에 출력하려면 rsyslog.conf에 다음 줄을 추가하세요:
:msg,contains,"FW-" -/var/log/firewalllog.log
& stop
--apply를 실행하고 set-hardening-level을 5(최고 레벨)로 설정한 경우 다음을 수행해야 합니다:
su 명령을 사용해야 합니다. 그런 다음 다음을 수행하세요:# sed -i '/^[^#].*pam_wheel.so.*/s/^/# &/' /etc/pam.d/su
pam_wheel.so가 포함된 줄을 임시로 주석 처리하세요. su 명령 사용을 마친 후에는 주석 처리를 해제하세요.
/etc/hosts.allow에 액세스 허용 호스트 목록을 설정해야 합니다. 예시:# echo "ALL: 192.168.1. 192.168.5." >> /etc/hosts.allow
이 예시는 192.168.1.[1-255] 및 192.168.5.[1-255]만 이 시스템에 액세스할 수 있도록 허용합니다. 상황에 맞게 구성해야 합니다.
# sed -i "/^root/a\test ALL=(ALL:ALL) ALL" /etc/sudoers
etc.iptables.rules.v4.sh 먼저 iptables-persistent 패키지를 설치한 후 다음을 수행하세요:
$ INTERFACENAME="your network interfacename(Example eth0)"
# bash docs/configurations/etc.iptables.rules.v4.sh $INTERFACENAME
# iptables-save > /etc/iptables/rules.v4
# ip6tables-save > /etc/iptables/rules.v6
nftables.conf 다음을 수행하세요(네트워크 인터페이스 이름(예: eth0)):
$ sed -i 's/^define int_if = ens33/define int_if = eth0/g' etc.nftables.conf
# nft -f ./etc.nftables.conf
# bin/hardening.sh --final
일부 검사 항목은 다양한 상황을 확인하며 상호 의존적이므로, 여러 번 적용(수정)해야 하며, 각 적용(수정) 후 OS를 재부팅해야 합니다.
8.1.35 이 항목이 설정되어 있으면 감사 규칙이 추가되지 않습니다.
8.4.1 8.4.2 이는 모두 aide와 관련되어 있습니다. 모든 항목을 수정한 후 시스템 데이터베이스의 무결성을 수정하는 것이 가장 좋습니다.
4.5
소스 코드 가져오기
$ git clone https://github.com/hardenedlinux/harbian-audit.git
사용자 정의 강화 스크립트 추가