3분 읽기
Last updated on
리눅스 서버에서 ssh로 접근할때 root로 접근을 제한하려면?
🔐 1. 비밀번호를 변경
root 계정의 비밀번호를 복잡한 비밀번호로 변경한다. 이렇게 하면 무차별 대입 공격에 대해 안전해집니다. passwd
명령어를 사용하여 비밀번호를 변경할 수 있다.
$ sudo passwd root
강력한 비밀번호 요구사항
- 최소 12자 이상
- 대소문자, 숫자, 특수문자 포함
- 사전에 있는 단어 사용 금지
- 개인정보 포함 금지
🚫 2. root 로그인 비활성화
root 계정으로 직접 로그인하는 것을 비활성화한다. 대신 sudo 권한을 이용하여 명령어를 실행한다. 이렇게 하면 일반 사용자 계정으로 로그인한 후 sudo를 사용하여 필요한 작업을 수행해야 한다.
SSH 설정 파일 수정
$ sudo vi /etc/ssh/sshd_config
위 명령어로 sshd_config 파일을 열어 다음과 같은 설정을 추가한다:
PermitRootLogin no
SSH 서비스 재시작
설정 변경 후 SSH 서비스를 재시작해야 한다:
$ sudo systemctl restart sshd
# 또는
$ sudo service ssh restart
이제 root계정으로 ssh로그인이 불가능해진다.
🔑 3. SSH 키를 사용한 인증
SSH 키를 사용하여 root 계정으로의 로그인을 차단한다. 이렇게 하면 인증된 사용자만 SSH로 서버에 접근할 수 있다.
비밀번호 인증 비활성화
$ sudo vi /etc/ssh/sshd_config
위 명령어로 sshd_config 파일을 열어 다음과 같은 설정을 추가한다:
PasswordAuthentication no
PubkeyAuthentication yes
SSH 키 생성 및 설정
이제 비밀번호 인증을 차단하고 SSH 키를 사용하여 로그인합니다.
1) 키 생성
$ ssh-keygen -t rsa -b 4096
2) 공개키 복사
$ ssh-copy-id user@remote_host
위 예시에서 user
는 원격 서버에 접근할 수 있는 사용자 이름을 나타낸다.
SSH 키 권한 설정
올바른 권한 설정이 중요하다:
$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys
🛡️ 4. 추가 보안 설정
Fail2ban 설치
무차별 대입 공격을 방지하기 위해 Fail2ban을 설치한다:
$ sudo apt-get install fail2ban
# 또는
$ sudo yum install fail2ban
포트 변경
기본 SSH 포트(22)를 다른 포트로 변경한다:
# /etc/ssh/sshd_config
Port 2222
특정 사용자만 허용
특정 사용자만 SSH 접속을 허용한다:
# /etc/ssh/sshd_config
AllowUsers user1 user2
✅ 결론
이러한 방법들을 사용하여 root로의 직접적인 접근을 막을 수 있다.
보안 체크리스트:
- ✅ root 비밀번호 강화
- ✅ root 로그인 비활성화
- ✅ SSH 키 인증 활성화
- ✅ 비밀번호 인증 비활성화
- ✅ Fail2ban 설치
- ✅ SSH 포트 변경
- ✅ 특정 사용자만 허용
중요: 설정 변경 전에 반드시 백업을 수행하고, 다른 접속 세션을 유지한 상태에서 테스트하세요!