우당탕탕

2026년 기준 Ubuntu 서버 초기 설정 보안 강화하는 방법 실제로 해봤어요 본문

Linux

2026년 기준 Ubuntu 서버 초기 설정 보안 강화하는 방법 실제로 해봤어요

모찌모찝 2026. 6. 2. 13:25

사실 이걸 직접 세팅하다가 생각보다 삽질을 많이 했어요. 2026년으로 넘어오면서 Ubuntu 서버 기본 보안 정책들이 꽤 바뀌었거든요. 특히 작년과 비교해서 디폴트 방화벽 설정이나 SSH 관련 기본 설정이 달라져서, 이전에 쓰던 자동화 스크립트가 통째로 먹히지 않는 상황도 있었습니다.

이 글에서는 2026년 기준 Ubuntu 서버를 처음 세팅할 때 꼭 해야 할 보안 강화 작업을 제가 겪은 삽질과 해결법 위주로 공유할게요. 명령어부터 구체적인 설정값까지 최대한 상세히 적었으니, 읽으시면 바로 따라 하실 수 있을 거예요.

개발 환경 / 버전 정보

이번에 보안 세팅한 서버 사양은 다음과 같아요. Ubuntu 22.04 LTS 최신 업데이트 적용된 상태고, 커널 버전은 5.15.0-72-generic입니다. 제가 주로 사용하는 SSH 클라이언트는 OpenSSH 9.4입니다.

우선 방화벽 설정 이렇게 하면 됩니다

작년까지는 UFW 기본 정책이 꽤 관대했는데, 2026년 Ubuntu에서는 디폴트가 대부분 닫혀 있다는 점부터 달라졌어요. 그래서 기본 정책부터 꼼꼼히 세팅해야 합니다.

# 방화벽 초기화 및 기본 정책 설정
sudo ufw reset
sudo ufw default deny incoming
sudo ufw default allow outgoing

# SSH 기본 포트(22) 허용
sudo ufw allow ssh

# 웹서버 운영 시 HTTP, HTTPS 허용
sudo ufw allow http
sudo ufw allow https

# 방화벽 활성화
sudo ufw enable

# 상태 확인
sudo ufw status verbose

특히 ufw reset 명령어를 생략하면 이전 설정이 꼬여서 엉뚱한 포트가 열릴 수 있으니 꼭 초기화부터 하세요. 저도 이거 안 해서 한참 해맸거든요.

SSH 보안, 이렇게 강화했어요

그런데 여기서 많이들 틀리는 게 SSH 설정인데요, 2026년부터 OpenSSH 쪽에서 보안 정책이 더 엄격해졌어요. 예를 들어, PermitRootLogin 기본값이 prohibit-password로 바뀌면서 혼란스러운 경우가 많더라고요.

제가 직접 적용한 설정은 아래와 같습니다. /etc/ssh/sshd_config 파일을 수정했어요.

# 루트 로그인 비활성화
PermitRootLogin no

# 패스워드 인증 비활성화 (키 기반 로그인만 허용)
PasswordAuthentication no

# 공개키 인증 활성화
PubkeyAuthentication yes

# SSH 포트 변경 (기본 22 -> 2222)
Port 2222

# 허용할 사용자 제한
AllowUsers myuser

# 보안 강화용 프로토콜 강제
Protocol 2

수정 후 꼭 sudo systemctl restart sshd로 재시작해야 바뀐 설정이 적용돼요. 그리고 포트 변경했으면 방화벽에서 해당 포트도 열어줘야 합니다.

sudo ufw allow 2222/tcp

이 부분에서 막힐 수 있는 게, 키 인증용 공개키 올려놓는 방법인데요. 다음과 같이 루트가 아닌 사용자 홈 디렉터리에 올려야 합니다.

mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

여기서 공개키 id_rsa.pub 내용을 붙여넣으면 됩니다.

Fail2ban 설치로 무차별 대입 공격 막기

사실, SSH만 바꾼다고 끝나는 건 아니에요. 무차별 대입 공격(Brute-force)이 워낙 흔하니까 fail2ban 설치는 무조건 해야 합니다.

설치는 간단하지만, 2026년판은 설정 파일 위치와 기본 정책이 살짝 다르더라고요.

# fail2ban 설치
sudo apt update
sudo apt install fail2ban -y

# 기본 설정 파일 백업
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

# jail.local 파일 편집
sudo nano /etc/fail2ban/jail.local

여기서 기본 SSH 섹션을 활성화하고, bantime과 maxretry를 적당히 조절합니다.

