모든 권한을 갖고 있는 root 계정으로 ssh 접근을 막기 위해서 sudo 권한이 있는 유저를 생성하고 root 계정의 ssh 접근을 비활성화 시킨다.
useradd -m sudouser # sudouser를 홈디렉토리와 함께 생성
passwd sudouser # password 변경
usermod -aG sudo sudouser # sudo 그룹에 추가
/etc/ssh/sshd_config 파일에 아래 값들을 수정하여 root 계정의 외부 접속을 막고 접속을 허용할 계정들을 추가합니다.
※ 아래 부터 나오는 설정값들은 모두 /etc/ssh/sshd_config 파일입니다.
PermitRootLogin no # yes : 허용, no : 차단, prohibit-password : key 파일을 통한 로그인 허용
AllowUsers sudouser # sudouser 유저의 접속을 허용
ssh 의 기본 포트는 22로 설정되어있다. 해당 port 값을 모르는 사람은 없으므로 특정 포트로 변경한다.
Port 22222 # 22에서 변경하고 싶은 포트로 변경하되 well known port는 피해서 변경한다.
PermitEmptyPasswords no # 주석 해제
MaxAuthTries 5 # 최대 로그인 횟수 제한을 설정한다.
Protocol 파라미터를 추가하여 많은 취약점이 보안된 ssh version 2 사용합니다,
Include /etc/ssh/sshd_config.d/*.conf
Protocol 2 # 추가
ssh를 통해서 다른 시스템에 대한 접근 권한을 받을 수 없도록 tcp forwarding과 x11forwarding 설정을 no로 설정합니다.
AllowTcpForwarding no
#GatewayPorts no
X11Forwarding no
vi /etc/hosts.allow
# 아래 내용 추가 sshd 접속 ip 대역 제한
sshd : 10.0.10.0/24 : ALLOW
접속한 유저의 활동이 없을 시 ssh 연결을 종료할 시간 설정
ClientAliveInterval 600 # 주석 해제 및 값 설정
LogLevel INFO # 주석 해제
클라이언트와 서버간에 데이터 전송을 확인하고 검증하기 위해서 mac 알고리즘을 적용시킨다.
Include /etc/ssh/sshd_config.d/*.conf
Protocol 2
MACs hmac-sha1,hmac-sha2-256,hmac-sha2-512 # 추가
변경된 포트로 접속을 위해 방화벽과 selinux에 해당 포트를 등록한뒤 sshd를 재시작한다.
# 방화벽 포트 추가
firewall-cmd --permanent --zone=public --add-port=22222/tcp
firewall-cmd --reload
# selinux ssh_port_t에 포트 추가
semanage port -a -t ssh_port_t -p tcp 22222 # 삭제는 -a 를 -d로 변경
# restart
sudo systemctl restart sshd # sshd.service not found시 ssh로 작업
※ 문제가 생겼을 시 롤백을 위해 기존 터미널은 끄지 않고 새로운 터미널에서 접속해본다.
CentOS NFS 설정 (0) | 2023.09.04 |
---|---|
nerdctl 설치 (0) | 2023.08.11 |
Containerd 설치 (0) | 2023.08.11 |