InfraPlatform

Linux sshd 서비스 와 Selunux 방화벽 설정 정리

IT오이시이 2026. 4. 14. 10:24
728x90

 

Linux sshd  서비스 와 Selunux 방화벽 설정 정리

 

(Rocky , Redhat 계열) Linux  SSH 포트 2022 설정  을 다음과 같이 합니다.

[Linux 머신과 SSH 연동 방법]
1. /etc/ssh/sshd_config 수정: 실제 서비스 포트 설정 변경
2. SELinux에 포트 2022 허용: 보안 정책에 새 포트 등록
3. 방화벽(firewall-cmd) 허용: 네트워크 포트 개방
4. sshd 서비스 재시작: 변경 사항 적용

 

 

1. /etc/ssh/sshd_config수정

 다음과 같이 2022 Port를 추가하였다.

#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
Port 2022
ListenAddress 0.0.0.0

 

# /etc/ssh/sshd_config
sudo sed -i 's/^#Port 22/Port 2022/' /etc/ssh/sshd_config
# 또는 직접 편집: Port 2022 추가 (22도 남길 경우 두 줄 병기)

sudo systemctl restart sshd

 

(참고) 다음과 같이 sshd 구동이 실패하면 Selinux 도  설정해야 합니다.

root@node1:~# sudo systemctl restart
sshd Job for sshd.service failed because the control process exited with error code. See "systemctl status sshd.service" and "journalctl -xeu sshd.service" for details.

만약  "sudo /usr/sbin/sshd -D " 로 단독으로 실행이 된다면 Selinux 를 통해 프로세스가  제한되는 것으로 파악하면 됩니다. (SELinux를 통해 프로세스의 포트 바인딩이 제한되고 있음)

 

2. SELinux에 포트 2022 허용: (semanage)

sudo semanage port -a -t ssh_port_t -p tcp 2022


# 아래와 같이 22, 2022 두개를 확인 합니다.
sudo semanage port -l | grep ssh
ssh_port_t                     tcp      2022, 22

 

 

3. firewall-cmd 허용:

# 룰을 추가하고 Reload를 해야 적용됩니다.
sudo firewall-cmd --permanent --add-port=2022/tcp
sudo firewall-cmd --reload

# 적용된 룰을 확인합니다.
sudo  firewall-cmd --list-all
sudo firewall-cmd --list-ports
 
# ports: 2022/tcp 가 확인되면 Ok 입니다.

 

변경된 포트로 SSH 접속을 시도해보세요.

# 접속 예시 (PC에서 서버로 접속할 때)
ssh -p 2022 user@server_ip

 

 

RHEL 계열 리눅스에서 SSH 포트를 2022번으로 변경하기 위해 다음 세 가지 명령어를 순서대로 실행했습니다.

  1. SELinux 포트 등록: sudo semanage port -a -t ssh_port_t -p tcp 2022
  2. 방화벽 포트 개방: sudo firewall-cmd --permanent --add-port=2022/tcp 및 sudo firewall-cmd --reload
  3. 서비스 재시작: /etc/ssh/sshd_config 수정 후 sudo systemctl restart sshd
728x90
반응형