리눅스 강화:안전한 리눅스 서버를위한 15 단계 체크리스트

구스

대부분의 사람들은 리눅스가 안전하다고 가정하고,그것은 잘못된 가정이다. 노트북이 먼저 강화되지 않고 도난 상상해보십시오. 도둑은 아마도 당신의 사용자 이름이”루트”이고 당신의 암호가”투”라고 가정 할 것입니다.이 암호는 칼리의 기본 암호이며 대부분의 사람들은 그것을 계속 사용하기 때문입니다. 당신은? 나는 희망하지.

당신의 칼리 리눅스 호스트를 강화하지 않기로 선택의 부정적인 경력에 미치는 영향은 심각하다,그래서 나는 일을 끝낼 침투 테스트 및 칼리 리눅스를 사용하는 방법을 포함하여 리눅스 호스트 보안을 만들기 위해 필요한 단계를 공유 할 수 있습니다. 그것은 그들이 리눅스의 많은 배포판(일명 배포판)이며,각각의 하나는 명령 줄 관점에서 다른 반면,논리는 동일하다는 점에 유의하는 것이 중요합니다. 자신의 리눅스 상자를 강화하기 위해 다음 팁을 사용합니다.

1-호스트 정보 문서화

새로운 리눅스 강화 작업을 할 때마다 이 게시물에 나열된 모든 체크리스트 항목이 있는 새 문서를 만들어야 하며,적용한 모든 항목을 확인해야 합니다. 또한,문서의 상단에,당신은 리눅스 호스트 정보를 포함해야합니다:

  • 컴퓨터 이름
  • 맥 주소
  • 강화 작업을 수행하는 사람의 이름(대부분 사용자)
  • 날짜
  • 자산 번호(회사에서 근무하는 경우 회사에서 호스트에 태그를 지정하는 데 사용하는 자산 번호를 포함해야 합니다.)

2-최종 사용자가 바이오스의 보안 설정을 변경하거나 재정의할 수 없도록 암호를 사용하여 호스트의 바이오스를 보호해야 합니다. 각 컴퓨터 제조업체는 바이오스 모드를 입력 할 수있는 키의 다른 세트를 가지고,그것은 당신이 관리 암호를 설정 구성을 찾는 문제입니다.

그런 다음 외부 미디어 장치에서 부팅을 비활성화해야합니다. 이 설정을 생략하면 누구나 부팅 가능한 운영 체제가 포함된 스틱을 사용할 수 있으며 운영 체제 데이터에 액세스할 수 있습니다.

+리눅스에 대해 더 알고 싶으십니까? 기술 학습 플랫폼 인 복수 사이트를 통해 자세히 알아보십시오. 지금 리눅스를 배우십시오. +

최신 서버의 마더 보드에는 원격으로 액세스 할 수있는 내부 웹 서버가 있습니다. 관리자 페이지의 기본 암호를 변경하거나 가능한 경우 사용하지 않도록 설정해야 합니다.

3-하드 디스크 암호화(기밀 유지)

리눅스 배포판의 대부분은 설치하기 전에 디스크를 암호화 할 수 있습니다. 그들은 자신의 컴퓨터에 하드 디스크를 연결하는 경우 컴퓨터를 훔친 사람이 데이터를 읽을 수 없기 때문에 디스크 암호화는 도난의 경우에 중요하다.

아래 이미지의 목록에서 세 번째 옵션을 선택합니다.)

리눅스 배포판이 암호화를 지원하지 않는 경우,당신은 트루 크립트와 같은 소프트웨어와 함께 갈 수 있습니다.

4-디스크 보호(가용성)

백업은 손상된 시스템,운영 체제 업데이트의 버그의 경우 많은 장점이 있습니다. 중요한 서버의 경우 재해가 발생할 경우 백업을 오프사이트로 전송해야 합니다. 백업도 관리해야 합니다. 예를 들어,얼마나 오래 당신은 오래된 백업을 유지합니다? 당신은 백업 시스템(매일,매주…)에 필요한 경우?

중요한 시스템은 다음에 대해 서로 다른 파티션으로 분리되어야 합니다:

  • /
  • /boot
  • /usr
  • /home
  • /tmp
  • /var
  • /opt

디스크를 분할하면 시스템 오류가 발생할 경우 성능 및 보안의 기회를 얻을 수 있습니다. 아래 그림에서,당신은 설치하는 동안 칼리 리눅스에서 파티션을 분리하는 방법의 옵션을 볼 수 있습니다.

