우당탕탕

Ubuntu 서버 초기 설정으로 보안 강화하는 방법, 직접 해봤어요 본문

Linux

Ubuntu 서버 초기 설정으로 보안 강화하는 방법, 직접 해봤어요

모찌모찝 2026. 8. 8. 11:36

Ubuntu 서버를 새로 세팅할 때 기본 보안 설정만으로는 불안해서 직접 보안 강화 작업을 해봤어요. 막상 하다 보니 어디서부터 어떻게 해야 할지 막히는 부분이 많았고, 여러 명령어와 설정을 조합하면서 시행착오도 겪었죠. 이번 글은 제가 실제로 겪은 삽질과 해결법을 중심으로, 가장 많이 검색하는 질문들에 답하는 형식으로 구성했어요.

이 글을 통해 Ubuntu 서버 처음 세팅하면서 반드시 해야 할 보안 강화 작업과, 자주 하는 실수, 그리고 각 작업의 구체적인 명령어까지 한번에 정리해드릴게요. 궁금했던 사항이 있으시면 아래 FAQ에서 바로 찾아보셔도 좋아요.

Ubuntu 서버 첫 세팅 시 꼭 챙겨야 할 보안 작업

서버를 켜고 나면 가장 먼저 해야 할 건 불필요한 서비스 끄기, 패키지 업데이트, 방화벽 설정, 보안 강화용 도구 설치 등인데요. 그래야 외부 공격에 취약하지 않고 안정적으로 운영할 수 있거든요.

  • 1. 패키지 업데이트 : 기본으로 깔려 있는 서버 패키지들이 최신 보안 패치가 반영된 상태인지 확인하고 업데이트합니다.
  • 2. SSH 설정 변경 : root 직접 로그인 차단, 루트 대신 일반 사용자로 접속 후 sudo 권한 사용.
  • 3. UFW (방화벽) 설정 : 필요한 포트만 열고 나머지는 차단합니다.
  • 4. Fail2ban 설치 : SSH brute force 공격을 막기 위해 로그인 시도 감시 설정.
  • 5. 불필요한 서비스 비활성화 : 자동으로 켜지는 서비스 중 필요 없는 걸 꺼서 공격 표면 줄이기.
Ubuntu 서버 초기 설정 보안 강화 방법 관련 이미지

Ubuntu 서버 초기 설정 보안 강화 방법 관련 정보

자주 묻는 질문과 답변

Q1. Ubuntu 서버에서 패키지 어떻게 업데이트하나요?

패키지 업데이트는 첫 작업 중 하나인데요. 아래 명령어를 순서대로 실행하면 됩니다.

sudo apt update
sudo apt upgrade -y

apt update는 패키지 목록을 새로 받아오는 것이고 upgrade는 실제로 설치된 패키지를 최신 버전으로 바꾸는 작업입니다. 근데 종종 자동 업데이트가 되지 않는 경우도 있으니 반드시 직접 해주세요.

Q2. SSH root 접속 차단하려면 어떻게 해야 하나요?

root 계정으로 바로 로그인하는 건 보안상 위험해서 꼭 비활성화하는 게 좋습니다. 설정 파일을 열어 아래 내용을 수정하세요.

sudo nano /etc/ssh/sshd_config

# PermitRootLogin yes 를 찾아 아래처럼 변경
PermitRootLogin no

# 변경 후 ssh 서비스 재시작
sudo systemctl restart sshd

이렇게 하면 root 계정으로 직접 SSH 로그인 시도를 막을 수 있어요.

Q3. 새로운 사용자 만들고 sudo 권한 주는 법 알려주세요.

root를 못 쓰니까 일반 계정을 만드시고 sudo 권한을 부여하는 게 일반적입니다. 예를 들어 deploy란 사용자를 만들고 싶을 때, 아래처럼 하시면 돼요.

sudo adduser deploy
sudo usermod -aG sudo deploy

첫 명령어는 계정 생성, 두 번째는 해당 계정을 sudo 그룹에 추가하는 것인데요. 이렇게 하면 deploy 계정으로 로그인해서 sudo 명령을 쓸 수 있습니다.

