디지털 환경에서 Linux VPS(VPS)를 안전하게 관리하는 것은
데이터와 인프라를 보호하는 데 핵심입니다. 이
가이드는 Linux VPS를 보호하는 다양한 방법을 다룹니다.
cyber threats.
시스템을 최신 상태로 유지하기
Updated
Linux VPS 보안에서 가장 중요한 부분 중 하나는
시스템을 항상 최신 상태로 유지하는 것입니다. 오래된 소프트웨어에는
악의적인 공격자가 악용할 수 있는 취약점이 존재할 수 있습니다. 방법은 다음과 같습니다.
do it:
패키지 관리자 사용
대부분의 Linux 배포판은 패키지 관리자를 제공합니다. 예를 들어
Debian 기반 시스템을 사용 중이라면 다음 명령어로
패키지를 업데이트하고 업그레이드할 수 있습니다.
sudo apt update
sudo apt upgrade
CentOS 시스템을 사용 중이라면 yum을 사용하세요.
sudo yum update
Set Up Automatic
Updates
Debian 기반 시스템에서 unattended-upgrades로 자동 업데이트 설정하기
Debian 기반 시스템:
Ubuntu와 같은 Debian 기반 시스템에서는
unattended-upgrades 패키지를 사용해 업데이트 과정을 자동화할 수 있습니다.
- unattended-upgrades 설치:
sudo apt install unattended-upgrades
- 자동 업데이트 설정을 구성하세요. 구성을 편집하려면
file:
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
- 보안 관련 패키지의 자동 업데이트를 활성화합니다:
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
"${distro_id}:${distro_codename}-updates";
"${distro_id}:${distro_codename}-proposed";
"${distro_id}:${distro_codename}-backports";
};
- 자동 업그레이드 서비스를 활성화하고 시작합니다:
sudo dpkg-reconfigure -plow unattended-upgrades
이 명령을 실행하면 변경 사항을 확인하는 메시지가 표시됩니다. "예"를 선택하여
자동 업데이트를 활성화하세요.
yum-cron으로 자동 업데이트 설정하기
CentOS:
CentOS에서는 yum-cron을 사용해 자동 업데이트를 설정할 수 있습니다:
- yum-cron 설치:
sudo yum install yum-cron
- yum-cron 서비스를 시작하고 활성화합니다:
sudo systemctl enable yum-cron
sudo systemctl start yum-cron
사용법
안전한 인증을 위한 강력한 비밀번호와 SSH 키
Linux VPS를 보호하려면 강력한 인증 방법을 사용해야 합니다.
Linux 또는 Windows 클라이언트로 접속하는 경우, 다음 방법을 따르세요.
강력한 비밀번호와 SSH 키를 효과적으로 사용하는 방법:
Using Strong
Passwords
VPS에서 사용자 계정을 생성할 때 비밀번호가 다음 조건을 충족하는지 확인하세요:
대문자와 소문자, 숫자, 특수문자를 조합한 복잡한
자. 쉽게 추측할 수 있는 비밀번호는 사용하지 마세요.
SSH 키 사용 중
Authentication
Linux 고객님께:
- Linux 클라이언트에서 SSH 키 쌍을 생성하려면 ssh-keygen을 사용하세요
command:
ssh-keygen -t rsa -b 2048
공개 키는 기본적으로 ~/.ssh/id_rsa.pub 에 저장됩니다.
- 공개 키를 VPS에 복사하세요:
ssh-copy-id user@your_server_ip
- SSH 서버의 VPS에서 SSH 비밀번호 기반 로그인 비활성화
구성 파일(/etc/ssh/sshd_config):
PasswordAuthentication no
Windows 고객님께:
- Windows에서는 PowerShell을 사용해 동일한 기능을 수행할 수 있습니다.
ssh-keygen
- PowerShell을 사용해 공개 키를 VPS에 복사합니다. 다음을 교체하세요.
IP-ADDRESS-OR-FQDN 원격 서버의
address:
type $env:USERPROFILE\.ssh\id_rsa.pub | ssh root@{IP-ADDRESS-OR-FQDN} "cat >> .ssh/authorized_keys"
- SSH 서버의 VPS에서 SSH 비밀번호 기반 로그인 비활성화
구성 파일(/etc/ssh/sshd_config):
PasswordAuthentication no
Implement a Firewall
Linux VPS 보안을 강화하려면 방화벽을 설정해 들어오고 나가는 트래픽을 제어해야 합니다.
방화벽을 구현하는 방법은 다음과 같습니다.
enhance security:
Debian/Ubuntu에서는 ufw(Uncomplicated Firewall)를 사용하거나
firewalld on CentOS:
- 방화벽 관리 도구가 설치되어 있지 않다면 먼저 설치합니다.
Debian/Ubuntu에서 ufw 사용 시:
sudo apt install ufw
CentOS에서 firewalld 사용 시:
sudo yum install firewalld
- 방화벽을 활성화하기 전에 SSH 접속을 허용하는 규칙을 먼저 추가하세요. 그렇지 않으면 접속이 차단될 수 있습니다.
locked out:
Debian/Ubuntu에서 ufw 사용 시:
sudo ufw allow OpenSSH
CentOS에서 firewalld 사용 시:
sudo firewall-cmd --permanent --add-service=ssh
- 방화벽을 활성화하고 기본 규칙을 설정합니다.
Debian/Ubuntu에서 ufw 사용 시:
sudo ufw enable
sudo ufw default deny incoming
sudo ufw default allow outgoing
CentOS에서 firewalld 사용 시:
sudo systemctl start firewalld
sudo systemctl enable firewalld
- 변경 사항을 적용하려면 방화벽을 다시 로드합니다.
Debian/Ubuntu에서 ufw 사용 시:
sudo ufw reload
CentOS에서 firewalld 사용 시:
sudo systemctl reload firewalld
루트 로그인 비활성화
Linux VPS 보안을 강화하려면 root 접근을 제한해야 합니다. 보안을 높이기 위해
root 로그인을 비활성화하는 방법은 다음과 같습니다.
- 새 사용자 생성: root 사용자로 VPS에 로그인한 후, sudo 권한이 있는 새 사용자 계정을 만듭니다. newuser 부분을 원하는
사용자 이름으로 교체하세요.
desired username:
adduser newuser
usermod -aG sudo newuser
- .ssh 디렉터리와 authorized_keys 파일을 생성하고, 새 사용자에 대한
권한을 설정합니다.
mkdir -p /home/newuser/.ssh
touch /home/newuser/.ssh/authorized_keys
chmod 600 /home/newuser/.ssh/authorized_keys
chown -R newuser:newuser /home/newuser/.ssh
-
공개 키를 생성한 후 반드시
VPS. -
새 사용자로 로그인합니다.
-
VPS에서 연결을 끊고(root로 접속 중인 경우) 새 사용자 계정으로
다시 로그인합니다. 이렇게 하면 sudo를 통해
관리 작업을 수행할 수 있습니다. -
SSH 설정 편집:
VPS에서 SSH 서버 설정 파일을 엽니다. 이 파일은
보통 /etc/ssh/sshd_config 경로에 있습니다:
sudo nano /etc/ssh/sshd_config
PermitRootLogin 항목을 찾아 값을 no로 변경합니다:
PermitRootLogin no
파일을 저장하고 텍스트 편집기를 종료합니다.
- SSH 서비스 재시작:
이 변경 사항을 적용하려면 SSH 서비스를 재시작해야 합니다.
새 설정을 적용하려면 다음 명령어를 실행하세요:
On Debian/Ubuntu:
sudo systemctl restart ssh
On CentOS:
sudo systemctl restart sshd
Harden SSH
설정
Linux VPS 보안을 강화하려면 SSH 설정을 추가로 구성하고
UFW 규칙을 최신 상태로 유지해야 합니다. 아래에서 SSH 설정 강화와 UFW
업데이트 방법을 안내합니다.
rules:
- UFW에서 새 SSH 포트 허용:
UFW(Uncomplicated Firewall)를 사용 중이라면, 기본 포트를 변경하기 전에 먼저 새 SSH
포트를 허용해야 합니다:
# Allow the new SSH port (e.g., 2222)
sudo ufw allow 2222/tcp
- UFW 규칙에서 OpenSSH 제거:
SSH 포트를 변경한 후에는 기존 OpenSSH
서비스(기본 포트 22)를 UFW 규칙에서 제거하여 새
SSH 포트만 허용되도록 해야 합니다:
# Remove the old OpenSSH service (default port 22)
sudo ufw delete allow OpenSSH
- SSH 포트 변경:
기본적으로 SSH는 포트 22를 사용합니다. 기본 포트를 변경하면 자동화된 봇이
서버를 찾기 어렵게 만들어
SSH 서버에 보안 계층을 하나 더 추가할 수 있습니다.
SSH 서버 설정 파일 열기:
sudo nano /etc/ssh/sshd_config
Port 22 항목을 찾아 포트 번호를 사용하지 않는 다른 포트(예: 2222)로
변경합니다:
Port 2222
- 키 재인증 활성화:
키 재인증에 시간 제한을 설정하면 보안을 추가로 강화할 수 있습니다.
귀하의 SSH 세션. 즉, SSH 세션에서 나가면
방치하면 일정 시간이 지난 후 자동으로 만료됩니다.
SSH 서버 설정에서 다음 항목을 추가하거나 수정하세요.
파일에 저장하세요:
ClientAliveInterval 300
ClientAliveCountMax 2
- UFW 규칙 및 SSH 서비스 재로드:
sudo ufw reload
sudo systemctl restart ssh
- 필요한 변경을 완료한 후, 새로운 SSH를 설정할 수 있습니다.
다음 명령어로 연결하세요:
ssh -p <new_port> user@your_server_ip
Implement Fail2Ban
Linux VPS를 보호하려면 무차별 대입 로그인 공격을 차단해야 합니다
시도 및 기타 악성 활동으로부터 서버를 보호합니다. Fail2Ban은 유용한
이 목적에 적합한 도구입니다. Fail2Ban 설정 방법은 다음과 같습니다:
- Install Fail2Ban:
패키지 목록을 업데이트하여 최신 상태로 만드는 것부터 시작하세요
available packages:
Debian 기반 시스템(예: Ubuntu)의 경우:
sudo apt update
For CentOS:
sudo yum update
Install Fail2Ban:
Debian 기반 시스템의 경우:
sudo apt install fail2ban
For CentOS:
sudo yum install fail2ban
- Configure Fail2Ban:
Fail2Ban의 기본 설정 파일 경로는 다음과 같습니다.
/etc/fail2ban/jail.conf. 재정의를 생성할 수 있습니다
file at /etc/fail2ban/jail.local to customize settings
기본 설정을 변경하지 않고도 사용할 수 있습니다. 다음 파일을 여세요:
sudo nano /etc/fail2ban/jail.local
다음 설정을 추가하여 IP 주소를 10분간 차단하세요
(600초) 6번의 로그인 실패 후 적용됩니다. 다음 매개변수를 조정하세요:
needed:
[sshd]
enabled = true
maxretry = 6
findtime = 600
bantime = 600
파일을 저장하고 텍스트 편집기를 종료합니다.
- Fail2Ban 시작 및 활성화:
Fail2Ban을 시작하고 부팅 시 자동으로 실행되도록 설정하세요:
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
- Check Fail2Ban Status:
Fail2Ban이 정상적으로 작동 중인지 상태를 확인할 수 있습니다
expected:
sudo fail2ban-client status
SSH 서비스가 모니터링되고 있는지 확인하세요.
여기서 다루는 6가지 핵심 방법은 강력한 방어 체계를 구축합니다
잠재적인 보안 취약점으로부터 시스템을 보호합니다. 시스템을 최신 상태로 유지하면,
강력한 인증 적용, 방화벽 설정, SSH 강화,
그리고 Fail2Ban 구현을 통해 VPS를 보호하고
항상 연결된 환경에서도 안심할 수 있습니다. 궁금한 점이 있으시면
주저하지 말고 지원팀에 문의하세요. submitting a
ticket.
Also in Security