5-부트 디렉토리 잠금

부트 디렉토리에는 리눅스 커널과 관련된 중요한 파일이 포함되어 있으므로 다음 간단한 단계를 수행하여 이 디렉토리가 읽기 전용 권한으로 잠겨 있는지 확인해야 합니다. 먼저 파일을 엽니 다.

그런 다음 맨 아래에 강조 표시된 마지막 줄을 추가합니다.

파일 편집을 마치면 다음 명령을 실행하여 소유자를 설정해야 합니다:

#chown root:root /etc/fstab

다음으로 부팅 설정을 보호하기위한 몇 가지 권한을 설정했습니다:

  • /등/땅벌레의 소유자 및 그룹을 설정합니다.루트 사용자에게 연결:

#chown root:root /etc/grub.conf

  • 에 대한 권한을 설정/기타/애벌레.루트 전용 읽기 및 쓰기 파일:

#chmod og-rwx /etc/grub.conf

  • 단일 사용자 모드에 대한 인증 필요:

#sed -i "/SINGLE/s/sushell/sulogin/" /etc/sysconfig/init

#sed -i "/PROMPT/s/yes/no/" /etc/sysconfig/init

6-사용 안 함

시스템의 중요성에 따라 리눅스 호스트에서 사용 안 함을 설정해야 하는 경우가 있습니다. 여러 가지 방법이 있습니다.:

“블랙리스트”를 엽니 다.좋아하는 텍스트 편집기를 사용하여 파일:

#nano /etc/modprobe.d/blacklist.conf

파일이 열리면 파일 끝에 다음 줄을 추가합니다(저장 후 닫기):

blacklist usb_storage

그 후,이 작업을 수행하십시오.로컬 파일:

#nano /etc/rc.local

마지막으로 다음 두 줄을 추가하십시오:

modprobe -r usb_storage

exit 0

7-시스템 업데이트

첫 번째 부팅 후 가장 먼저해야 할 일은 시스템을 업데이트하는 것입니다. 일반적으로 터미널 창을 열고 적절한 명령을 실행합니다. 칼리 리눅스에서,당신은 아래 그림에서 명령을 실행하여이를 달성:

8-설치된 패키지 확인

리눅스 운영체제에 설치된 모든 패키지를 나열하고 불필요한 패키지를 제거하십시오. 서버 응용 프로그램 및 그들에 설치 된 서비스의 최소 수를 필요로 하기 때문에 강화 하려고 하는 호스트 서버 인 경우 매우 엄격 해야 합니다. 다음은 칼리 리눅스에 설치된 패키지를 나열하는 방법의 예입니다:

불필요한 서비스를 사용하지 않도록 설정하면 공격 영역이 줄어들므로 다음 레거시 서비스를 리눅스 서버에 설치한 경우 제거하는 것이 중요합니다:

  • 1132>

9-열린 포트 확인

인터넷에 대한 열린 연결을 식별하는 것은 중요한 임무입니다. 칼리 리눅스에서,나는 숨겨진 열린 포트를 발견하기 위해 다음 명령을 사용합니다:

10-하지만 이 서비스 역시 강화해야 합니다. 우선,만약 당신이 그것을 해제 할 수 있다면,그것은 해결 된 문제입니다. 그러나,당신이 그것을 사용 하려는 경우 다음 기본 구성을 변경 해야 합니다. 이 응용 프로그램을 사용하면 원하는 텍스트 편집기를 사용하여 파일을 열 수 있습니다.

  • 기본 포트 번호 22 를 다른 것으로 변경하십시오(예:99).
  • 루트가 원격으로 로그인 할 수 없는지 확인하십시오.:

PermitRootLogin no

  • 일부 특정 사용자 허용:

AllowUsers

명부는 계속적으로 갈 수 있는다,그러나 이들은 로 시작하기 이젠 그만 이어야 한다. 예를 들어,일부 기업은 공격자를 억제하고 더 계속에서 그들을 억제하기 위해 배너를 추가합니다. 이 파일에 있는 모든 구성을 이해하려면 설명서를 확인하시거나 이 사이트를 방문하여 더 많은 정보를 얻으시기 바랍니다.

