LFCA – 데이터 및 Linux 보안을 위한 유용한 팁 – 18부


90년대 초반에 출시된 이후로 Linux는 안정성, 다양성, 사용자 정의 가능성, 그리고 버그 수정 및 개선 사항을 제공하기 위해 24시간 일하는 대규모 오픈 소스 개발자 커뮤니티 덕분에 기술 커뮤니티의 찬사를 받았습니다. 운영 체제. 전반적으로 Linux는 공용 클라우드, 서버 및 슈퍼컴퓨터용으로 선택되는 운영 체제이며 인터넷 연결 프로덕션 서버의 약 75%가 Linux에서 실행됩니다.

인터넷을 강화하는 것 외에도 Linux는 디지털 세계로 가는 길을 찾았고 그 이후로 줄어들지 않았습니다. Android 스마트폰, 태블릿, 스마트워치, 스마트 디스플레이 등을 포함한 광범위한 스마트 가제트에 전원을 공급합니다.

리눅스가 그렇게 안전한가요?

Linux는 최고 수준의 보안으로 유명하며 엔터프라이즈 환경에서 선호하는 선택 중 하나입니다. 하지만 100% 안전한 운영 체제는 없다는 사실이 있습니다. 많은 사용자는 Linux가 완벽한 운영 체제라고 생각하며 이는 잘못된 가정입니다. 실제로 인터넷에 연결된 모든 운영 체제는 잠재적인 침해 및 맬웨어 공격에 취약합니다.

초기에 Linux는 기술 중심 인구 통계가 훨씬 작았고 맬웨어 공격으로 고통받을 위험이 거의 없었습니다. 오늘날 Linux는 인터넷의 거대한 덩어리를 강화하고 있으며 이는 위협 환경의 성장을 촉진했습니다. 맬웨어 공격의 위협은 그 어느 때보다 현실적입니다.

Linux 시스템에 대한 맬웨어 공격의 완벽한 예는 한국 웹 호스팅 회사인 NAYANA의 153개에 가까운 Linux 서버에 영향을 미친 파일 암호화 맬웨어인 Erebus 랜섬웨어입니다.

이러한 이유로 운영 체제를 더욱 강화하여 데이터를 보호하기 위해 원하는 보안을 제공하는 것이 현명합니다.

Linux 서버 강화 팁

Linux 서버를 보호하는 것은 생각만큼 복잡하지 않습니다. 시스템 보안을 강화하고 데이터 무결성을 유지하기 위해 구현해야 하는 최상의 보안 정책 목록을 작성했습니다.

Equifax 침해의 초기 단계에서 해커는 Equifax의 고객 불만 사항 웹 포털에서 널리 알려진 취약점인 Apache Struts를 활용했습니다.

Apache Struts는 Apache Foundation에서 개발한 현대적이고 우아한 Java 웹 애플리케이션을 만들기 위한 오픈 소스 프레임워크입니다. 재단은 2017년 3월 7일 취약점을 수정하기 위한 패치를 발표하고 이에 대한 성명을 발표했습니다.

Equifax는 취약점에 대해 통지를 받고 애플리케이션에 패치를 권고했지만 슬프게도 취약점은 너무 늦은 같은 해 7월까지 패치되지 않은 상태로 남아 있었습니다. 공격자는 회사 네트워크에 액세스하여 데이터베이스에서 수백만 개의 기밀 고객 기록을 추출할 수 있었습니다. Equifax가 무슨 일이 일어나고 있는지 알게 되었을 때는 이미 두 달이 지났습니다.

자, 우리는 이것으로부터 무엇을 배울 수 있습니까?

악의적인 사용자나 해커는 항상 서버에서 가능한 소프트웨어 취약점을 조사하여 시스템을 침해할 수 있습니다. 안전을 위해 항상 소프트웨어를 최신 버전으로 업데이트하여 기존 취약점에 패치를 적용하십시오.

Ubuntu 또는 Debian 기반 시스템을 실행하는 경우 첫 번째 단계는 일반적으로 표시된 대로 패키지 목록 또는 리포지토리를 업데이트하는 것입니다.

$ sudo apt update

사용 가능한 업데이트가 있는 모든 패키지를 확인하려면 다음 명령을 실행합니다.

$ sudo apt list --upgradable

다음과 같이 소프트웨어 응용 프로그램을 현재 버전으로 업그레이드합니다.

$ sudo apt upgrade

그림과 같이 이 두 가지를 하나의 명령으로 연결할 수 있습니다.

$ sudo apt update && sudo apt upgrade

RHEL 및 CentOS의 경우 다음 명령을 실행하여 애플리케이션을 업그레이드합니다.

$ sudo dnf update ( CentOS 8 / RHEL 8 )
$ sudo yum update ( Earlier versions of RHEL & CentOS )

또 다른 실행 가능한 옵션은 CentOS/RHEL에 대한 자동 업데이트를 설정하는 것입니다.

