TMA-APACHE-7.4
Ensure the TLSv1.0 and TLSv1.1 Protocols are Disabled
Mô tả
The TLSv1.0 and TLSv1.1 protocols should be disabled via the SSLProtocol directive. The TLSv1.0 protocol is vulnerable to information disclosure and both protocols lack support for modern cryptographic algorithms including authenticated encryption. The only SSL/TLS protocols that should be allowed is TLSv1.2 along with the newer TLSv1.3 protocol. The effective SSLProtocol (last one at server level and in each virtual host) must resolve to TLSv1.2 and/or TLSv1.3 only (e.g. SSLProtocol +TLSv1.2 +TLSv1.3, or all -SSLv3 -TLSv1 -TLSv1.1), and at least one must exist. Reads the main configuration (APACHE_CONF overrides; default /etc/apache2/apache2.conf, /etc/httpd/conf/httpd.conf or /usr/local/apache2/conf/httpd.conf) and every Include/IncludeOptional file. CIS marks this recommendation Manual; the automated check implements its audit procedure.
Cách kiểm tra
Phương pháp kiểm tra: Lệnh shell
c=${APACHE_CONF:-}; if [ -z "$c" ]; then for f in /etc/apache2/apache2.conf /etc/httpd/conf/httpd.conf /usr/local/apache2/conf/httpd.conf /etc/apache2/httpd.conf; do [ -f "$f" ] && { c=$f; break; }; done; fi; [ -r "$c" ] || exit 1; R=$(awk 'tolower($1)=="serverroot"{v=$2; gsub(/"/,"",v); print v; exit}' "$c"); [ -n "$R" ] || R=$(dirname "$c"); shopt -s nocasematch; inc(){ local p g l; [ ${#FUNCNAME[@]} -lt 16 ] || return 0; p=$1; case $p in /*) ;; *) p=$R/$p;; esac; [ -d "$p" ] && p="$p/*"; for g in $p; do [ -f "$g" ] || continue; while IFS= read -r l || [ -n "$l" ]; do if [[ $l =~ ^[[:space:]]*include(optional)?[[:space:]]+\"?([^\"[:space:]]+) ]]; then inc "${BASH_REMATCH[2]}"; else printf '%s\n' "$l"; fi; done < "$g"; done; }; cfg=$(inc "$c" | sed -e 's/^[[:space:]]*//' -e '/^#/d' -e '/^$/d'); shopt -u nocasematch; eff(){ printf '%s\n' "$cfg" | awk -v k="$1" '{l=tolower($0)} l~/^<virtualhost/{vh=1; next} l~/^<\/virtualhost>/{if(v!="") print v; v=""; vh=0; next} tolower($1)==tolower(k){if(vh) v=$0; else g=$0} END{if(g!="") print g}'; }; eff SSLProtocol | awk 'tolower($1)=="sslprotocol"{n++; delete s; for(i=2;i<=NF;i++){t=$i; p=substr(t,1,1); if(p=="+"||p=="-") t=substr(t,2); else delete s; t=tolower(t); if(t=="all"){split("sslv3 tlsv1 tlsv1.1 tlsv1.2 tlsv1.3",z," "); for(j in z) if(p=="-") delete s[z[j]]; else s[z[j]]=1} else if(p=="-") delete s[t]; else s[t]=1} k=0; for(x in s){k++; if(x!="tlsv1.2" && x!="tlsv1.3") bad=1} if(k==0) bad=1} END{print (n>0&&!bad)?"compliant":"noncompliant"}'- Đầu ra mong đợi
compliant
Cách khắc phục
Phương pháp khắc phục: Hướng dẫn hoặc bản vá hạ tầng
Set SSLProtocol +TLSv1.2 +TLSv1.3 (or +TLSv1.2) at server level and in every TLS virtual host. Then run apachectl configtest and reload Apache.
Thuộc tính
- Hệ điều hành
- Bất kỳ
- Thẻ
- apachetls
- Tham chiếu
- CIS Apache HTTP Server 2.4 Benchmark v2.4.0 - 7.4 Ensure the TLSv1.0 and TLSv1.1 Protocols are Disabled
Kiểm tra máy này
Chạy lệnh này trên máy bạn được phép kiểm tra. Lần quét chỉ ở chế độ đọc.
tmaegis scan --target apache