Ubuntu를 처음 설치하면 SSH 서버가 자동으로 설치되어 있지 않습니다. 이 글에서는 그 이유와 함께, OpenSSH 서버 설치 및 구성, 설정 파일 백업 방법, 그리고 과거의 SSH 키 재사용 해킹 이슈를 방지하기 위한 안전한 키 관리 방법까지 단계별로 안내합니다.
1. Ubuntu에서 SSH 서버가 기본 설치되지 않는 이유
- 보안 강화
> SSH 서버는 원격 접속을 허용하는 서비스입니다. 설치 직후 자동으로 활성화되어 있으면, 네트워크에 연결된 모든 장치에서 접속 시도가 가능해져 불필요한 보안 위협(예: 무차별 대입 공격)에 노출될 수 있습니다. 이를 방지하기 위해 Ubuntu는 SSH 서버를 기본으로 설치하지 않습니다.
- 필요한 사용자만 설치
> 모든 사용자가 원격 접속 기능을 필요로 하는 것은 아니기 때문에, 필요할 때만 사용자가 직접 설치하도록 설계되어 있습니다.
2. OpenSSH 서버 설치 및 활성화
- Step 1. 터미널 열기
> 단축키: Ctrl + Alt + T
> 또는 앱 메뉴에서 "Terminal" 검색 후 실행
- Step 2. 패키지 목록 업데이트
$ sudo apt update |
- Step 3. OpenSSH 서버 설치
$ sudo apt install openssh-server |
또는
$ sudo apt install ssh |
- Step 4. SSH 서비스 시작 및 자동 실행 설정
$ sudo systemctl start ssh $ sudo systemctl enable ssh |
> 서비스 상태 확인:
$ sudo systemctl status ssh |
> Active: active (running)이 표시되면 정상 실행 중입니다.
- Step 5. 방화벽(ufw) 설정 (선택 사항)
> 방화벽을 사용 중이라면 SSH 포트(기본 22번)를 허용해야 합니다.
$ sudo ufw allow ssh $ sudo ufw enable $ sudo ufw status |
> 직접 포트를 변경했다면, 해당 포트 번호로 허용해야 합니다.
3. OpenSSH 설정 파일 백업 방법
- 설정 변경 전에는 항상 백업을 권장합니다.
- 설정 파일 백업
$ sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.factory-defaults $ sudo chmod a-w /etc/ssh/sshd_config.factory-defaults |
> /etc/ssh/sshd_config.factory-defaults 파일은 읽기 전용으로 만들어 두면, 언제든지 원본 설정을 복원할 수 있습니다.
- 복원 방법
$ sudo cp /etc/ssh/sshd_config.factory-defaults /etc/ssh/sshd_config $ sudo systemctl restart ssh |
4. OpenSSH 주요 보안 설정 및 구성 방법
- 설정 파일을 편집하여 보안을 강화할 수 있습니다.
- 설정 파일 열기
$ sudo vi /etc/ssh/sshd_config |
- 주요 설정 항목
> 포트 변경 (예: 2222)
Port 2222 |
> 루트 로그인 금지
PermitRootLogin no |
> 비밀번호 인증 비활성화 (키 인증만 허용)
PasswordAuthentication no |
> 인증 실패 횟수 제한
MaxAuthTries 3 |
> 특정 사용자만 허용
AllowUsers username |
> 강력한 암호화 알고리즘 지정
Ciphers aes256-ctr,aes192-ctr,aes128-ctr MACs hmac-sha2-512,hmac-sha2-256 |
- 설정 적용
$ sudo systemctl restart ssh |
5. SSH 키 관리 및 과거 해킹 이슈 방지 방법
- 과거에 동일한 SSH 키 쌍이 여러 시스템에서 재사용되어 해킹되는 사례가 있었습니다. 이를 방지하려면 다음과 같은 방법을 적용해야 합니다.
- 각 시스템마다 고유한 SSH 키 쌍 생성
$ ssh-keygen -t ed25519 -C "your_email@example.com" |
(각 서버/사용자별로 별도의 키 쌍을 생성하고, 동일한 키를 여러 곳에 재사용하지 않습니다).
- 키 주기적 교체(로테이션) 및 관리
> 일정 주기로 SSH 키를 변경하고, 더 이상 사용하지 않는 키는 authorized_keys에서 삭제합니다.
> 조직에서는 중앙 집중식 SSH 키 관리 솔루션을 사용하는 것이 좋습니다.
- 키 백업 및 보안 저장
> SSH 키(특히 private key)는 안전한 위치에 암호화하여 백업합니다.
> 백업 파일 접근 권한을 제한하고, 필요시만 복원합니다.
- 비밀번호 인증 비활성화
> 키 인증만 허용하여 무차별 대입 공격 위험을 줄입니다.
- 2단계 인증(2FA) 적용
> Google Authenticator, Duo Security 등과 연동하여 추가 인증 절차를 적용합니다.
6. 자동화된 백업에 OpenSSH 활용
- OpenSSH 키 인증을 활용하면 rsync, tar, dump 등과 연동해 안전하게 자동 백업을 할 수 있습니다. 예시:
- 원격 서버에서 로컬로 백업:
$ ssh -t user@source.example.org 'sudo dump -0an -f - /var/www/ | gzip -c9' > backup.dump.gz |
- 로컬에서 원격으로 백업:
$ sudo dump -0an -f - /var/www/ | gzip -c9 | ssh user@target.example.org 'cat > backup.dump.gz' |
(sudo 비밀번호 프롬프트가 보이지 않을 수 있으니 주의).
정리
Ubuntu는 보안을 위해 SSH 서버를 기본 설치하지 않습니다. OpenSSH 서버 설치 후에는 반드시 설정 파일을 백업하고, 포트 변경, 루트 로그인 금지, 키 인증 사용, 2FA 적용 등 다양한 보안 설정을 적용해야 합니다. 과거의 SSH 키 재사용 해킹 이슈를 방지하려면 각 시스템별로 고유한 키를 사용하고, 주기적으로 키를 교체하며, 키를 안전하게 백업·관리해야 합니다. OpenSSH의 키 인증 기능을 활용하면 안전하고 효율적으로 자동화된 백업도 구현할 수 있습니다
'IT > Linux' 카테고리의 다른 글
[Linux] 리눅스 cat과 zcat 명령어 기본과 실전 활용 예제 (0) | 2025.06.11 |
---|---|
[Linux] 리눅스 tar 명령어 기본와 실전 활용 예제 (0) | 2025.06.11 |
[Linux] 가상 서버(LVS:Linux Virtual Server)로 부하 분산 서버(Load Balancer) 구성하기 (0) | 2023.08.06 |
[Linux] CentOS 패키지/커널 업그레이드 관련 내용 (1) | 2017.04.18 |
[Linux] Ubuntu 패키지/커널 업그레이드 관련 내용 (0) | 2017.04.12 |