Linux 강화 소개
우선, Linux 강화는 시스템의 안전 수준을 높이기 위한 것으로 주로 저급 명령을 통해 기본/기본 운영체제 값을 검사하고 편집한다.
암호화하다
LUKS를 사용하여 디스크와 볼륨을 암호화할 수 있습니다.다른 한편, 우리는
openssl
또는 gpg
를 사용하여 서로 다른 유형의 파일을 암호화할 수 있다.이 두 가지 옵션을 살펴보겠습니다.$ gpg --output nombre_salida --passphrase nuestra_contraseña --batch --no-tty --symmetric archivo_a_cifrar
$ openssl rsautl -encrypt -pubin -inkey miclave.pub -ssl -in archivo_a_cifrar -out salida
첫 번째 방법은 큰 파일을 암호화하는 것을 허용하고, 두 번째 방법은 공공 키를 사용하지만 큰 파일을 암호화할 수 없다.라이선스
명령
ls -ahl /home/ 2>/dev/null
은 우리에게 home
허가증을 검사하라고 했다.카탈로그의 내용과 라이센스 실행을 제외하고는 find / -perm -222 -type d -not -path "/ejemplo/*"
및 find / -executable -type d
를 사용하여 모든 쓰기 라이센스를 볼 수 있습니다.find
도구는 기본적으로 디렉터리와 파일을 찾을 수 있도록 해 줍니다. -type d
옵션은 디렉터리를 검색할 수 있고 여러 가지 옵션이 있습니다./etc/shadows
에서 확인할 수 있습니다.이것은 사용자 계정의 예입니다.ejemplousuario:$6$XOivHvJZ$DthDIzmVnzMigsByXQ2diHJZ9LFbROkyGyXnZ.98t5vpECl96Jmk621hquET/z8fbS9L5n4sFvTsvMtkBSWJM/:17911:0:99999:7:::
기본적으로 순서대로 보면 사용자 이름, 암호 알고리즘, 암호, 마지막 변경 시간(1970년 1월 1일부터), 암호를 변경하기 전에 경과해야 하는 최단 일수, 암호 유효 최장 일수, 암호 변경 통지 일수, 암호 만료 시간(예에 없음), 절대 만료 일자(예에 없음)를 확인할 수 있습니다.그럼에도 불구하고, 우리는 관련 암호 정책을 더욱 편리하게 검사할 수 있다grep "^PASS_MAX_DAYS\|^PASS_MIN_DAYS\|^PASS_WARN_AGE\|^ENCRYPT_METHOD" /etc/login.defs 2>/dev/null
.awk -F: '($2 == "") {print}' /etc/shadow
이 명령은 계정에 빈 암호가 있는지 확인하고 설명된 구조의 두 번째 값을 검사할 수 있도록 합니다.또한 다음과 같은 기능을 사용할 수 있습니다.awk -F: '($3 == "0") {print}' /etc/passwd
UID 0이 root
만 있는지 확인하려면 이 0이 없으면 처리해야 합니다.신변 안전
우리는 시스템도 반드시 물리적 보호를 받아야 한다는 것을 잊지 않을 것이다.BIOS 및 GRUB 부트 로더의 암호를 사용합니다.USB 부팅도 비활성화됩니다.Fedora, CentOS 등은 l키로 상호작용을 시작할 수 있으며 편집
/etc/sysconfig/init
을 비활성화하고 PROMPT=no
줄에서 알림을'아니오'로 변경할 수 있습니다.만약 우리가 USB 대용량 저장 드라이버를 사용하지 않는다면, 우리는 시스템의 USB 장치를 제한하여 고무오리, 나쁜 USB 등을 통해 공격하는 것을 피할 것이다.$ ls -l /lib/modules/$(uname -r)/kernel/drivers/usb/storage/usb-storage.ko
우리는 blacklist.conf
에 /etc/modprobe.d/
의 설비 블랙리스트를 설정할 수도 있다.야유
다음과 같은 방법으로 루트에서 SSH를 통해 로그인할 수 있는지 확인할 수 있습니다.
$ grep "PermitRootLogin " /etc/ssh/sshd_config 2>/dev/null | grep -v "#" | awk '{print $2}'
여기까지만 말하고 보안 로그인을 실행하기 위해 공개 키를 사용하는 것을 권장합니다.$ ssh-keygen -t key_type -b bits -C "comentario"
$ ssh-keygen -t ed25519 -C "Login al cluster de produccion"
$ ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_aws_$(date +%Y-%m-%d) -C "AWS para clientes"
키를 설치하려면 ssh-copy-id
를 사용할 수 있습니다.또한 AllowUsers
및 DenyUsers
및 PermitEmptyPasswords no
빈 암호를 사용하여 액세스를 제한할 수도 있습니다.작업 일정
ls -la /etc/cron*
를 사용하면 우리는 매시간, 매일, 매월 그리고 매주 프로그래밍 업무를 신속하게 검사할 수 있다.crontab 파일을 모듈화하는 데 사용되는 cron.d
을 볼 수 있지만, 실시간 crontab을 검사하려면 ls -la /var/spool/cron/crontabs
를 사용할 수 있습니다.기타
우리는 또한
w 2>/dev/null
를 사용하여 당시 누가 연결되었는지 검사할 수 있다.우리는 root
를 사용하여 grep -v -e '^$' /etc/sudoers |grep -v "#"
권한이 있는 사용자와 그룹을 검사할 수 있다.우리는 그것을 주석 줄을 피하기 위해서 사용한다. #
이 밖에 /etc/login.defs
에는 일반 사용자 정보의 재미있는 정보useradd
와 groupadd
가 포함되어 있다. 예를 들어 이 파일의 값을 사용한다.우리는 또한 umask -S & umask
(기호 -S
와 8진법 값) 을 사용하여umask값을 검사할 수 있다.SNMP 반사 공격을 방지하려면 cat /etc/services | grep -i snmp
를 사용하여 SNMP의 기본 포트를 확인할 수 있습니다.안전을 위해서 스크립트를 시도하고 작성하며 이 정보를 사용하도록 권장합니다!:)
Reference
이 문제에 관하여(Linux 강화 소개), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/terceranexus6/introduction-to-linux-hardening-5aj1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)