Linux 시스템에서 “root”는 슈퍼유저 또는 시스템 관리자로서의 특권을 가진 사용자로, 시스템에서 가장 높은 권한을 가집니다. root 사용자는 시스템 전체에 대한 모든 권한을 갖고 있어, 파일, 디렉터리, 프로세스 등 모든 것에 접근할 수 있습니다. 보안상의 이유로 root 사용자는 일반적으로 로그인을 위해 사용하지 않습니다. 대신, 다른 계정으로 로그인한 후에 su나 sudo 명령어를 사용하여 root 권한을 얻습니다.
점검 내용
- 시스템 정책에 root 계정의 원격터미널 접속차단 설정이 적용되어 있는지 점검
점검 목적
- 관리자계정 탈취로 인한 시스템 장악을 방지하기 위해 외부 비인가자의 root 계정 접근 시도를 원천적으로 차단하기 위함
보안 위협
- root 계정은 운영체제의 모든기능을 설정 및 변경이 가능하여(프로세스, 커널변경 등) root 계정을 탈취하여 외부에서 원격을 이용한 시스템 장악 및 각종 공격으로(무작위 대입 공격) 인한 root 계정 사용 불가 위협
점검 대상
- Linux : Rocky 9
판단 기준
- 양호 : 원격 터미널 서비스를 사용하지 않거나, 사용 시 root 직접 접속을 차단한 경우
- 취약 : 원격 터미널 서비스 사용 시 root 직접 접속을 허용한 경우
조치 방법
- telnet 사용 금지(“telnet 서비스 비활화” 조치 방법 참고)
- telnet은 암호화되지 않은 평문 텍스트 통신을 사용하기 때문에 보안 상의 이유로 사용하지 않도록 권장하고 있습니다. 대신에 SSH(암호화된 통신)를 사용하는 것이 더 안전합니다.
[root@rocky9u2 ~]# dnf list installed telnet-serverInstalled 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.socketRemoved "/etc/systemd/system/sockets.target.wants/telnet.socket".
- telnet이 더 이상 필요가 없다면 패키지를 삭제하는 것도 고려합니다.
[root@rocky9u2 ~]# dnf -y remove telnet-serverDependencies 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 삽입
- telnet은 암호화되지 않은 평문 텍스트 통신을 사용하기 때문에 보안 상의 이유로 사용하지 않도록 권장하고 있습니다. 대신에 SSH(암호화된 통신)를 사용하는 것이 더 안전합니다.
- rsh 사용 금지(“r계열 서비스 비활화” 조치 방법 참고)
- rsh는 보안에 취약하고 사용이 권장되지 않는 프로토콜입니다. 사용자 인증이 암호화되지 않고 데이터가 평문으로 전송되기 때문에 보안 문제가 많습니다. 대신에 ssh (Secure Shell)을 사용하는 것이 보안적으로 더 안전합니다.
[root@rocky9u2 ~]# dnf list installed rsh-serverInstalled Packages rsh-server.x86_64 0.17-98.el9 @@commandline[root@rocky9u2 ~]# systemctl status rsh.socketrsh.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-serverDependencies resolved. ...... MORE ..... Removed: rsh-server-0.17-98.el9.x86_64 Complete!
- rsh는 보안에 취약하고 사용이 권장되지 않는 프로토콜입니다. 사용자 인증이 암호화되지 않고 데이터가 평문으로 전송되기 때문에 보안 문제가 많습니다. 대신에 ssh (Secure Shell)을 사용하는 것이 보안적으로 더 안전합니다.
- SSH 사용 설정
- root 사용자의 SSH 접속을 금지하려면,
[root@rocky9u2 ssh]# vi /etc/ssh/sshd_configPermitRootLogin no
- firewalld와 같은 방화벽 도구를 사용하지 않는다면, AllowUsers 지시자를 사용해서 특정 사용자 또는 특정 원격 호스트에서만 접속을 허용할 수 있습니다.
[root@rocky9u2 ssh]# vi /etc/ssh/sshd_configPermitRootLogin no #AllowUsers local_user remote_user@IP주소 AllowUsers archer root@192.168.56.102
- SSH의 키 기반 인증으로 원격 접속하시면 비밀번호를 입력하지 않고 접속할 수 있습니다.
- root 사용자의 SSH 접속을 금지하려면,
◁ 계정 관리 홈 | | | 패스워드 복잡성 설정 ▷ |
---|
함께 읽어보면 좋은 Contents
- [Linux]등록된 Host 및 IP를 제외하고 root의 ssh 로그인을 제한하는 방법
- [Linux]Rocky Linux에 ssh 접속하기
- [Linux]SSH의 키 기반 인증으로 원격 접속과 파일 전송
- LINUX서버 취약점 분석/조치법 > ROOT 계정 원격접속 제한
- LINUX서버 취약점 분석/조치법 > 접속 IP 및 포트 제한