LFCA: Linux 시스템을 보호하기 위한 기본 보안 팁 – 17부


그 어느 때보다도 우리는 매우 중요하고 막대한 재정적 보상을 제공하는 매우 민감하고 기밀인 데이터의 획득으로 인해 동기가 부여된 보안 침해로 인해 조직이 끊임없이 공격받는 세상에 살고 있습니다.

잠재적으로 파괴적인 사이버 공격으로 고통받을 위험이 높음에도 불구하고 대부분의 기업이 준비가 제대로 되어 있지 않거나 단순히 위험 신호를 간과하고 종종 치명적인 결과를 초래한다는 것은 놀라운 일입니다.

2016년 Equifax는 일련의 보안 결함으로 인해 수백만 건의 기밀 고객 기록이 도난당하는 치명적인 데이터 침해를 겪었습니다. 상세한 보고서에 따르면 Equifax의 보안 팀이 올바른 보안 조치를 구현했다면 침해를 예방할 수 있었습니다.

사실, 침해가 발생하기 몇 달 전에 Equifax는 보안을 위협할 수 있는 웹 포털의 잠재적인 취약성에 대해 경고를 받았지만 안타깝게도 경고를 무시하고 심각한 결과를 초래했습니다. 다른 많은 대기업이 공격의 희생양이 되었으며 매 순간마다 복잡성이 계속해서 증가하고 있습니다.

Linux 시스템의 보안이 얼마나 중요한지 아무리 강조해도 지나치지 않습니다. 잠재적인 침해 대상이 될 수 있는 유명 금융 기관이 아닐 수도 있지만 그렇다고 해서 경계를 늦추어야 하는 것은 아닙니다.

Linux 서버를 설정할 때 특히 인터넷에 연결되어 원격으로 액세스되는 경우 보안을 가장 중요하게 생각해야 합니다. 기본 보안 기술을 갖추는 것은 Linux 서버를 보호하는 데 필수적입니다.

이 가이드에서는 침입자로부터 시스템을 보호하기 위해 취할 수 있는 몇 가지 기본 보안 조치에 중점을 둡니다.

사이버 공격 벡터

침입자는 다양한 공격 기술을 이용하여 Linux 서버에 액세스합니다. 시스템을 보호하기 위해 취할 수 있는 몇 가지 조치에 대해 알아보기 전에 해커가 시스템에 침투하는 데 사용할 수 있는 몇 가지 일반적인 공격 벡터를 활용해 보겠습니다.

무차별 대입 공격은 해커가 시행착오를 통해 사용자의 로그인 자격 증명을 추측하는 공격입니다. 일반적으로 침입자는 자동 스크립트를 사용하여 사용자 이름과 암호의 올바른 조합을 얻을 때까지 계속해서 항목을 얻습니다. 이러한 종류의 공격은 취약하고 쉽게 추측할 수 있는 암호가 사용되는 곳에서 가장 효과적입니다.

앞서 언급했듯이 password1234와 같이 짧고 쉽게 추측할 수 있는 암호와 같은 약한 자격 증명은 시스템에 잠재적인 위험을 초래할 수 있습니다. 암호가 짧고 덜 복잡할수록 시스템이 손상될 가능성이 높아집니다.

피싱은 공격자가 피해자에게 합법적인 기관이나 귀하가 알고 있거나 거래하는 사람이 보낸 것으로 보이는 이메일을 보내는 사회 공학 기술입니다.

일반적으로 이메일에는 피해자에게 민감한 정보를 공개하도록 지시하는 지침이 포함되어 있거나 회사 사이트로 가장하는 가짜 사이트로 연결되는 링크가 포함될 수 있습니다. 피해자가 로그인을 시도하면 공격자가 해당 자격 증명을 캡처합니다.

멀웨어는 악성 소프트웨어의 줄임말입니다. 여기에는 바이러스, 트로이 목마, 웜 및 랜섬웨어와 같은 광범위한 악의적인 애플리케이션이 포함되며, 이들은 빠르게 확산되고 몸값을 받는 대가로 피해자의 시스템을 인질로 잡도록 설계되었습니다.

이러한 공격은 쇠약해질 수 있으며 조직의 비즈니스를 마비시킬 수 있습니다. 일부 맬웨어는 이미지, 비디오, 워드 또는 PowerPoint 문서와 같은 문서에 삽입되어 피싱 이메일에 패키징될 수 있습니다.

DoS 공격은 서버 또는 컴퓨터 시스템의 가용성을 제한하거나 영향을 미치는 공격입니다. 해커는 트래픽이나 핑 패킷으로 서버를 플러딩하여 사용자가 장기간 서버에 액세스할 수 없도록 합니다.

DDoS(Distributed Denial of Service) 공격은 여러 시스템을 사용하여 대상을 사용할 수 없게 만든 트래픽으로 넘쳐나는 일종의 DoS입니다.

Structured Query Language의 약자인 SQL은 데이터베이스와 통신하는 데 사용되는 언어입니다. 이를 통해 사용자는 데이터베이스에서 레코드를 생성, 삭제 및 업데이트할 수 있습니다. 많은 서버가 데이터베이스와 상호 작용하기 위해 SQL을 사용하는 관계형 데이터베이스에 데이터를 저장합니다.

