반응형
Linux에서 SSH 서버를 설치하고 설정하는 방법은 배포판에 따라 다를 수 있습니다. 여기에서는 Ubuntu (Debian 계열), CentOS (Red Hat 계열), 그리고 일반적인 구성 옵션을 포함하여 SSH 서버를 설치하는 방법을 설명하겠습니다.
1. SSH 서버 설치
1. Ubuntu/Debian
Ubuntu와 Debian에서는 openssh-server
패키지를 사용하여 SSH 서버를 설치할 수 있습니다.
- 패키지 목록 업데이트
- 먼저, 패키지 목록을 업데이트합니다.
sudo apt update
- OpenSSH 서버 설치
openssh-server
패키지를 설치합니다.
sudo apt install openssh-server
- SSH 서비스 시작 및 활성화
- 설치 후 SSH 서비스를 시작하고, 부팅 시 자동으로 시작되도록 활성화합니다.
sudo systemctl start ssh
sudo systemctl enable ssh
- SSH 서비스 상태 확인
- SSH 서비스가 정상적으로 실행되고 있는지 확인합니다.
sudo systemctl status ssh
- 방화벽 설정 (선택 사항)
- UFW(일반적인 방화벽 설정 도구)를 사용하여 SSH 트래픽을 허용합니다.
sudo ufw allow ssh
또는, 특정 포트 (예: 2222)로 SSH를 허용하려면:
sudo ufw allow 2222/tcp
2. CentOS/RHEL
CentOS와 RHEL에서는 openssh-server
패키지를 사용하여 SSH 서버를 설치할 수 있습니다.
- 패키지 목록 업데이트
- 먼저, 패키지 목록을 업데이트합니다.
sudo yum update
- OpenSSH 서버 설치
openssh-server
패키지를 설치합니다.
sudo yum install openssh-server
- SSH 서비스 시작 및 활성화
- 설치 후 SSH 서비스를 시작하고, 부팅 시 자동으로 시작되도록 활성화합니다.
sudo systemctl start sshd
sudo systemctl enable sshd
- SSH 서비스 상태 확인
- SSH 서비스가 정상적으로 실행되고 있는지 확인합니다.
sudo systemctl status sshd
- 방화벽 설정 (선택 사항)
- Firewalld를 사용하여 SSH 트래픽을 허용합니다.
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
또는, 특정 포트 (예: 2222)로 SSH를 허용하려면:
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload
2. SSH 서버 구성
SSH 서버의 동작을 세부적으로 설정하려면 /etc/ssh/sshd_config
파일을 편집합니다.
- 구성 파일 편집
sshd_config
파일을 텍스트 편집기로 엽니다. 예를 들어,vim
을 사용하여 열 수 있습니다.
sudo vim /etc/ssh/sshd_config
- 주요 설정 항목
- 포트 번호 변경: 기본 포트 22를 변경하여 보안을 강화할 수 있습니다.
Port 2222
- 루트 로그인 비활성화: 보안을 위해 루트 사용자 로그인을 비활성화합니다.
PermitRootLogin no
- 암호 인증 비활성화: 공개 키 인증을 사용하는 경우 암호 인증을 비활성화할 수 있습니다.
PasswordAuthentication no
- 특정 사용자만 허용: 특정 사용자만 SSH에 접근할 수 있도록 제한합니다.
AllowUsers user1 user2
- 설정 적용
- 구성 파일을 수정한 후에는 SSH 서비스를 다시 시작하거나 재로드하여 변경 사항을 적용합니다.
sudo systemctl restart ssh
또는
sudo systemctl restart sshd
3. SSH 키 생성 및 사용
- SSH 키를 사용하여 더 안전하게 서버에 접속할 수 있습니다.
- SSH 키 생성
- 클라이언트 측에서 SSH 키를 생성합니다. 기본적으로
~/.ssh/
디렉토리에 키가 생성됩니다.
- 클라이언트 측에서 SSH 키를 생성합니다. 기본적으로
ssh-keygen -t rsa -b 4096
- 공개 키 복사
- 생성된 공개 키를 서버로 복사하여 인증에 사용할 수 있습니다.
- 또는 수동으로 ~/.ssh/authorized_keys 파일에 공개 키를 추가할 수도 있습니다.
ssh-copy-id user@server_address
- SSH 키로 서버에 접속
- 키를 사용하여 서버에 접속합니다.
ssh -i ~/.ssh/id_rsa user@server_address
5. 추가 보안 조치
- Fail2Ban 설치: 비밀번호 공격으로부터 보호하기 위해 Fail2Ban을 설정할 수 있습니다. Fail2Ban은 SSH 서버에 대한 비정상적인 로그인 시도를 감지하고 차단합니다.
- 설치 예시 (Ubuntu):
sudo apt install fail2ban
- 타임아웃 설정: SSH 세션이 비활성 상태로 일정 시간이 지나면 자동으로 종료되도록 설정할 수 있습니다.
sshd_config
파일에 다음을 추가합니다:
ClientAliveInterval 300
ClientAliveCountMax 0
이는 클라이언트가 300초(5분) 동안 아무 활동도 없으면 연결을 종료하도록 설정합니다.
6. SSH 서비스 관리 명령어 요약
- SSH 서비스 시작:
sudo systemctl start ssh # Ubuntu/Debian
sudo systemctl start sshd # CentOS/RHEL
- SSH 서비스 중지:
sudo systemctl stop ssh # Ubuntu/Debian
sudo systemctl stop sshd # CentOS/RHEL
- SSH 서비스 재시작:
sudo systemctl restart ssh # Ubuntu/Debian
sudo systemctl restart sshd # CentOS/RHEL
- SSH 서비스 상태 확인:
sudo systemctl status ssh # Ubuntu/Debian
sudo systemctl status sshd # CentOS/RHEL
- SSH 서비스 부팅 시 자동 시작 활성화:
sudo systemctl enable ssh # Ubuntu/Debian
sudo systemctl enable sshd # CentOS/RHEL
- SSH 서비스 부팅 시 자동 시작 비활성화:
sudo systemctl disable ssh # Ubuntu/Debian
sudo systemctl disable sshd # CentOS/RHEL
이러한 절차를 따라 Linux 시스템에서 SSH 서버를 설치하고 구성할 수 있습니다. 구성 파일을 수정하여 보안을 강화하고, SSH 키를 사용하여 인증을 강화하는 것이 좋습니다.
반응형
'개발 도구 > ssh' 카테고리의 다른 글
[ SSH ] ssh - config 설정해서 원하는 이름으로 로그인 하기 (1) | 2024.10.31 |
---|---|
[ SSH ] ssh-keygen - PEM 포맷으로 Key 생성하기 (1) | 2024.10.31 |
[ SSH ] ssh-keygen - 비밀번호 없이 Key로 ssh 접속하기 (0) | 2024.10.31 |