다음과 같은 추가 옵션이 있습니다:

  • Protocol2
  • IgnoreRhosts 예
  • HostbasedAuthentication no
  • PermitEmptyPasswords no
  • X11Forwarding no
  • MaxAuthTries5
  • 암호 aes128-ctr,aes192-ctr,aes256-ctr
  • ClientAliveInterval900
  • ClientAliveCountMax0
  • UsePAM 예

마지막으로,설정에 대한 사용 권한 sshd_config 도록 파일만 root 사용자가 내용을 변경할 수 있습니다:

#chown root:root /etc/ssh/sshd_config

#chmod 600 /etc/ssh/sshd_config

11- 보안 강화 리눅스는 액세스 제어 보안 정책을 지원하는 커널 보안 메커니즘입니다. 셀리눅스에는 세 가지 구성 모드가 있습니다:

  • 사용 안 함:꺼짐
  • 허용:경고 인쇄
  • 적용:정책이 적용됩니다

텍스트 편집기를 사용하여 구성 파일을 엽니다:

#nano /etc/selinux/config

그리고 정책이 적용되는지 확인하십시오:

SELINUX=enforcing

12- 네트워크 매개 변수

리눅스 호스트 네트워크 활동을 보호하는 것은 필수적인 작업입니다. 항상 방화벽이 모든 것을 처리 할 것이라고 가정하지 마십시오. 호스트 네트워크 보안을 위해 고려해야 할 몇 가지 중요한 기능은 다음과 같습니다.아이피 4.이 매개 변수는 다음과 같습니다.콘프”

– 네트워크를 설정하여 잘못된 오류 메시지 보호를 활성화합니다.아이피 4.이 매개 변수는 다음과 같습니다.”

리눅스 방화벽을 사용하는 것이 좋습니다. 당신의 데이터베이스 규칙을 구성하는 것은 시간이 좀 걸릴 것입니다,하지만 고통 가치가있다.

13- 암호 정책

사람들은 종종 암호를 재사용하는데 이는 나쁜 보안 관행입니다. 이전 암호는 파일에 저장됩니다. 우리는 리눅스 호스트의 보안 정책을 관리하기 위해 팸 모듈을 사용할 것입니다. 데비안 배포판에서 파일을 엽니 다.”/기타/팸.디/공통-암호”텍스트 편집기를 사용하여 다음과 같은 두 줄을 추가:

auth sufficient pam_unix.so likeauth nullok

password sufficient pam_unix.so remember=4 (사용자가 마지막 네 개의 암호를 재사용 할 수 없습니다.)

강제해야 할 또 다른 암호 정책은 강력한 암호입니다. 이것은 수학적으로 정확한 유형 계층구조인,강력한 타입을 정의합니다. 이 작업을 수행하려면 파일/등/팸을 엽니 다.디/시스템-텍스트 편집기를 사용하여 인증하고 다음 줄을 추가하십시오:

/lib/security/$ISA/pam_cracklib.so retry=3 minlen=8 lcredit=-1 ucredit=-2 dcredit=-2 ocredit=-1

리눅스는 암호를 해시합니다 그래서 일반 텍스트에 저장 피하기 위해,당신은 보안 암호 해싱 알고리즘을 정의 할 수 있는지 확인해야합니다.

또 다른 흥미로운 기능은 다섯 번의 실패한 시도 후에 계정을 잠그는 것입니다. 이 일어날 수 있도록,당신은 파일을 열 필요가”/기타/팸.다음 줄을 추가하십시오:

auth required pam_env.so

auth required pam_faillock.so preauth audit silent deny=5 unlock_time=604800

auth pam_unix.so

auth pam_faillock.so authfail audit deny=5 unlock_time=604800

auth sufficient pam_faillock.so authsucc audit deny=5 unlock_time=604800

auth required pam_deny.so

우리는 아직 완료되지 않은;하나의 추가 단계가 필요합니다. 파일 열기”/기타/팸.디/시스템-인증”및 다음 줄을 추가했는지 확인하십시오:

auth required pam_env.so

auth required pam_faillock.so preauth audit silent deny=5 unlock_time=604800

auth pam_unix.so

auth pam_faillock.so authfail audit deny=5 unlock_time=604800

auth sufficient pam_faillock.so authsucc audit deny=5 unlock_time=604800

auth required pam_deny.so

5 번의 시도가 실패하면 관리자만 다음 명령을 사용하여 계정의 잠금을 해제할 수 있습니다.

:

  • 패스_최대 일 매개 변수를 90 으로 설정하십시오.다음 명령을 실행하여 활성 사용자를 변경합니다:

