r계열 서비스 비활성화

rsh(514/tcp), rlogin(513/tcp), rexec(512/tcp) 등과 같은 r계열의 원격 로그인 프로토콜은 현재의 보안 표준에 부합하지 않고 보안 문제가 있기 때문에 권장되지 않습니다.

점검 내용
  • r계열 서비스 비활성화 여부 점검
점검 목적
  • r계열 서비스의 사용을 통한 원격 접속은 NET Backup 또는 클러스터링 등 용도로 사용되기도 하나, 인증 없이 관리자 원격 접속이 가능하여 이에 대한 보안 위협을 방지하고자 함
보안 위협
  • rsh, rlogin, rexec 등의 r command를 이용하여 원격에서 인증 절차 없이 터미널 접속, 쉘 명령어를 실행이 가능함
점검 대상
  • Linux : Red Hat Enterprise Linux Server release 7.7
판단 기준
  • 양호 :
    – 불필요한 r 계열 서비스가 비활성화 되어 있는 경우
    – /etc/hosts.equiv 및 $HOME/.rhosts 파일 소유자가 root 또는, 해당 계정인 경우
    – /etc/hosts.equiv 및 $HOME/.rhosts 파일 권한이 600 이하인 경우
    – /etc/hosts.equiv 및 $HOME/.rhosts 파일 설정에 ‘+’ 설정이 없는 경우
  • 취약 :
    – 불필요한 r 계열 서비스가 활성화 되어 있는 경우
    – 위와 같은 설정이 적용되지 않은 경우
조치 방법
  1. r계열 서비스 설치 패키지 및 설치 파일 확인
    [root@rhel7u7 ~]# yum list rsh-server
    ..... MORE ..... Installed Packages rsh-server.x86_64
    [root@rhel7u7 ~]# rpm -ql rsh-server
    /etc/pam.d/rexec /etc/pam.d/rlogin /etc/pam.d/rsh /usr/lib/systemd/system/rexec.socket /usr/lib/systemd/system/rexec@.service /usr/lib/systemd/system/rlogin.socket /usr/lib/systemd/system/rlogin@.service /usr/lib/systemd/system/rsh.socket /usr/lib/systemd/system/rsh@.service /usr/sbin/in.rexecd /usr/sbin/in.rlogind /usr/sbin/in.rshd /usr/share/man/man8/in.rexecd.8.gz /usr/share/man/man8/in.rlogind.8.gz /usr/share/man/man8/in.rshd.8.gz /usr/share/man/man8/rexecd.8.gz /usr/share/man/man8/rlogind.8.gz /usr/share/man/man8/rshd.8.gz
  2. xinetd 데몬을 사용할 경우, finger 서비스 비활성화 조치 방법과 동일하게 진행
    • rsh, rlogin, rexec 서비스 설정 파일 변경
      [root@rhel7u7 ~]# vi /etc/xinetd.d/rsh
      rsh service { socket_type = stream wait = no user = nobody log_on_success += USERID log_on_failure += USERID server = /usr/sbin/in.rshd disable = yes }
      [root@rhel7u7 ~]# vi /etc/xinetd.d/rlogin
      rlogin service { socket_type = stream wait = no user = nobody log_on_success += USERID log_on_failure += USERID server = /usr/sbin/in.rlogind disable = yes }
      [root@rhel7u7 ~]# vi /etc/xinetd.d/rexec
      rexec service { socket_type = stream wait = no user = nobody log_on_success += USERID log_on_failure += USERID server = /usr/sbin/in.rexecd disable = yes }
    • xinetd 데몬 재시작
      systemctl restart xinetd
      
  3. r계열 명령어를 부득이하게 사용할 경우, /etc/hosts.equiv 파일과 ~/.rhosts 파일을 아래와 같이 설정합니다. 또한 트러스트된 시스텡의 MAC 주소를 정적(static)으로 구성하여 단순히 IP만을 위조한 접속을 취단합니다.(arp -s IP주소 MAC주소)
    • r계열 명령어에서는 두 호스트가 신뢰하고 있다는 것을 /etc/hosts.equiv, ~/.rhosts에 정보를 기록해 둡니다.
    • chown root:root /etc/hosts.equivchown 소유자: ~/.rhosts 명령어로 해당 파일들의 소유자를 변경합니다.
    • chmod 600 /etc/hosts.equiv ~/.rhosts 명령어로 해당 파일의 소유자만 읽고 변경할 수 있도록 권한을 설정합니다.
    • etc/hosts.equiv 파일 또는 ~/.rhosts 파일에 신뢰할 수 있는 IP주소를 등록합니다.
      + +  : 모든 호스트의 모든 계정을 신뢰
      + oracle : 모든 호스트의 "oracle" 계정을 신뢰
      yesxyz + : "yesxyz" 호스트의 모든 계정을 신뢰
      yesxyz -maria : "yesxyz" 호스트의 "maria" 계정 접속 금지
      -noxyz : "noxyz" 호스트의 접속 금지
      + @group: 모든 호스트에서 해당 group 사용자로 접근 허용
      
◁ talk 서비스 비활성화 | DoS 공격에 취약한 서비스 비활성화 ▷