−25%

Windows 연간 결제, 10월 31일까지. 요금제 보기

EQVPS
시작하기

Rocky Linux VPS 설정 방법: root를 받은 뒤 처음 할 일

새 Rocky Linux 9 VPS에서의 첫 10분: dnf로 업데이트, SSH 키를 등록한 sudo 사용자 만들기, root 로그인과 비밀번호 로그인 끄기, firewalld와 보안 업데이트 자동화. 모든 명령을 저희 이미지에서 직접 실행해 확인했습니다.

Rocky Linux 9는 RHEL과 호환되는 무료 선택지입니다. 같은 패키지, 같은 dnf, 같은 firewalld와 SELinux를 씁니다. Debian이나 Ubuntu를 설정해 본 적이 있다면 단계 순서는 같고 도구만 다릅니다. 새 Rocky 9 서버에서의 첫 10분을 정리했습니다.

아래 명령은 모두 게시 전에 저희 Rocky Linux 9 이미지에서 실행해 보았습니다. 깨끗한 서버라면 전체 과정이 몇 분이면 끝납니다.

1. 시스템 업데이트

대시보드의 비밀번호로 root 로그인한 뒤 업데이트합니다.

dnf -y upgrade

저희 이미지에서는 이미 최신 상태여서 테스트할 때 몇 초 만에 끝났습니다.

2. sudo 사용자 만들고 SSH 키 추가

Rocky에서는 관리자 그룹이 sudo가 아니라 wheel입니다.

useradd -m -G wheel deploy
passwd deploy                      # sudo will ask for this password

공개 키를 서버에 올립니다(키 만드는 방법). /root/key.pub로 복사해 두었다면:

install -d -m 700 -o deploy -g deploy /home/deploy/.ssh
install -m 600 -o deploy -g deploy /root/key.pub /home/deploy/.ssh/authorized_keys
restorecon -R /home/deploy/.ssh

restorecon은 sshd가 기대하는 SELinux 레이블을 붙입니다. 레이블이 틀리면 뚜렷한 오류 없이 키 로그인이 실패합니다.

두 번째 터미널을 열어 ssh deploy@YOUR.SERVER.IP가 되는지, sudo -v가 비밀번호를 받는지 확인하세요. 그 전까지 root 세션은 열어 두세요.

3. root 로그인과 비밀번호 로그인 끄기

여기서 Rocky는 교과서식 sshd_config 수정과 다릅니다. 설정은 /etc/ssh/sshd_config.d/ 아래 개별 파일에 있고, sshd는 처음 찾은 값을 씁니다. 저희 이미지에서는 첫 파일이 00-eqvps.conf이며, 첫날 접속할 수 있도록 root와 비밀번호를 허용합니다. 그 파일을 바꿉니다.

sed -i -e 's/^PermitRootLogin .*/PermitRootLogin no/' \
       -e 's/^PasswordAuthentication .*/PasswordAuthentication no/' \
       /etc/ssh/sshd_config.d/00-eqvps.conf
sshd -t && systemctl reload sshd
sshd -T | grep -E '^(permitrootlogin|passwordauthentication) '

마지막 명령은 sshd가 실제로 적용하는 값을 보여 줍니다. 다음과 같이 나와야 합니다.

permitrootlogin no
passwordauthentication no

이제 ssh root@…는 키가 있어도 거부되고, deploy는 키로만 로그인합니다.

4. 방화벽: firewalld

클라우드 이미지에는 firewalld가 없습니다. 설치하고 시작한 뒤 필요한 것만 열어 둡니다.

dnf -y install firewalld
systemctl enable --now firewalld
firewall-cmd --permanent --add-service=ssh
firewall-cmd --permanent --remove-service=cockpit
firewall-cmd --reload
firewall-cmd --list-services

기본 영역은 cockpit(포트 9090)과 dhcpv6-client를 엽니다. Cockpit은 설치되어 있지 않지만 그 포트를 열어 둘 이유는 없습니다. 앱을 추가할 때는 같은 방식으로 포트를 엽니다. 예: firewall-cmd --permanent --add-service=https.