수많은 원격 프로토콜에 대한 지원에도 불구하고 rlogin, telnet, TFTP 및 FTP와 같은 레거시 서비스는 시스템에 큰 보안 문제를 제기할 수 있습니다. 이들은 데이터가 일반 텍스트로 전송되는 오래되고 구식이며 안전하지 않은 프로토콜입니다. 이러한 항목이 있는 경우 그림과 같이 제거하는 것이 좋습니다.

Ubuntu/Debian 기반 시스템의 경우 다음을 실행합니다.

$ sudo apt purge telnetd tftpd tftpd-hpa xinetd rsh-server rsh-redone-server

RHEL/CentOS 기반 시스템의 경우 다음을 실행합니다.

$ sudo yum erase xinetd tftp-server telnet-server rsh-server ypserv

안전하지 않은 서비스를 모두 제거했으면 서버에서 열린 포트를 검색하고 해커가 진입점으로 사용할 수 있는 사용하지 않는 포트를 모두 닫는 것이 중요합니다.

UFW 방화벽에서 포트 7070을 차단하려고 한다고 가정합니다. 이에 대한 명령은 다음과 같습니다.

$ sudo ufw deny 7070/tcp

그런 다음 변경 사항을 적용하려면 방화벽을 다시 로드하십시오.

$ sudo ufw reload

방화벽의 경우 다음 명령을 실행합니다.

$ sudo firewall-cmd --remove-port=7070/tcp  --permanent

그리고 방화벽을 다시 로드하는 것을 잊지 마십시오.

$ sudo firewall-cmd --reload

그런 다음 다음과 같이 방화벽 규칙을 교차 확인합니다.

$ sudo firewall-cmd --list-all

SSH 프로토콜은 네트워크의 장치에 안전하게 연결할 수 있는 원격 프로토콜입니다. 안전한 것으로 간주되지만 기본 설정으로는 충분하지 않으며 악의적인 사용자가 시스템을 침해하지 못하도록 추가 조정이 필요합니다.

SSH 프로토콜을 강화하는 방법에 대한 포괄적인 가이드가 있습니다. 주요 하이라이트는 다음과 같습니다.

<울> \u003cli\u003e비밀번호가 없는 SSH 로그인을 구성하고 개인/공개 키 인증을 활성화합니다.\u003c/li\u003e\n\u003cli\u003eSSH 원격 루트 로그인을 비활성화합니다.\u003c/li\u003e\n\u003cli\u003e비밀번호가 비어 있는 사용자의 SSH 로그인을 비활성화합니다.\u003c/li\u003e\n\u003cli\u003e비밀번호 인증을 완전히 비활성화하고 SSH 개인/공개 키 인증을 고수합니다.\u003c/li\u003e\n\u003cli\u003e특정 SSH 사용자에 대한 액세스를 제한합니다.\u003c/li\u003e\n\u003cli\u003e비밀번호 시도 제한을 구성합니다.\u003c/li\u003e\n

Fail2ban은 무차별 대입 공격으로부터 서버를 보호하는 오픈 소스 침입 방지 시스템입니다. 너무 많은 로그인 시도와 같은 악의적인 활동을 나타내는 IP를 금지하여 Linux 시스템을 보호합니다. 기본적으로 Apache 웹 서버, vsftpd 및 SSH와 같은 인기 서비스용 필터와 함께 제공됩니다.

SSH 프로토콜을 더욱 강화하기 위해 Fail2ban을 구성하는 방법에 대한 가이드가 있습니다.

암호를 재사용하거나 약하고 단순한 암호를 사용하면 시스템 보안이 크게 손상됩니다. 암호 정책을 시행하고 pam_cracklib를 사용하여 암호 강도 요구 사항을 설정하거나 구성합니다.

PAM 모듈을 사용하여 /etc/pam.d/system-auth 파일을 편집하여 암호 강도를 정의할 수 있습니다. 예를 들어 암호 복잡성을 설정하고 암호 재사용을 방지할 수 있습니다.

웹 사이트를 운영하는 경우 사용자의 브라우저와 웹 서버 간에 교환되는 데이터를 암호화하는 SSL/TLS 인증서를 사용하여 도메인을 항상 보호해야 합니다.

사이트를 암호화한 후에는 약한 암호화 프로토콜도 비활성화하는 것이 좋습니다. 이 가이드를 작성하는 시점에서 최신 프로토콜은 TLS 1.3으로 가장 일반적이고 널리 사용되는 프로토콜입니다. TLS 1.0, TLS 1.2, SSLv1~SSLv3과 같은 이전 버전은 알려진 취약점과 관련되어 있습니다.

[ 당신은 또한 좋아할 수도 있습니다 : Apache 및 Nginx에서 TLS 1.3을 활성화하는 방법 ]

이것은 Linux 시스템의 데이터 보안 및 개인 정보 보호를 보장하기 위해 취할 수 있는 몇 가지 단계에 대한 요약이었습니다.