SQL 주입 공격은 악성 SQL 코드를 주입하여 서버가 민감한 데이터베이스 정보를 누설하게 하는 알려진 SQL 취약점을 활용합니다. 데이터베이스가 신용 카드 번호, 주민등록번호 및 비밀번호와 같은 개인 식별 정보를 저장하는 경우 이는 엄청난 위험을 초래합니다.

일반적으로 MITM으로 약칭되는 메시지 가로채기 공격은 공격자가 두 당사자 간의 트래픽을 도청하거나 수정하기 위해 두 지점 간의 정보를 가로채는 것을 포함합니다. 목표는 피해자를 염탐하거나 데이터를 손상시키거나 민감한 정보를 훔치는 것입니다.

Linux 서버 보안을 위한 기본 팁

공격자가 시스템을 침해하는 데 사용할 수 있는 잠재적인 게이트웨이를 살펴보았으므로 시스템을 보호하기 위해 취할 수 있는 몇 가지 기본 조치를 살펴보겠습니다.

서버의 물리적 위치와 보안은 그다지 고려되지 않지만, 온프레미스 환경에 서버를 설치하려는 경우 일반적으로 여기에서 시작합니다.

백업 전원, 중복 인터넷 연결 및 충분한 냉각 기능을 갖춘 데이터 센터에서 서버를 안전하게 보호하는 것이 중요합니다. 데이터 센터에 대한 액세스는 승인된 직원으로만 제한되어야 합니다.

서버가 설정되면 수행할 첫 번째 단계는 다음과 같이 리포지토리 및 응용 프로그램 소프트웨어 패키지를 업데이트하는 것입니다. 패키지를 업데이트하면 기존 버전의 애플리케이션에 존재할 수 있는 모든 허점이 패치됩니다.

Ubuntu/Debian 배포의 경우:

$ sudo apt update -y
$ sudo apt upgrade -y

RHEL/CentOS 배포의 경우:

$ sudo yum upgrade -y

방화벽은 들어오고 나가는 트래픽을 필터링하는 응용 프로그램입니다. UFW 방화벽과 같은 강력한 방화벽을 설치하고 필요한 서비스와 해당 포트만 허용하도록 활성화해야 합니다.

예를 들어 다음 명령을 사용하여 Ubuntu에 설치할 수 있습니다.

$ sudo apt install ufw

설치가 완료되면 다음과 같이 활성화합니다.

$ sudo ufw enable

HTTPS와 같은 서비스를 허용하려면 다음 명령을 실행하십시오.

$ sudo ufw allow https

또는 해당 포트인 443을 허용할 수 있습니다.

$ sudo ufw allow 443/tcp

그런 다음 변경 사항을 적용하려면 다시 로드하세요.

$ sudo ufw reload

허용된 서비스 및 열린 포트를 포함하여 방화벽 상태를 확인하려면 다음을 실행하십시오.

$ sudo ufw status

또한 방화벽에서 사용하지 않거나 불필요한 서비스 및 포트를 끄는 것이 좋습니다. 사용되지 않는 포트가 여러 개 있으면 공격 환경만 증가합니다.

기본 SSH 설정은 안전하지 않으므로 약간의 조정이 필요합니다. 다음 설정을 적용해야 합니다.

<울> \u003cli\u003e원격 로그인에서 루트 사용자를 비활성화합니다.\u003c/li\u003e\n\u003cli\u003eSSH 공개/개인 키를 사용하여 비밀번호 없는 SSH 인증을 활성화합니다.\u003c/li\u003e\n

첫 번째 지점의 경우 /etc/ssh/sshd_config 파일을 편집하고 다음 매개변수를 수정하여 표시된 대로 표시합니다.

PermitRootLogin no

루트 사용자가 원격으로 로그인하지 못하도록 비활성화했으면 일반 사용자를 만들고 sudo 권한을 할당합니다. 예를 들어.

$ sudo adduser user 
$ sudo usermod -aG sudo user 

암호 없는 인증을 활성화하려면 먼저 다른 Linux PC(가급적 PC)로 이동하여 SSH 키 쌍을 생성하십시오.

$ ssh-keygen

그런 다음 공개 키를 서버에 복사하십시오.

$ ssh-copy-id [email protected]

로그인한 후에는 /etc/ssh/sshd_config 파일을 편집하고 표시된 매개변수를 수정하여 비밀번호 인증을 비활성화해야 합니다.

PasswordAuthentication no

ssh 개인 키는 로그인하는 데 사용할 수 있는 유일한 방법이므로 분실하지 않도록 주의하십시오. 안전하게 보관하고 가급적이면 클라우드에 백업하십시오.

마지막으로 SSH를 다시 \u200b\u200b시작하여 변경 사항을 적용합니다.

$ sudo systemctl restart sshd

사이버 위협이 진화하는 세상에서 Linux 서버 설정을 시작할 때 보안이 최우선 순위가 되어야 합니다. 이 가이드에서는 서버를 강화하기 위해 취할 수 있는 몇 가지 기본 보안 조치를 강조했습니다. 다음 주제에서는 더 깊이 들어가 서버를 강화하기 위해 취할 수 있는 추가 단계를 살펴보겠습니다.