5. 보안 업데이트 자동화

dnf-automatic은 타이머에 맞춰 업데이트를 내려받습니다. 기본값은 설치하지 않으므로 설치를 켭니다.

dnf -y install dnf-automatic
sed -i 's/^apply_updates = .*/apply_updates = yes/' /etc/dnf/automatic.conf
systemctl enable --now dnf-automatic.timer
systemctl list-timers dnf-automatic.timer

보안 패치만 원한다면 같은 파일에서 upgrade_type = security도 설정하세요.

6. SELinux는 켜 둔 채로

새 서버에서 getenforce는 Enforcing을 출력하고, 위의 모든 과정은 그 상태에서 동작합니다. 앱이 표준이 아닌 포트나 디렉터리가 필요하면 해결책은 레이블(semanage port, restorecon)이지 setenforce 0이 아닙니다.

어떤 플랜을 고를까

Rocky 9는 유휴 상태에서 RAM을 약 400 MB 씁니다. Nano 플랜(1 GB, 월 $3)은 작은 서비스 하나에 충분하고, Micro(2 GB, 월 $5)는 데이터베이스를 둘 여유가 있습니다. NAT 플랜에서는 SSH가 대시보드에 표시된 개인 포트로 들어옵니다. 포트 80/443을 모두에게 열어야 한다면 Micro-IP(월 $10)처럼 전용 IPv4가 있는 플랜을 고르세요.

Rocky Linux 9는 RHEL 계열 OS 페이지에 있는 이미지 중 하나로, VPS의 모든 플랜에서 선택할 수 있습니다. 결제는 Base, Ethereum, Polygon 네트워크의 USDT, USDC, ETH로 하며 신분증도 카드도 필요 없습니다. 스크립트로 서버를 다루고 싶다면 API 문서에 주문, 재설치, 연장 방법이 있습니다.

자주 묻는 질문

Rocky Linux는 RHEL과 같은가요?

같은 소스 코드로 빌드되며 Red Hat Enterprise Linux 9와의 완전한 호환을 목표로 합니다. 그래서 RHEL의 가이드, 패키지, 사용 방식(dnf, firewalld, SELinux)이 그대로 통합니다. Red Hat 구독은 필요 없습니다.

Rocky에서 SSH 설정을 바꿨는데 왜 적용되지 않나요?

Rocky는 /etc/ssh/sshd_config.d/ 안의 파일을 이름 순서로 읽고, 각 설정은 처음 찾은 값이 적용됩니다. 저희 이미지에서는 첫 파일이 00-eqvps.conf이므로 그 파일에서 설정을 바꾸고, 세션을 닫기 전에 sshd -T로 결과를 확인하세요.

SELinux를 꺼야 하나요?

아니요. 새로 설치하면 Enforcing 모드이고, 여기 나온 모든 단계는 그 상태에서 동작합니다. SSH나 웹 서버용 파일을 특이한 위치에 만들었다면 그 경로에 restorecon -R을 실행하면 레이블이 바로잡힙니다. 레이블 문제 때문에 SELinux를 끄면 실제 보호 계층 하나를 버리는 셈입니다.

SSH 포트를 바꿔도 되나요?

전용 IPv4가 있는 플랜이라면 가능합니다. 단, 새 포트를 firewalld와 SELinux 모두에서 허용해야 합니다. NAT 플랜에서는 sshd를 22번에 두세요. 개인 외부 포트가 이미 서버 안의 22번으로 포워딩되어 있어서 sshd를 옮기면 그 포워딩이 깨집니다.

Rocky Linux에는 어떤 플랜이면 충분한가요?

Rocky 9는 유휴 상태에서 RAM을 약 400 MB 사용하므로, 작은 서비스라면 1 GB Nano로 충분합니다. 데이터베이스나 컨테이너를 쓴다면 2 GB Micro가 더 여유롭습니다.

댓글

아직 댓글이 없습니다. 첫 번째가 되세요.

댓글 남기기

댓글은 표시되기 전에 검토됩니다.