#chage --maxdays 90 <user>

암호 정책을 강화하기 위한 다음 팁은 암호 정책을 설정하여 스와 명령에 대한 액세스를 제한하는 것입니다.pam_wheel.so 매개 변수”/등/팸.2018 년 10 월 15 일(토)~2018 년 10 월 15 일(일)pam_wheel.so 암호 정책에 대한 마지막 팁은 다음 배쉬 스크립트를 사용하여 루트가 아닌 사용자의 시스템 계정을 비활성화하는 것입니다:

#!/bin/bash

for user in `awk -F: '( < 500) {print }' /etc/passwd`; do

if

then

/usr/sbin/usermod -L $user

if && &&

then /usr/sbin/usermod -s /sbin/nologin $user

fi

fi

done

14-권한 및 검증

이 긴 목록이 될 것입니다 때문에 정신적으로 자신을 준비합니다. 그러나,권한은 리눅스 호스트의 보안 목표를 달성하기 위해 가장 중요하고 중요한 작업 중 하나입니다.

#chown root:root /etc/anacrontab

#chmod og-rwx /etc/anacrontab

#chown root:root /etc/crontab

#chmod og-rwx /etc/crontab

#chown root:root /etc/cron.hourly

#chmod og-rwx /etc/cron.hourly

#chown root:root /etc/cron.daily

#chmod og-rwx /etc/cron.daily

#chown root:root /etc/cron.weekly

#chmod og-rwx /etc/cron.weekly

#chown root:root /etc/cron.monthly

#chmod og-rwx /etc/cron.monthly

#chown root:root /etc/cron.d

#chmod og-rwx /etc/cron.d

오른쪽 및 권한 설정”/바르/스풀/크론”에 대한”루트 크론 탭”

#chown root:root <crontabfile>

#chmod og-rwx <crontabfile>

사용자/그룹 소유자 및”패스워드”파일에 대한 권한 설정

#chmod 644 /etc/passwd

#chown root:root /etc/passwd

사용자/그룹 소유자 및 권한 설정 “그룹”파일

#chmod 644 /etc/group

#chown root:root /etc/group

“그림자”파일에 대한 사용자/그룹 소유자 및 권한 설정

#chmod 600 /etc/shadow

#chown root:root /etc/shadow

사용자/그룹 소유자 및 권한 설정

#chmod 600 /etc/gshadow

#chown root:root /etc/gshadow

15- 추가 프로세스 경화

목록의 마지막 항목에 대해,나는 리눅스 호스트를 강화 할 때 고려해야 할 몇 가지 추가 팁을 포함하고 있습니다.

먼저 코어 덤프 제한:

  • “/등/보안/제한에 하드 코어 0 추가.이 문제를 해결하려면 다음을 수행하십시오.이 문제를 해결하는 방법은 무엇입니까?파일

둘째,에 의해 간부 방패를 구성:

  • 커널 추가.이 문제를 해결하려면 다음을 수행하십시오.셋째,무작위 가상 메모리 영역 배치를 사용 가능하게 합니다.:
    • 커널 추가.이 문제를 해결하는 방법은 무엇입니까?파일

    마지막 단어

    이 짧은 게시물에서,우리는 리눅스 보안에 대한 많은 중요한 구성을 다루었. 그러나,우리는 단지 리눅스 경화의 표면을 긁힌 한—복잡한,핵심적으로 껄끄 러운 구성이 많이 있습니다. 더 나은 보안을 위해 리눅스 서버를 강화하는 방법에 대한 자세한 내용은 복수 사이트에 내 과정을 확인하십시오.

    거스 카와자는 복수 사이트의 보안 컨설턴트 및 저자입니다. 그는 보안,웹 응용 프로그램 및 웹 응용 프로그램 개발 분야에서 일하고 복수 사이트를위한 과정을 만듭니다. 거스는 캐나다 전역의 기업들을 위한 솔루션을 성공적으로 제공하고 개발했습니다. 컴퓨터 과학 분야에서 다년간의 경험을 쌓은 그는 사이버 보안과 보안이 지뢰밭에서 가져 오는 중요성에 관심을 돌 렸습니다. 윤리적 해킹에 대한 그의 열정은 프로그래밍에서 자신의 배경과 혼합 그것은 그에게 컴퓨터 과학 분야에서 현명한 스위스 군용 칼 전문합니다.

답글 남기기

이메일 주소는 공개되지 않습니다.