root 계정 원격접속 제한

Linux 시스템에서 “root”는 슈퍼유저 또는 시스템 관리자로서의 특권을 가진 사용자로, 시스템에서 가장 높은 권한을 가집니다. root 사용자는 시스템 전체에 대한 모든 권한을 갖고 있어, 파일, 디렉터리, 프로세스 등 모든 것에 접근할 수 있습니다. 보안상의 이유로 root 사용자는 일반적으로 로그인을 위해 사용하지 않습니다. 대신, 다른 계정으로 로그인한 후에 su나 sudo 명령어를 사용하여 root 권한을 얻습니다.

점검 내용
  • 시스템 정책에 root 계정의 원격터미널 접속차단 설정이 적용되어 있는지 점검
점검 목적
  • 관리자계정 탈취로 인한 시스템 장악을 방지하기 위해 외부 비인가자의 root 계정 접근 시도를 원천적으로 차단하기 위함
보안 위협
  • root 계정은 운영체제의 모든기능을 설정 및 변경이 가능하여(프로세스, 커널변경 등) root 계정을 탈취하여 외부에서 원격을 이용한 시스템 장악 및 각종 공격으로(무작위 대입 공격) 인한 root 계정 사용 불가 위협
점검 대상
  • Linux : Rocky 9
판단 기준
  • 양호 : 원격 터미널 서비스를 사용하지 않거나, 사용 시 root 직접 접속을 차단한 경우
  • 취약 : 원격 터미널 서비스 사용 시 root 직접 접속을 허용한 경우
조치 방법
  1. telnet 사용 금지(“telnet 서비스 비활화” 조치 방법 참고)
    • telnet은 암호화되지 않은 평문 텍스트 통신을 사용하기 때문에 보안 상의 이유로 사용하지 않도록 권장하고 있습니다. 대신에 SSH(암호화된 통신)를 사용하는 것이 더 안전합니다.
      [root@rocky9u2 ~]# dnf list installed telnet-server
      Installed Packages telnet-server.x86_64
      [root@rocky9u2 ~]# systemctl status telnet.socket
      [0m telnet.socket - Telnet Server Activation Socket Loaded: loaded (/usr/lib/systemd/system/telnet.socket; enabled; preset: disabled) Active: active (listening) since Wed 2023-11-08 11:18:23 KST; 2s ago ..... MORE .....
      [root@rocky9u2 ~]# systemctl disable --now telnet.socket
      Removed "/etc/systemd/system/sockets.target.wants/telnet.socket".
    • telnet이 더 이상 필요가 없다면 패키지를 삭제하는 것도 고려합니다.
      [root@rocky9u2 ~]# dnf -y remove telnet-server
      Dependencies resolved. ..... MORE ..... Removed: telnet-server-1:0.17-85.el9.x86_64 Complete!
    • telnet 서비스 사용해야 한다면,
      – Step 1) “/etc/securetty” 파일 수정: pts/0 ~ pts/x 설정 제거 또는, 주석 처리
      – Step 2) “/etc/pam.d/login” 파일 수정: auth required /lib/security/pam_securetty.so 삽입
  2.  

  3. rsh 사용 금지(“r계열 서비스 비활화” 조치 방법 참고)
    • rsh는 보안에 취약하고 사용이 권장되지 않는 프로토콜입니다. 사용자 인증이 암호화되지 않고 데이터가 평문으로 전송되기 때문에 보안 문제가 많습니다. 대신에 ssh (Secure Shell)을 사용하는 것이 보안적으로 더 안전합니다.
      [root@rocky9u2 ~]# dnf list installed rsh-server
      Installed Packages rsh-server.x86_64 0.17-98.el9 @@commandline
      [root@rocky9u2 ~]# systemctl status rsh.socket
      rsh.socket - Remote Shell Facilities Activation Socket Loaded: loaded (/usr/lib/systemd/system/rsh.socket; disabled; preset: disabled) Active: inactive (dead)http://134.185.107.196/vulnerability-assessment-of-linux/limite-remote-access-of-root-user/?preview=true Listen: [::]:514 (Stream) Accepted: 0; Connected: 0;
    • rsh가 더 이상 필요가 없다면 패키지를 삭제하는 것도 고려합니다.
      [root@rocky9u2 ~]# dnf -y remove rsh-server
      Dependencies resolved. ...... MORE ..... Removed: rsh-server-0.17-98.el9.x86_64 Complete!
  4.  

  5. SSH 사용 설정
    • root 사용자의 SSH 접속을 금지하려면,
      [root@rocky9u2 ssh]# vi /etc/ssh/sshd_config
      PermitRootLogin no
    • firewalld와 같은 방화벽 도구를 사용하지 않는다면, AllowUsers 지시자를 사용해서 특정 사용자 또는 특정 원격 호스트에서만 접속을 허용할 수 있습니다.
      [root@rocky9u2 ssh]# vi /etc/ssh/sshd_config
      PermitRootLogin no #AllowUsers local_user remote_user@IP주소 AllowUsers archer root@192.168.56.102
    • SSH의 키 기반 인증으로 원격 접속하시면 비밀번호를 입력하지 않고 접속할 수 있습니다.
◁ 계정 관리 홈 | 패스워드 복잡성 설정 ▷

함께 읽어보면 좋은 Contents