개요
OpenSSH 서버 패키지는 'sshd' (SSH Daemon)를 제공하여 SSH 클라이언트의 연결 요청을 수신하고 처리합니다. 이는 원격 시스템에 대한 안전한 접근을 위한 핵심 구성 요소이며, 데이터 암호화, 강력한 인증 메커니즘을 통해 보안을 강화합니다.
주요 기능
- 원격 로그인 및 셸 접근 (SSH)
- 안전한 파일 전송 (SCP, SFTP)
- 포트 포워딩 및 터널링
- 다양한 인증 방식 지원 (비밀번호, 공개키, GSSAPI 등)
설치
OpenSSH 서버는 대부분의 리눅스 배포판에 기본으로 포함되어 있지 않거나, 최소 설치 시 제외되는 경우가 많습니다. 다음은 주요 배포판에서 OpenSSH 서버를 설치하는 방법입니다.
Debian/Ubuntu
sudo apt update
sudo apt install openssh-server
APT 패키지 관리자를 사용하여 설치합니다.
CentOS/RHEL/Fedora
sudo yum install openssh-server
# 또는 dnf 사용
sudo dnf install openssh-server
YUM 또는 DNF 패키지 관리자를 사용하여 설치합니다.
설치 후 서비스 확인
설치 후에는 'sshd' 서비스가 자동으로 시작되는지 확인하고, 필요한 경우 활성화합니다.
서비스 상태 확인 및 활성화
sudo systemctl status sshd
sudo systemctl enable sshd --now
주요 옵션
OpenSSH 서버의 주요 설정은 '/etc/ssh/sshd_config' 파일을 통해 이루어집니다. 다음은 이 설정 파일에서 자주 사용되는 옵션들입니다.
sshd_config 설정
생성된 명령어:
명령어를 조합해 보세요.
설명:
`openssh-server` 명령어를 실행합니다.
위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.
사용 예시
OpenSSH 서버의 설정 및 관리와 관련된 일반적인 사용 예시입니다.
sshd 서비스 시작/중지/재시작
sudo systemctl start sshd
sudo systemctl stop sshd
sudo systemctl restart sshd
systemd를 사용하는 시스템에서 sshd 서비스를 제어합니다.
sshd 서비스 상태 확인
sudo systemctl status sshd
sshd 데몬의 현재 상태를 확인합니다.
SSH 포트 변경 (sshd_config 수정)
sudo sed -i 's/^#Port 22/Port 2222/' /etc/ssh/sshd_config
sudo systemctl restart sshd
기본 SSH 포트(22)를 2222로 변경하는 예시입니다. 파일을 수정한 후에는 sshd 서비스를 재시작해야 합니다.
루트 로그인 비활성화
sudo sed -i 's/^PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
sudo systemctl restart sshd
sshd_config에서 PermitRootLogin을 'no'로 설정하여 보안을 강화합니다.
특정 사용자만 접속 허용
echo 'AllowUsers myuser' | sudo tee -a /etc/ssh/sshd_config
sudo systemctl restart sshd
sshd_config에 'AllowUsers' 옵션을 추가하여 'myuser' 사용자만 SSH 접속을 허용합니다.
팁 & 주의사항
OpenSSH 서버를 안전하고 효율적으로 운영하기 위한 팁과 주의사항입니다.
보안 강화 팁
- **기본 포트(22) 변경**: 무작위 대입 공격(Brute-force attack)의 표적이 되는 것을 줄일 수 있습니다.
- **비밀번호 인증 비활성화, 공개키 인증 사용**: 가장 강력한 인증 방법입니다. 비밀번호는 추측되거나 유출될 위험이 있습니다.
- **루트 로그인 비활성화**: root 계정은 모든 권한을 가지므로, 직접 로그인을 허용하지 않고 일반 사용자 계정으로 로그인 후 `sudo`를 사용하는 것이 안전합니다.
- **특정 사용자/그룹만 허용**: `AllowUsers` 또는 `AllowGroups` 옵션을 사용하여 접속 가능한 계정을 제한합니다.
- **방화벽 설정**: SSH 포트(기본 22 또는 변경된 포트)에 대해서만 외부 접속을 허용하도록 방화벽(ufw, firewalld 등)을 설정합니다.
- **Fail2ban 설치**: 반복적인 로그인 실패 시 해당 IP를 차단하여 무작위 대입 공격을 방어합니다.
설정 변경 시 주의사항
sshd_config 파일을 변경한 후에는 반드시 `sudo sshd -t` 명령어로 설정 파일의 문법 오류를 확인한 후 `sudo systemctl restart sshd` 명령어로 서비스를 재시작해야 합니다. 오류가 있는 설정으로 서비스를 재시작하면 SSH 접속이 불가능해질 수 있습니다.