분류 기타

Linux 서버 보안을 위한 6 가지 오픈 소스 도구 및 팁

컨텐츠 정보

  • 조회 365 (작성일 )

본문

오픈 소스 도구를 사용하여 Linux 환경을 침해로부터 보호하십시오.


오늘날 많은 개인 및 전문 데이터가 온라인에서 사용 가능하기 때문에 전문가부터 일반 인터넷 사용자에 이르기까지 모든 사람이 보안 및 개인 정보 보호의 기본 사항을 배우는 것이 중요합니다.

학생으로서 저는 제 학교의 CyberPatriot 이니셔티브를 통해 이 분야에서 경험을 쌓을 수 있었습니다. 여기서 업계 전문가와 상호 작용하여 사이버 침해와 시스템 보안을 설정하는 기본 단계에 대해 배울 수 있는 기회를 가졌습니다.


이 기사에서는 지금까지 초보자로서 배운 내용을 바탕으로 개인용 Linux 환경의 보안을 개선하는 6 가지 간단한 단계를 자세히 설명합니다.

여정 내내 오픈 소스 도구를 활용하여 학습 프로세스를 가속화하고 Linux 서버 보안과 관련된 고급 개념에 익숙해졌습니다.


가장 익숙한 버전 인 Ubuntu 18.04를 사용하여 이러한 단계를 테스트했지만 이 단계는 다른 Linux 배포에서도 작동합니다.


1. 업데이트 실행 


개발자는 알려진 취약점을 패치하여 서버를 보다 안정적이고 빠르고 안전하게 만드는 방법을 지속적으로 찾고 있습니다. 정기적으로 업데이트를 실행하는 것은 보안을 극대화하는 좋은 습관입니다. 다음과 같이 실행하십시오.


sudo apt-get update && apt-get upgrade 


2. 방화벽 보호 활성화 


방화벽을 활성화하면 서버에서 들어오고 나가는 트래픽을 더 쉽게 제어 할 수 있습니다. firewall-cmdUFW (Uncomplicated Firewall)를 포함하여 Linux에서 사용할 수 있는 많은 방화벽 응용 프로그램이 있습니다.

저는 UFW를 사용하므로 제 예제는 이에 한정되지만 이러한 원칙은 선택한 모든 인터페이스에 적용됩니다.


UFW 설치 :


sudo apt-get install ufw 


서버를 더욱 안전하게 보호하려면 수신 및 발신 연결을 거부 할 수 있습니다. 경고 : 이렇게 하면 서버가 전 세계에서 차단되므로 모든 트래픽을 차단 한 후에는 시스템에서 허용되는 나가는 연결을 지정해야 합니다.


sudo ufw default deny incoming
sudo ufw default allow outgoing 


개인적인 용도로 필요한 들어오는 연결을 허용하는 규칙을 작성할 수도 있습니다.


ufw allow <service> 


예를 들어 SSH 연결을 허용하려면 :


ufw allow ssh 


마지막으로 다음을 사용하여 방화벽을 활성화하십시오.


sudo ufw enable 


3. 비밀번호 보호 강화 


강력한 암호 정책을 구현하는 것은 사이버 공격과 데이터 침해로부터 서버를 안전하게 유지하는 중요한 측면입니다.

암호 정책에 대한 몇 가지 모범 사례에는 최소 길이 적용 및 암호 사용 기간 지정이 포함됩니다. 이러한 작업을 수행하기 위해 libpam-cracklib 패키지를 사용합니다.


libpam-cracklib 패키지를 설치합니다.


sudo apt-get install libpam-cracklib 


암호 길이를 적용하려면 :


  • /etc/pam.d/common-password 파일을 엽니다.
  • minlen = 12 행을 원하는 문자 수로 변경하여 모든 암호의 최소 문자 길이를 변경하십시오.

비밀번호 재사용을 방지하려면 :


  • 동일한 파일 (/etc/pam.d/common-password)에서 remember = x 행을 추가하십시오.
  • 예를 들어, 사용자가 최근 5 개의 비밀번호 중 하나를 재사용 하지 못하도록 하려면 remember = 5를 사용하십시오.