Q4. UFW 방화벽 기본 설정은 어떻게 하나요?

UFW는 Ubuntu 기본 방화벽으로, 필요 포트만 열어서 쓰는 게 가장 중요해요. 기본 설정 방법은 다음과 같습니다.

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw enable

이렇게 하면 들어오는 연결은 모두 차단하되, SSH 포트(기본 22번)만 허용합니다. 혹시 웹서버를 운영한다면 sudo ufw allow 80, sudo ufw allow 443도 같이 등록하시면 되죠.

Q5. Fail2ban은 어떤 효과가 있나요? 설치는 어떻게 하나요?

Fail2ban은 SSH나 다른 서비스에 무차별 대입 공격(brute force attack)이 들어올 때 자동으로 IP를 차단해 줍니다. 덕분에 보안이 훨씬 강해져요. 설치는 간단한데요.

sudo apt install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

ready 상태가 되면 로그를 감시하며 자동으로 공격 IP를 차단하죠. 설정 파일은 /etc/fail2ban/jail.local에 만들어서 서비스별 정책을 수정할 수 있어요.

Q6. 불필요한 서비스는 어떻게 확인하고 중지하나요?

기본 설치된 서비스 중 쓸 일이 없는 게 있으면 공격 표면을 줄이기 위해 중지하는 게 좋아요. 확인 명령어는 아래와 같습니다.

systemctl list-unit-files --type=service | grep enabled

이렇게 하면 활성화된 서비스 목록이 나오는데, 잘 모르는 서비스가 있으면 구글에 검색해서 필요 없는지 판단하세요. 중지하려면 다음과 같이 합니다.

sudo systemctl stop 서비스명
sudo systemctl disable 서비스명

Q7. SSH 포트를 기본 22번에서 바꾸는 게 왜 중요한가요?

기본 포트인 22번은 로봇이나 해커가 가장 먼저 시도하는 공격 대상입니다. 포트를 바꾸면 이런 자동 공격을 피할 수 있어요. 설정은 /etc/ssh/sshd_config 파일에서 아래 항목을 수정하면 됩니다.

# Port 22
Port 2222

sudo systemctl restart sshd

이후 SSH 접속 시에는 ssh -p 2222 사용자명@서버IP처럼 포트를 지정해야 접속이 가능합니다.

Q8. 서버 보안, 이외에 추가로 하면 좋은 작업은?

사실 보안은 한층 더 깊게 들어가면 끝이 없죠. 다만 저처럼 초기에 챙겨야 할 몇 가지를 더 꼽자면, AppArmor 프로필 관리, 자동 보안 업데이트 설정, 그리고 로그 관리 강화가 있어요. 간단히 자동 보안 업데이트를 켜는 법은 아래와 같습니다.

sudo apt install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades

이후 자동으로 중요한 보안 패치가 설치되어 서버를 일정 수준 안전하게 유지해 줍니다.

Ubuntu 서버 초기 설정 보안 강화 방법 직접 정리한 자료

Ubuntu 서버 초기 설정 보안 강화 방법 관련 정보

저도 이 부분에서 막혔던 경험

가장 오래 걸린 건 SSH root 로그인 차단 후 새 계정 권한 문제였어요. sudo 권한이 제대로 안 줘서 결국 콘솔로 접속해 수동으로 권한 부여했던 기억이 납니다. 그리고 UFW 설정 후 포트를 잘못 닫아서 외부에서 접속 불가해진 적도 있었죠.

하지만 이렇게 하나씩 문제를 맞닥뜨리고 해결하다 보니 보안 관련 개념도 자연스럽게 익혀졌고, 지금은 새 서버 초기화할 때 거의 자동으로 이 작업들을 하게 됐어요.

Ubuntu 서버 보안은 한두 명령어만으로 끝나는 게 아니라 여러 설정이 조합되어 시너지가 납니다. 일단 오늘 알려드린 방법부터 차근차근 해보고, 익숙해지시면 더 세밀한 보안 정책도 도전해 보세요.

Comments