우당탕탕
Ubuntu 서버 처음 켤 때 보안 설정 제가 이렇게 삽질했어요 본문
처음에 Ubuntu 서버를 세팅할 때 정말 삽질을 많이 했어요. 보안 강화한다고 이것저것 설정하다가 오히려 접근이 안 되거나, 실수로 중요한 파일 권한을 망가뜨리고, SSH 접속 자체가 불가능해져서 서버 초기 세팅을 몇 번이나 다시 했거든요. 이 글에서는 제가 직접 겪었던 실패와 해결법, 그리고 실제로 사용하는 명령어와 설정값을 최대한 자세하게 적었어요.
Ubuntu 서버를 처음 받았을 때 기본 상태가 너무 허술해서 보안부터 제대로 안 하면 누군가 쉽게 침입할 수 있거든요. 특히 SSH 보안 강화, 방화벽 설정, 불필요한 서비스 끄기, 사용자 권한 관리 같은 기초 작업 말이에요. 그런데 여기서 간과하면 나중에 감쪽같이 공격당하기 쉬워서 저는 꼭 처음부터 꼼꼼히 세팅하라고 추천합니다.
내 환경과 버전부터 체크했어요
제가 테스트한 서버는 Ubuntu 22.04 LTS였어요. 클라우드 VPS를 이용했고, SSH 접속은 기본 22번 포트였죠. 저는 여기서부터 실수했는데, 포트 변경 같은 기본 보안 조치를 안 하고 바로 방화벽 격리부터 하려고 했다가 SSH가 막혀서 접속 불능 사태가 났어요.
Ubuntu 서버 초기 설정 보안 강화 방법 관련 정보
SSH 보안 이렇게 했어요
사실 SSH 보안이 제일 중요하더라고요. 저는 원래 비밀번호 인증만 쓰는데, 이게 완전 취약해서 무슨 봇 공격 맞아 서버가 느려질 정도였어요. 그래서 꼭 키 인증으로 바꾸라고 권합니다.
먼저 ~/.ssh/id_rsa.pub 공개키 파일이 있어야 하니 생성부터 했어요:
# 로컬 PC에서 키 생성 (아직 서버랑 연결 안 됨)
ssh-keygen -t rsa -b 4096
# 서버에 공개키 복사
ssh-copy-id username@server_ip
이후에 서버에서 SSH 설정을 바꿔야 하는데 /etc/ssh/sshd_config 파일을 열고 아래 부분을 찾아서 수정했어요:
PermitRootLogin no
PasswordAuthentication no
# 꼭 공개키 인증으로만 로그인 하도록 함
설정을 바꾸고 나서 꼭 sudo systemctl restart sshd를 해줘야 하는데, 저는 깜빡하고 그냥 접속하려다 막혀서 서버 접속을 여러 번 실패했어요. 그래서 이 부분은 꼭 주의하세요.
방화벽(UFW) 설정은 이렇게 했어요
방화벽(UFW)은 Ubuntu 기본 방화벽인데, 저는 처음에 ufw enable만 했어요. 근데 SSH 포트 허용 설정을 안 해서 딱 그 순간부터 완전 외부 접속이 안 되고, 다시 VPS 콘솔 접속을 써서 겨우 복구했죠.
따라서 아래처럼 SSH 포트를 미리 허용하고 방화벽을 켜야 합니다:
sudo ufw allow ssh # 기본 22번 포트 허용
sudo ufw enable # 방화벽 활성화
sudo ufw status # 설정 확인
추가로 저는 나중에 SSH 포트를 22에서 2222로 변경했는데, 그때도 반드시 방화벽에서 새 포트를 열고 기존 포트는 닫아야 했어요.
Ubuntu 서버 초기 설정 보안 강화 방법 관련 정보
불필요한 서비스는 꼭 껐어요
Ubuntu 기본 설치된 서비스 중에 저는 아파치 웹서버가 자동으로 설치돼 있어서, 필요 없으면 완전히 삭제하는 게 좋아요. 안 그러면 취약점 공격에 노출될 수 있으니까요.
sudo systemctl stop apache2
sudo systemctl disable apache2
sudo apt-get remove apache2 -y
서비스 이름 모르겠으면 systemctl list-unit-files --type=service로 확인했어요.
사용자 권한 관리에서 삽질한 경험
루트 계정을 직접 쓰지 말라고 해서 저는 별도 sudo 권한 있는 계정을 만들었는데, 권한 설정 중에 실수로 sudo 권한을 안 줘서 명령어 입력 땐 계속 "permission denied" 에러가 났어요.
새 사용자 만들 때 이렇게 해야 합니다:
sudo adduser newuser
sudo usermod -aG sudo newuser
그리고 로그인 시 sudo 명령어를 쓸 수 있어야 하니까 반드시 새 세션을 열어 확인해 보셔야 해요.
Ubuntu 서버 초기 설정 보안 강화 방법 관련 정보
Fail2ban으로 무작위 로그인 차단
저는 마지막으로 Fail2ban을 넣었는데, 설치는 간단하지만 설정파일을 잘못 건드려서 차단 대상에서 제 IP가 포함돼 서버 접속이 막힌 적 있어요.
설치 명령어부터 설명드리면:
sudo apt-get update
sudo apt-get install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
기본 설정이 너무 엄격하다면 /etc/fail2ban/jail.local을 만들어서 조정하면 돼요. 특히 내가 속한 IP를 반드시 ignoreip 항목에 넣어야 차단 안 됩니다.
[DEFAULT]
ignoreip = 127.0.0.1/8 YOUR.IP.ADD.RESS
bantime = 600
findtime = 600
maxretry = 5
[sshd]
enabled = true
저도 여기서 제 IP를 안 적어서 접속 차단당했다가 VPS 콘솔로 겨우 풀었어요.
SSH 포트 변경하고 나서 생긴 문제
SSH 포트를 22번에서 2222번으로 바꾸면 스캔 공격은 줄지만, 제가 처음에 하지 않은 건 방화벽 설정 변경과 SSH 설정 재시작이었어요. 그래서 시도할 때마다 연결 실패가 뜨고 원격 접속이 안 됐죠.
포트를 바꿀 때는 반드시 이 순서로 해야겠더라고요:
sudo vim /etc/ssh/sshd_config편집 후Port 2222추가 또는 수정sudo ufw allow 2222/tcp로 새 포트 열기- 기존 22번 포트 허용은 그대로 둔 상태에서 SSH 재시작
sudo systemctl restart sshd - 새 터미널에서
ssh -p 2222 username@server_ip으로 접속 확인 - 접속 성공하면 이전 22번 포트 차단
저는 이걸 뒤죽박죽으로 하다 완전 접속 코드만 날리고 다시 세팅하는 데만 반나절 넘게 썼네요.
자주 질문받았던 부분들
Q. SSH 키는 꼭 4096비트 RSA로 써야 하나요?
A. 꼭 그렇진 않아요. 보안상 충분히 강력한 키면 됩니다. RSA 2048비트도 쓰는데 저는 SSH 키를 잃어버릴 위험을 줄이려고 4096비트로 생성했어요.
Q. 방화벽 UFW가 기본적으로 설치돼 있나요?
A. 네, Ubuntu 서버에는 보통 기본으로 깔려 있지만 활성화는 안 되어 있어요. 직접 켜야 방화벽이 작동합니다.
Q. Fail2ban이 뭐길래 넣나요?
A. 무작위 대입 공격(브루트포스) 같은 것들을 자동으로 차단해 줘서, SSH 등 포트 보안을 강화하는 데 아주 도움이 돼요.
결국 서버 보안은 작은 실수가 큰 사고로 이어지기 딱 좋더라고요. 저는 이런 과정에서 생긴 경험을 공유하니 똑같은 삽질은 줄일 수 있을 거예요. Ubuntu 서버 처음 세팅할 때 이 글처럼 차근차근 따라 해 보시면, 불필요한 고생 없이 안전한 서버를 만들 수 있답니다.
'Linux' 카테고리의 다른 글
| systemd Restart와 StartLimit으로 재시작 루프 제어 (0) | 2026.10.17 |
|---|---|
| Linux 서버 디스크 풀 문제, 원인 찾고 단계별 해결한 경험담 (0) | 2026.09.14 |
| Nginx 리버스 프록시 SSL 적용, 2026년 달라진 점까지 단계별 정리 (0) | 2026.09.14 |
| Docker Compose로 개발 환경 통합할 때 제가 겪은 문제와 해결법 (0) | 2026.09.01 |
| Linux 메모리 부족 문제, 저는 이렇게 원인 추적하고 해결했어요 (0) | 2026.08.24 |
