20 CentOS 서버 강화 보안 팁-1 부
이 자습서에서는 시스템을 강화하는 데 사용할 수있는 CentOS 8/7에 대한 일반적인 보안 팁만 다룹니다. 체크리스트 팁은 주로 다양한 유형의 베어 메탈 서버 또는 네트워크 서비스를 제공하는 머신 (물리적 또는 가상)에서 사용하기위한 것입니다.
그러나 일부 팁은 데스크톱, 랩톱 및 카드 크기의 단일 보드 컴퓨터 (Raspberry Pi)와 같은 범용 컴퓨터에도 성공적으로 적용될 수 있습니다.
1. 물리적 보호
서버 실 액세스를 잠그고 랙 잠금 및 비디오 감시를 사용합니다. 서버 실에 대한 물리적 액세스로 인해 컴퓨터가 심각한 보안 문제에 노출 될 수 있다는 점을 고려하십시오.
BIOS 암호는 마더 보드의 점퍼를 재설정하거나 CMOS 배터리를 분리하여 변경할 수 있습니다. 또한 침입자는 하드 디스크를 훔치거나 새 하드 디스크를 마더 보드 인터페이스 (SATA, SCSI 등)에 직접 연결하고 Linux 라이브 배포판으로 부팅하고 소프트웨어 추적을 남기지 않고 데이터를 복제 또는 복사 할 수 있습니다.
2. 스파이 영향 감소
매우 민감한 데이터의 경우 서버를 패러데이 케이지에 배치하고 잠그는 것과 같은 고급 물리적 보호를 사용하거나 무선 또는 전기 누출 방출을 통해 시스템을 감시하는 영향을 최소화하기 위해 군용 TEMPEST 솔루션을 사용해야합니다.
3. 보안 BIOS / UEFI
권한이없는 사용자가 시스템 BIOS 설정을 수정하거나 변경하지 못하도록 BIOS/UEFI 설정을 보호하고 특히 BIOS/UEFI 암호를 설정하고 부팅 미디어 장치 (CD, DVD, USB 지원 비활성화)를 비활성화하여 시스템 강화 프로세스를 시작합니다. "부팅 장치 우선 순위 및 대체 매체에서 머신 부팅.
이러한 유형의 변경 사항을 시스템에 적용하려면 마더 보드 제조업체 설명서에서 특정 지침을 참조해야합니다.
4. 보안 부트 로더
악의적 인 사용자가 커널 부트 시퀀스 또는 실행 수준을 변경하거나 커널 매개 변수를 편집하거나 시스템을 단일 사용자 모드로 시작하는 것을 방지하기 위해 GRUB 암호를 설정하고 권한있는 제어 권한을 얻기 위해 루트 암호를 재설정합니다.
5. 별도의 디스크 파티션 사용
프로덕션 서버로 설계된 시스템에 CentOS를 설치할 때 시스템의 다음 부분에 전용 파티션 또는 전용 하드 디스크를 사용합니다.
/(root) /boot /home /tmp /var
6. 중복성 및 파일 시스템 확장을 위해 LVM 및 RAID 사용
/ var 파티션은 로그 메시지가 디스크에 기록되는 장소입니다. "시스템의이 부분은 웹 서버 또는 파일 서버와 같은 네트워크 서비스를 노출하는 트래픽이 많은 서버에서 기하 급수적으로 크기가 커질 수 있습니다.
따라서/var에 큰 파티션을 사용하거나 논리 볼륨 (LVM)을 사용하여이 파티션을 설정하거나 여러 물리적 디스크를 하나의 더 큰 가상 RAID 0 장치로 결합하여 많은 양의 데이터를 유지하십시오. 데이터의 경우 중복성은 RAID 1 수준 위에 LVM 레이아웃을 사용하는 것을 고려합니다.
디스크에 LVM 또는 RAID를 설정하려면 유용한 가이드를 따르십시오.
- Setup Disk Storage with LVM in Linux
- Create LVM Disks Using vgcreate, lvcreate and lvextend
- Combine Several Disks into One Large Virtual Storage
- Create RAID 1 Using Two Disks in Linux
7. 데이터 파티션 보안을 위해 fstab 옵션 수정
데이터를 저장하기위한 파티션을 분리하고 아래 발췌 부분에 설명 된대로 fstab 파일에 다음 옵션을 추가하여 이러한 유형의 파티션에서 프로그램, 장치 파일 또는 setuid 비트의 실행을 방지합니다.
/dev/sda5 /nas ext4 defaults,nosuid,nodev,noexec 1 2
권한 상승 및 임의 스크립트 실행을 방지하려면/tmp에 대해 별도의 파티션을 만들고 nosuid, nodev 및 noexec로 마운트합니다.
/dev/sda6 /tmp ext4 defaults,nosuid,nodev,noexec 0 0
8. LUKS를 사용하여 블록 수준에서 하드 디스크 암호화
머신 하드 드라이브에 물리적으로 액세스하는 경우 민감한 데이터 스누핑을 보호하기 위해. LUKS를 사용한 Linux 하드 디스크 데이터 암호화 기사를 읽고 디스크를 암호화하는 방법을 배우는 것이 좋습니다.
9. PGP 및 공개 키 암호화 사용
디스크를 암호화하려면 PGP 및 공개 키 암호화 또는 OpenSSL 명령을 사용하여이 문서 암호화 된 Linux 시스템 저장소 구성에 표시된대로 암호로 중요한 파일을 암호화하고 해독합니다.
10. 필요한 최소한의 패키지 만 설치
패키지 취약성을 피하기 위해 중요하지 않거나 불필요한 프로그램, 응용 프로그램 또는 서비스를 설치하지 마십시오. 이렇게하면 소프트웨어의 손상으로 인해 다른 응용 프로그램, 시스템의 일부 또는 파일 시스템이 손상되어 최종적으로 데이터 손상 또는 데이터 손실이 발생할 수있는 위험을 줄일 수 있습니다.
11. 시스템을 자주 업데이트하십시오.
시스템을 정기적으로 업데이트하십시오. 아래 명령을 실행하여 Linux 커널을 최신 보안 패치 및 설치된 모든 소프트웨어와 최신 버전으로 동기화하십시오.
# yum update
12. Ctrl + Alt + Del 비활성화
사용자가 키보드에 물리적으로 액세스하거나 원격 콘솔 애플리케이션 또는 가상화 된 콘솔 (KVM, 가상화 소프트웨어 인터페이스)을 통해 서버를 재부팅하지 못하도록하려면 Ctrl + Alt + Del
키를 비활성화해야합니다. 아래 명령을 실행하여 시퀀스.
# systemctl mask ctrl-alt-del.target
13. 불필요한 소프트웨어 패키지 제거
컴퓨터에 필요한 최소한의 소프트웨어를 설치하십시오. 추가 프로그램이나 서비스를 설치하지 마십시오. 신뢰할 수있는 저장소 나 공식 저장소에서만 패키지를 설치하십시오. 머신이 전체 수명을 서버로 실행할 예정인 경우 시스템의 최소 설치를 사용합니다.
다음 명령 중 하나를 사용하여 설치된 패키지를 확인합니다.
# rpm -qa
설치된 모든 패키지의 로컬 목록을 만듭니다.
# yum list installed >> installed.txt
쓸모없는 소프트웨어 목록을 참조하고 아래 명령을 실행하여 패키지를 삭제하십시오.
# yum remove package_name
14. 데몬 업데이트 후 Systemd 서비스 다시 시작
새 업데이트를 적용하려면 아래 명령 예제를 사용하여 systemd 서비스를 다시 시작하십시오.
# systemctl restart httpd.service
15. 불필요한 서비스 제거
다음 ss 명령을 사용하여 특정 포트에서 수신하는 서비스를 식별합니다.
# ss -tulpn
출력 상태와 함께 설치된 모든 서비스를 나열하려면 아래 명령을 실행하십시오.
# systemctl list-units -t service
예를 들어 CentOS 기본 최소 설치에는 기본적으로 포트 25에서 마스터 이름으로 실행되는 Postfix 데몬이 설치되어 있습니다. 컴퓨터가 메일 서버로 사용되지 않을 경우 Postfix 네트워크 서비스를 제거하십시오.
# yum remove postfix
16. 전송 된 데이터 암호화
Telnet, FTP와 같은 원격 액세스 또는 파일 전송에 보안되지 않은 프로토콜을 사용하거나 기본적으로 인증 세션이나 전송 된 데이터를 암호화하지 않는 SMTP, HTTP, NFS 또는 SMB와 같은 기타 일반 텍스트 높은 프로토콜을 사용하지 마십시오.
파일 전송에는 sftp, scp 만 사용하고 원격 콘솔 연결 또는 GUI 액세스에는 SSH 터널을 통한 SSH 또는 VNC 만 사용하십시오.
SSH를 통해 VNC 콘솔을 터널링하려면 원격 시스템에서 로컬 시스템으로 VNC 포트 5901을 전달하는 아래 예제를 사용하십시오.
# ssh -L 5902:localhost:5901 remote_machine
로컬 머신에서 원격 엔드 포인트에 가상 연결하려면 아래 명령을 실행하십시오.
# vncviewer localhost:5902
17. 네트워크 포트 검색
LAN을 통해 원격 시스템에서 Nmap 도구를 사용하여 외부 포트 검사를 수행합니다. 이러한 유형의 검색은 네트워크 취약성을 확인하거나 방화벽 규칙을 테스트하는 데 사용할 수 있습니다.
# nmap -sT -O 192.168.1.10
18. 패킷 필터링 방화벽
firewalld 유틸리티를 사용하여 시스템 포트를 보호하고 특정 서비스 포트, 특히 잘 알려진 포트 (<1024)를 열거 나 닫습니다.
아래 명령을 실행하여 방화벽 규칙을 설치, 시작, 활성화 및 나열합니다.
# yum install firewalld # systemctl start firewalld.service # systemctl enable firewalld.service # firewall-cmd --list-all
19. Tcpdump로 프로토콜 패킷 검사
tcpdump 유틸리티를 사용하여 네트워크 패킷을 로컬에서 탐지하고 의심스러운 트래픽 (소스-대상 포트, TCP/IP 프로토콜, 레이어 2 트래픽, 비정상적인 ARP 요청)에 대해 해당 콘텐츠를 검사합니다.
tcpdump 캡처 파일을 더 잘 분석하려면 Wireshark와 같은 고급 프로그램을 사용하십시오.
# tcpdump -i eno16777736 -w tcpdump.pcap
20. DNS 공격 방지
확인자 (일반적으로 /etc/resolv.conf 파일)의 내용을 검사합니다.이 파일은 중간자 공격, 불필요한 트래픽을 방지하기 위해 도메인 이름을 쿼리하는 데 사용해야하는 DNS 서버의 IP 주소를 정의합니다. 루트 DNS 서버, 스푸핑 또는 DOS 공격 생성.
이것은 단지 첫 번째 부분입니다. "다음 부분에서는 CentOS 8/7에 대한 다른 보안 팁에 대해 설명합니다.