
강화된 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
사용자 정의 강화 스크립트 추가
$ cp src/skel bin/hardening/99.99_custom_script.sh
$ chmod +x bin/hardening/99.99_custom_script.sh
$ cp src/skel.cfg etc/conf.d/99.99_custom_script.cfg
검사 내용을 코딩하고 설명한 후 테스트하려면 다음을 실행하세요.
$ sed -i "s/status=.+/status=enabled/" etc/conf.d/99.99_custom_script.cfg
$ bash bin/hardening.sh --audit --only 99.99
$ bash bin/hardening.sh --apply --only 99.99
이 문서는 CIS 참조 문서에 포함되지 않은 섹션에 대한 추가 설명입니다. STIG 참조 문서 및 HardenedLinux 커뮤니티에서 권장하는 추가 검사 항목을 포함합니다.
CIS Debian GNU/Linux 8 Benchmark v1.0.0 CIS Debian GNU/Linux 9 Benchmark v1.0.0 harbian audit Debian Linux 9 Benchmark
How to config grub2 password protection How to persistent iptables rules with debian 9 How to deploy audisp-remote for auditd log How to migrating from iptables to nftables in debian10 How to persistent nft rules with debian 10 How to fix SELinux access denied
Nodejs + redis + mysql demo deploy-hyperledger-cello-on-debian-9 nginx-mutual-ssl-proxy-http nginx-mutual-ssl-proxy-tcp-udp
how to creating and making an AMI public how to use harbian-audit complianced for GNU/Linux Debian 9
How to creating and making a QEMU image of harbian-audit complianced Debian GNU/Linux 9 How to use QEMU image of harbian-audit complicanced Debian GNU/Linux 9
GPL 3.0
이 프로젝트는 도구 모음입니다. 시스템 관리자가 안전한 환경을 구축하는 데 도움을 주기 위한 것입니다. OVH에서 PCI-DSS 규정을 준수하는 인프라를 강화하기 위해 사용하고 있지만, 귀하에게도 적용될 것이라고 보장할 수 없습니다. 임의의 호스트를 자동으로 보호하지 않습니다.
또한 라이선스에 명시된 바와 같이:
THIS SOFTWARE IS PROVIDED BY OVH SAS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL OVH SAS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3-Clause BSD