오랫동안 Linux는 모호함을 통한 보안이라는 명성을 얻었습니다. 사용자는 해커의 주요 표적이 되지 않는다는 이점이 있었고 걱정할 필요가 없었습니다. 이 사실은 더 이상 유효하지 않으며 2017년과 2018년에는 Linux 버그 및 결함을 악용하여 악성코드, 바이러스, 루트킷 등을 설치하는 교묘한 방법을 찾는 수많은 해커를 보았습니다.
최근 익스플로잇, 맬웨어 및 기타 Linux 사용자에게 피해를 주는 악용 사례가 급증함에 따라 오픈 소스 커뮤니티는 보안 기능을 강화하여 대응했습니다. 그러나 이것으로 충분하지 않으며 서버에서 Linux를 사용하는 경우 목록을 보고 Linux 서버의 보안을 향상시킬 수 있는 방법을 배우는 것이 좋습니다.
목차
1. SELinux를 활용하라
SELinux, AKA Security-Enhanced Linux는 Linux 커널에 내장된 보안 도구입니다. 일단 활성화되면 사용자가 선택한 보안 정책을 쉽게 시행할 수 있으며 이는 견고한 Linux 서버의 필수 요소입니다.
많은 RedHat 기반 서버 운영 체제에는 SELinux가 활성화되어 있고 꽤 좋은 기본값으로 구성되어 있습니다. 즉, 모든 OS가 기본적으로 SELinux를 지원하는 것은 아니므로 켜는 방법을 보여드리겠습니다.
참고: Snap 패키지에는 SELinux의 대안인 AppArmor가 필요합니다. SELinux를 사용하기로 선택한 경우 특정 Linux 운영 체제에서 Snap을 사용하지 못할 수 있습니다.
CentOS/Rhel
CentOS와 RedHat Enterprise Linux는 모두 SELinux 보안 시스템과 함께 제공됩니다. 우수한 보안을 위해 사전 구성되어 있으므로 추가 지침이 필요하지 않습니다.
우분투 서버
Karmic Koala 이후로 Ubuntu는 SELinux 보안 도구를 활성화하는 것을 매우 쉽게 만들었습니다. 설정하려면 다음 명령을 입력하십시오.
sudo apt install selinux
데비안
Ubuntu와 마찬가지로 Debian을 사용하면 SELinux를 매우 쉽게 설정할 수 있습니다. 이를 수행하려면 다음 명령을 입력하십시오.
sudo apt-get install selinux-basics selinux-policy-default auditd
데비안에 SELinux 설치를 마친 후, 소프트웨어의 Wiki 항목을 확인하십시오.. 운영 체제에서 사용하기 위해 알아야 할 많은 정보를 다룹니다.
SE리눅스 매뉴얼
SELinux가 작동하게 되면 스스로에게 호의를 베풀고 SELinux 매뉴얼을 읽으십시오. 작동 방식을 알아보세요. 서버가 고마워할 것입니다!
SELinux 매뉴얼에 액세스하려면 터미널 세션에서 다음 명령을 입력하십시오.
man selinux
2. 루트 계정 비활성화
Linux 서버를 보호하기 위해 할 수 있는 가장 현명한 방법 중 하나는 루트 계정을 차단하고 Sudoer 권한만 사용하여 시스템 작업을 수행하는 것입니다. 이 계정에 대한 액세스를 차단하면 악의적인 사용자가 시스템 파일에 대한 전체 액세스 권한을 얻지 못하도록 하고 문제가 있는 소프트웨어(예: 맬웨어)를 설치하는 등의 작업을 수행할 수 있습니다.
Linux에서 루트 계정을 잠그는 것은 쉽고 사실 많은 Linux 서버 운영 체제(Ubuntu 같은)에서는 예방 조치로 이미 차단되어 있습니다. 루트 액세스 비활성화에 대한 자세한 내용은 이 가이드를 확인하십시오. 그것에서 우리는 루트 계정을 잠그는 방법에 대해 모두 이야기합니다.
3. SSH 서버 보안
많은 Linux 관리자가 모든 것을 잠그는 데 시간을 들이지 않고 회전하기 쉽기 때문에 기본 SSH 설정을 사용하는 것을 선호하기 때문에 SSH는 많은 Linux 서버에서 종종 심각한 약점입니다.
Linux 시스템에서 SSH 서버를 보호하기 위한 작은 조치를 취하면 권한 없는 사용자, 맬웨어 공격, 데이터 도난 등을 상당 부분 완화할 수 있습니다.
과거에 wdzwdz에서 Linux SSH 서버를 보호하는 방법에 대한 심층적인 게시물을 작성했습니다. SSH 서버를 잠그는 방법에 대한 자세한 내용은 여기에서 게시물을 확인하세요.
4. 항상 업데이트 설치
이것은 명백한 점처럼 보이지만 얼마나 많은 Linux 서버 운영자가 시스템 업데이트를 포기하는지 알면 놀랄 것입니다. 모든 업데이트가 실행 중인 애플리케이션을 망칠 가능성이 있기 때문에 선택은 이해할 수 있지만 시스템 업데이트를 피하기로 선택하면 해커가 Linux 시스템을 손상시키는 데 사용하는 취약점 및 버그를 수정하는 보안 패치를 놓칠 수 있습니다.
프로덕션 Linux 서버에서 업데이트하는 것이 데스크탑에서 업데이트하는 것이 훨씬 더 성가신 것은 사실입니다. 간단한 사실은 패치를 설치하기 위해 모든 것을 중지할 수 없다는 것입니다. 이 문제를 해결하려면 계획된 업데이트 일정을 설정하는 것이 좋습니다.
업데이트 일정에 대해 정해진 과학은 없습니다. 사용 사례에 따라 다를 수 있지만 최대 보안을 위해 매주 또는 격주로 패치를 설치하는 것이 가장 좋습니다.
6. 타사 소프트웨어 저장소 없음
Linux 사용의 좋은 점은 프로그램이 필요한 경우 올바른 배포판을 사용하는 한 타사 소프트웨어 저장소를 사용할 수 있다는 것입니다. 문제는 이러한 많은 소프트웨어 저장소가 시스템을 엉망으로 만들 가능성이 있고 맬웨어가 정기적으로 표시된다는 것입니다. 사실 검증되지 않은 타사 소스에서 제공되는 소프트웨어에 의존하는 Linux 설치를 실행하는 경우 문제가 발생할 수 있습니다.
Linux 운영 체제에서 기본적으로 배포하지 않는 소프트웨어에 액세스해야 하는 경우 Snap 패키지용 타사 소프트웨어 저장소를 건너뛰십시오. 스토어에는 수십 개의 서버급 애플리케이션이 있습니다. 무엇보다 Snap 스토어의 각 앱은 정기적으로 보안 감사를 받습니다.
Snap에 대해 더 알고 싶으십니까? 이 주제에 대한 게시물을 확인하여 Linux 서버에서 실행하는 방법을 알아보세요!
7. 방화벽을 활용하라
서버에서는 효과적인 방화벽 시스템을 갖추는 것이 전부입니다. 하나의 설정이 있으면, 그렇지 않으면 접촉하게 될 성가신 침입자를 많이 피할 수 있습니다. 반면에 효과적인 방화벽 시스템을 설정하지 못하면 Linux 서버에 심각한 문제가 발생합니다.
Linux에는 몇 가지 다른 방화벽 솔루션이 있습니다. 이를 염두에두고 일부는 다른 것보다 이해하기 쉽습니다. 지금까지 Linux에서 가장 간단하고 효과적인 방화벽 중 하나는 FirewallD입니다.
참고: FirewallD를 사용하려면 SystemD 초기화 시스템이 있는 서버 OS를 사용해야 합니다.
FirewallD를 활성화하려면 먼저 이를 설치해야 합니다. 터미널 창을 시작하고 Linux 운영 체제에 해당하는 명령을 입력합니다.
우분투 서버
sudo systemctl disable ufw sudo systemctl stop ufw sudo apt install firewalld
데비안
sudo apt-get install firewalld
CentOS/Rhel
sudo yum install firewalld
시스템에 소프트웨어가 설치된 상태에서 Systemd를 사용하여 활성화합니다.
sudo systemctl enable firewalld sudo systemctl start firewalld
결론
보안 문제는 Linux 서버에서 점점 더 일반적입니다. 슬프게도 Linux가 엔터프라이즈 영역에서 계속해서 인기를 얻으면서 이러한 문제는 더욱 만연하게 될 것입니다. 이 목록의 보안 팁을 따르면 이러한 공격의 대부분을 방지할 수 있습니다.