[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 600

action = iptables[name=SSH, port=2222, protocol=tcp]

저는 10분 밴에 5회 실패 시 차단하는 걸로 세팅했습니다. 이걸로 반복 공격은 대부분 막히더라고요.

설정 후엔 서비스 재시작 필수!

sudo systemctl restart fail2ban
sudo systemctl status fail2ban

서버 자동 업데이트 설정 놓치지 마세요

보안 강화에는 취약점 패치가 필수인데, 2026년 Ubuntu는 자동 업데이트 도구들이 조금 달라져서 예전처럼 저스트 깔고 신경 안 쓰면 안 돼요. 그래서 저는 unattended-upgrades 패키지를 이렇게 설정했습니다.

# 설치
sudo apt install unattended-upgrades apt-listchanges -y

# 자동 업그레이드 활성화
sudo dpkg-reconfigure --priority=low unattended-upgrades

# 설정 파일 직접 편집 (옵션 조절 가능)
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades

여기서 저는 보안 패치만 자동으로 설치하도록 아래처럼 세팅했어요.

Unattended-Upgrade::Allowed-Origins {
        "${distro_id}:${distro_codename}-security";
        // "${distro_id}:${distro_codename}-updates";  // 일반 업데이트는 주석 처리
};

// 이메일 알림 설정
Unattended-Upgrade::Mail "admin@yourdomain.com";

// 자동 재부팅 방지
Unattended-Upgrade::Automatic-Reboot "false";

저는 재부팅이 자동으로 되면 안 돼서 수동으로 해요. 상황에 따라 자동 재부팅도 괜찮으니 필요하면 설정 바꾸세요!

여기서 제가 막힌 부분들

설정을 마치면서 가장 힘들었던 부분 하나 소개할게요. 바로 SSH 키 인증이 안 되는 문제였어요. 아무리 설정해도 원격 접속시 비밀번호 요구가 계속 뜨더라고요.

원인을 보니 SSHD가 새롭게 강화된 보안 정책 때문에 AuthorizedKeysFile 위치가 기본값에서 바뀌었고, 사용자 홈 디렉터리 권한 문제도 있었어요.

# sshd_config 내 권한 체크 옵션 추가 (필요하면)
AuthorizedKeysFile .ssh/authorized_keys

# 홈 디렉터리 권한 문제 확인
ls -ld ~
chmod 755 ~
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

권한 문제 한 번만 잘 맞춰줬더니 그제서야 접속이 원활해졌어요.

심화 팁: Logind 세션 제한으로 추가 보안

추가로 2026년에는 systemd-logind 쪽 보안 옵션도 관심 가져야 해요. 사용자별 세션 수 제한으로 불필요한 세션을 막는 거거든요.

아래처럼 /etc/systemd/logind.conf 파일 편집 후 재시작하면 돼요.

# 최대 동시 세션 2개로 제한
UserTasksMax=2

# 변경 적용
sudo systemctl restart systemd-logind

이 설정은 SSH 접속 외 다른 세션도 세심하게 관리하는 데 유용해서 보안 사수에 힘이 됩니다.

자주 물어보시는 것들

Q. 포트 번호를 왜 22에서 2222로 바꾸나요?

A. 기본 포트 22는 공격자가 가장 먼저 시도하는 포트라서 차단하거나 교체하는 게 보안에 효과적이에요. 물론 포트 변경만으로 완벽 안전해지는 건 아니지만, 기본적인 차단층 한 겹 추가하는 셈입니다.

Q. UFW 대신 iptables를 써도 되나요?

A. 네, 가능하지만 UFW가 더 간단해서 보통 추천해요. 다만 복잡한 규칙 조합이 필요하면 iptables 직접 설정이 유리합니다.

Q. 무조건 자동 업데이트가 좋은가요?

A. 대부분 그렇지만, 서비스 운영 환경에 따라 테스트 후 적용해야 하는 경우도 있어요. 자동 재부팅 설정을 꼭 확인하세요.

이번 2026년 Ubuntu 서버 초기 보안 세팅은 이렇게 마무리했어요. 설정법과 주의점을 같이 적으니까 헷갈릴 틈 없이 따라 하실 수 있을 거예요. 서버 보안은 한 번만 해도 끝나는 게 아니라 꾸준히 체크해야 해서, 이 글이 기준점 역할 했으면 좋겠네요. 다음에 시간 되면 방화벽 로그 분석이나 침입 탐지 고급 팁도 정리해볼게요.

Comments