암호 사용 기간을 적용하려면 :


/etc/login.defs 파일에서 다음 줄을 찾아 원하는 시간 (일)으로 바꿉니다. 예를 들면 :


PASS_MIN_AGE: 3
PASS_MAX_AGE: 90
PASS_WARN_AGE: 14 


문자 사양을 적용하려면 :


  • 암호에 문자 사양을 적용하는 네 가지 매개 변수는 lcredit (소문자), ucredit (대문자), dcredit (숫자) 및 ocredit (기타 문자)입니다.
  • 동일한 파일 (/etc/pam.d/common-password)에서 pam_cracklib.so가 포함 된 줄을 찾습니다.
    -, 이 줄 끝에 다음을 추가합니다.
    lcredit=-a ucredit=-b dcredit=-c ocredit=-d
    -, 예를 들어 다음 줄에는 각 매개 변수 중 하나를 포함하는 암호가 필요합니다. 선호하는 암호 보안 수준에 따라 번호를 변경할 수 있습니다.
    lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1


4. 악용되기 쉬운 중요하지 않은 서비스 비활성화 


불필요한 서비스를 비활성화 하는 것이 가장 좋습니다. 이를 통해 악용을 위해 열 수 있는 포트 수를 줄일 수 있습니다.


systemd 패키지를 설치합니다.


sudo apt-get install systemd 


실행 중인 서비스 확인 :


systemctl list-units 


시스템에 잠재적인 취약점을 일으킬 수 있는 서비스를 인식합니다. 각 서비스에 대해 :


  • 현재 실행 중인 경우 서비스를 중지합니다.
    systemctl stop <service>
  • 부팅시 서비스가 시작되지 않도록 비활성화 합니다.
    systemctl disable <service>
  • 다음 명령을 실행 한 후 서비스 상태를 확인하십시오.
    systemctl status <service> 

5. 청취 포트 확인 


열린 포트는 보안 위험을 초래할 수 있으므로 서버에서 수신하는 포트를 확인하는 것이 중요합니다. netstat 명령을 사용하여 모든 네트워크 연결을 표시합니다.


netstat -tulpn 


주소 열을 보고 포트 번호를 확인하십시오. 열린 포트를 찾으면 검토하여 모두 필요한지 확인하십시오.

그렇지 않은 경우 실행 중인 서비스를 조정하거나 방화벽 설정을 조정하십시오 (또는 fail2ban이 조정하도록 허용).


6. 악성 코드 검사 


바이러스 백신 검사 소프트웨어는 시스템에서 바이러스를 차단하는 데 유용 할 수 있습니다. 이를 사용하면 서버를 맬웨어로부터 쉽게 보호 할 수 있습니다. 내가 선호하는 도구는 오픈 소스 소프트웨어 ClamAV입니다.


ClamAV 설치 :


sudo apt-get install clamav 


바이러스 서명 업데이트 :


sudo freshclam 


모든 파일을 스캔하고 감염된 파일을 인쇄하여 발견되면 벨을 울립니다.


sudo clamscan -r --bell -i / 


수동으로 수행하는 데 시간을 낭비하거나 기억할 필요가 없도록 스캔을 자동화 할 수 있고 자동화해야 합니다. 이와 같은 간단한 자동화를 위해 시스템 타이머 또는 좋아하는 크론을 사용할 수 있습니다.


서버를 안전하게 유지 


우리는 서버 보안에 대한 책임을 한 사람이나 조직에 맡길 수 없습니다. 위협 환경이 계속해서 빠르게 확장됨에 따라 서버 보안의 중요성을 인식하고 간단하고 효과적인 보안 모범 사례를 채택하는 것은 우리 각자에게 달려 있습니다.


이는 Linux 서버를 안전하게 유지하기 위해 취할 수 있는 여러 단계 중 일부에 불과합니다. 물론 예방은 해결책의 일부일 뿐입니다. 이러한 정책은 서비스 거부 공격에 대한 엄격한 모니터링, Lynis로 시스템 분석 수행, 빈번한 백업 생성과 결합되어야 합니다.


https://opensource.com/article/21/4/securing-linux-servers