[RHEL9] SSH 접근제어

2022. 10. 15. 08:00Linux

반응형

제가 근무하고 있는 회사는 CentOS 7을 대체하기 위한 Next OS로 상용 OS인 RHEL(Red Hat Enterprise Linux) 9를 준비하고 있습니다. 아래 내용은 RHEL9 도입을 위한 사전 체크 중 기존 CentOS 7 기반 설정에서 변경이 되는 부분에 대한 내용을 정리하였습니다.

1. 문제점

 1) RHEL8 이상 tcp_wrappers 기능 미지원

RHEL8 이상부터 여러 가지 서비스의 접근 제어가 가능했던 tcp_wrappers 기능을 지원하지 않으며 firewalld로 대체되었습니다. 기본 패키지에서 tcp_wrappers가 제외되어 /etc/hosts.allow, /etc/hosts.deny를 통한 보안 설정이 불가능합니다.

 2) RHEL8/9에서는 firewalld 사용

RHEL8/9에서는 firewalld를 사용해야 합니다. 기존에 firewalld를 사용하지 않았기 때문에 사용법도 파악해야 되고 기존 설정에 대한 수정도 필요합니다. 제 경우는 SSH 접근제어 설정을 취약점 조치 스크립트에 포함하여 사용하고 있었는데 이 부분을 수정하면 될 것 같습니다.

2. tcp_wrappers 사용 예 

CentOS 7에서 tcp_wrappers 기능을 사용한 접근제어는 /etc/hosts.deny 파일에 모든 접근을 차단하고 /etc/hosts.allow 파일에 허용한 프로토콜과 접근 IP를 설정하여 사용을 했습니다. 192.168.196 대역 네트워크만 SSH 접속을 허용하려면 아래와 같이 설정합니다. RHEL9에서는 더 이상 이러한 설정을 할 수 없습니다.

 1) /etc/hosts.deny 설정

/etc/hosts.deny 은 서비스 차단 설정 파일입니다. 해당 파일에 아래와 같이 설정합니다.

  • ALL : ALL → 모든 프로세스의 모든 IP 접속 거부

hosts.deny 설정
[ /etc/hosts.deny 설정 ]

 2) /etc/hosts.allow 설정

/etc/hosts.allow 는 서비스 허용 설정 파일입니다. 해당 파일에 아래와 같이 설정합니다.

  • sshd: 192.168.196. → 192.168.196 대역의 SSH 접속을 허용

hosts.allow 설정

3. firewalld 사용 예

RHEL9에서 192.168.196 대역 네트워크에 SSH를 허용하고 다른 모든 네트워크를 차단하려면 아래와 같이 설정합니다.

  1. ssh 서비스를 기본 방화벽에서 제거
    • # firewall-cmd --permanent --remove-service=ssh
  2. sexyguyzone 이름으로 새로운 zone을 추가
    • # firewall-cmd --permanent --new-zone=sexyguyzone
  3. 생성한 새로운 zone에 IP 대역(192.168.196.0/24) 추가
    • # firewall-cmd --permanent --zone=sexyguyzone --add-source=192.168.196.0/24
  4. 추가된 newsshzone에 ssh 서비스를 추가
    • # firewall-cmd --permanent --zone=sexyguyzone --add-service=ssh
  5. 방화벽을 다시 로드하여 새 구성을 활성화
    • # firewall-cmd --reload

RHEL9 SSH 접근제어
[ RHEL9 SSH 접근제어 설정 ]

4. 마무리

지금까지 제가 RHEL9 도입을 준비하면서, SSH 접근제어 설정에는 기존에 사용하던 OS와 어떠한 차이가 있는지 정리한 내용을 포스팅했습니다.

반응형

'Linux' 카테고리의 다른 글

[CentOS7] MariaDB 10.6 설치  (0) 2022.10.26
[RHEL9] SELinux 비활성화  (0) 2022.10.14
[RHEL9] 계정 잠금(pam_faillock) 설정  (0) 2022.10.13
[RHEL9] 시간 동기화  (0) 2022.10.12
[RHEL9] 네트워크 설정  (0) 2022.10.11