상세 컨텐츠

본문 제목

Linux ssh 보안 설정

Linux

by 걸어서뉴욕까지 2023. 8. 5. 23:33

본문

sudo 권한이 있는 유저 생성 & root ssh 접근 제어

모든 권한을 갖고 있는 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 기본 port 변경

ssh 의 기본 포트는 22로 설정되어있다. 해당 port 값을 모르는 사람은 없으므로 특정 포트로 변경한다.

Port 22222	# 22에서 변경하고 싶은 포트로 변경하되 well known port는 피해서 변경한다.

 

패스워드 없이 로그인하지 못하도록 설정

PermitEmptyPasswords no		# 주석 해제

 

로그인 및 Access 시도 횟수 제한

MaxAuthTries 5	# 최대 로그인 횟수 제한을 설정한다.

 

SSH 버전 2 사용

Protocol 파라미터를 추가하여 많은 취약점이 보안된 ssh version 2 사용합니다, 

Include /etc/ssh/sshd_config.d/*.conf
Protocol 2	# 추가

 

TCP 포트 포워딩 및 X11 포워딩 설정

ssh를 통해서 다른 시스템에 대한 접근 권한을 받을 수 없도록 tcp forwarding과 x11forwarding 설정을 no로 설정합니다.

AllowTcpForwarding no
#GatewayPorts no
X11Forwarding no

 

ssh 접속 IP 제한

vi /etc/hosts.allow 

# 아래 내용 추가 sshd 접속 ip 대역 제한
sshd : 10.0.10.0/24 : ALLOW

 

Client Idle 타임 아웃 설정

접속한 유저의 활동이 없을 시 ssh 연결을 종료할 시간 설정

ClientAliveInterval 600		# 주석 해제 및 값 설정

 

ssh 모니터링을 위한 설정

LogLevel INFO	# 주석 해제

 

Mac 알고리즘 적용

클라이언트와 서버간에 데이터 전송을 확인하고 검증하기 위해서 mac 알고리즘을 적용시킨다.

Include /etc/ssh/sshd_config.d/*.conf
Protocol 2
MACs hmac-sha1,hmac-sha2-256,hmac-sha2-512	# 추가

 

ssh daemon reload

변경된 포트로 접속을 위해 방화벽과 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로 작업

※ 문제가 생겼을 시 롤백을 위해 기존 터미널은 끄지 않고 새로운 터미널에서 접속해본다.

'Linux' 카테고리의 다른 글

CentOS NFS 설정  (0) 2023.09.04
nerdctl 설치  (0) 2023.08.11
Containerd 설치  (0) 2023.08.11

관련글 더보기