[Unix 서버] r 계열 서비스 비활성화
- 정보보안/Infra
- 2024. 10. 27.
U-21 r 계열 서비스 비활성화
■ 항목 중요도 : 상
■ 점검내용
r-command 서비스 비활성화 여부 점검
■ 점검목적
r-command 사용을 통한 원격 접속은 NET Backup 또는 클러스터링 등 용도로 사용되기도 하나, 인증 없이 관리자 원격접속이 가능하여 이에 대한 보안위협을 방지하고자 함
■ 보안위협
rsh, rlogin, rexec 등의 r command를 이용하여 원격에서 인증절차 없이 터미널 접속, 쉘 명령어를 실행이 가능함
■ 참고
※ r-command : 인증 없이 관리자의 원격접속을 가능하게 하는 명령어들로 rsh(remsh), rlogin, rexec, rsync 등이 있음
점검대상 및 판단기준
■ 대상 : SOLARIS, LINUX, AIX, HP-UX 등
양호
불필요한 r 계열 서비스가 비활성화 되어 있는 경우
취약
불필요한 r 계열 서비스가 활성화 되어 있는 경우
■ 조치방법
NET Backup등 특별한 용도로 사용하지 않는다면 아래의 서비스 중지
shell(514) | login(513) | exec(512) |
점검 방법
■ OS별 점검 파일 위치 및 점검 방법
SOLARIS 5.9이하 버전
r-command 서비스 활성화 여부 확인 #vi /etc/inetd.conf |
AIX
#cat /etc/inetd.conf | grep rlogin (# 처리 되어 있으면 비활성화) #cat /etc/inetd.conf | grep rsh (# 처리 되어 있으면 비활성화) |
HP-UX
#vi /etc/inetd.conf r로 시작하는 필드 존재 시 취약 |
SOLARIS 5.10이상 버전
#inetadm | egrep "shell|rlogin|rexec" r command 관련 데몬 확인 |
LINUX(xinetd일 경우)
rsh, rlogin, rexec (shell, login, exec) 서비스 구동 확인 #ls -alL /etc/xinetd.d/* | egrep "rsh|rlogin|rexec" | egrep -v "grep|klogin|kshell|kexec" |
위에 제시된 파일 내 "r-command계열“ 서비스가 활성화 된 경우 아래의 보안설정 방법에 따라 서비스 중지
■ SOLARIS 5.9 이하, HP-UX
Step 1) r 계열 서비스 활성화 여부 확인
# vi /etc/inetd.conf
Step 2) r로 시작하는 필드 주석처리 후 재가동
(수정 전)
shell stream tcp nowait root /usr/sbin/in.rshd in.rshd
shell stream tcp6 nowait root /usr/sbin/in.rshd in.rshd
login stream tcp nowait root /usr/sbin/in.rlogin.d in.rlogind
exec stream tcp nowait root /usr/sbin/in.rexecd in.rexecd
exec stream tcp6 nowait root /usr/sbin/in.rexecd in.rexecd
(수정 후)
#shell stream tcp nowait root /usr/sbin/in.rshd in.rshd
#shell stream tcp nowait root /usr/sbin/in.rshd in.rshd
#shell stream tcp6 nowait root /usr/sbin/in.rshd in.rshd
#login stream tcp6 nowait root /usr/sbin/in.rlogind in.rlogind
#exec stream tcp nowait root /usr/sbin/in.rexecd in.rexecd
#exec stream tcp6 nowait root /usr/sbin/in.rexecd in.rexecd
■ LINUX
[Telnet 서비스 사용시]
Step 1) “/etc/securetty” 파일에서 pts/0 ~ pts/x 설정 제거 또는, 주석 처리
Step 2) “/etc/pam.d/login” 파일 수정 또는, 신규 삽입
(수정 전) #auth required /lib/security/pam_securetty.so
(수정 후) auth required /lib/security/pam_securetty.so
※ /etc/securetty : Telnet 접속 시 root 접근 제한 설정 파일
“/etc/securetty” 파일 내 *pts/x 관련 설정이 존재하는 경우 PAM 모듈 설정과 관계없이 root계정 접속을 허용하므로
반드시 "securetty" 파일에서 pts/x 관련 설정 제거 필요
tty(terminal-teletype) : 서버와 연결된 모니터, 키보드 등을 통해 사용자가 콘솔로 직접 로그인함
pts(pseudo-terminal, 가상터미널) : Telnet, SSH, 터미널 등을 이용하여 접속함
[SSH 서비스 사용시]
Step 1) vi 편집기를 이용하여 “/etc/ssh/sshd_config” 파일 열기
Step 2) 아래와 같이 주석 제거 또는, 신규 삽입
(수정 전) #PermitRootLogin Yes
(수정 후) PermitRootLogin No
SOLARIS) # kill -HUP [inetd PID]
HP-UX) # inetd -c
■ AIX
Step 1) r 계열 서비스 활성화 여부 확인
#cat /etc/inetd.conf |grep rlogin (# 처리 되어 있으면 비활성화)
#cat /etc/inetd.conf |grep rsh (# 처리 되어 있으면 비활성화)
#cat /etc/inetd.conf |grep exec (# 처리 되어 있으면 비활성화)
Step 2) /etc/hosts.equiv 파일은 TRUSTED 시스템을 등록
Step 3) .rhosts 파일은 사용자 별로 'r'command를 통해 접근이 가능하도록 설정할 수 있음
($HOME/.rhosts)
■ SOLARIS 5.10 이상 버전
Step 1) r’command 관련 데몬 확인
• svc:/network/login:rlogin • svc:/network/rexec:default • svc:/network/shell:kshell |
Step 2) inetadm –d “중지하고자 하는 데몬“ 명령으로 데몬 중지
#inetadm -d svc:/network/login:rlogin
#inetadm -d svc:/network/rexec:default
#inetadm -d svc:/network/shell:kshell
■ LINUX (xinetd일 경우)
Step 1) vi 편집기를 이용하여 “/etc/xinetd.d/” 디렉터리 내 rlogin, rsh, rexec 파일 열기
Step 2) 아래와 같이 설정 (Disable = yes 설정)
• /etc/xinetd.d/rlogin 파일 • /etc/xinetd.d/rsh 파일 • /etc/xinetd.d/rexec 파일 service rlogin { socket_type = stream wait = no user = nobody log_on_success += USERID log_on_failure += USERID server = /usr/sdin/in.fingerd disable = yes } |
Step 3) xinetd 서비스 재시작
#service xinetd restart
■ r-command 사용시 보안설정
Step 1) r command 사용을 허용하는 호스트 및 계정 설정
- .rhosts, hosts.equiv 파일에 접근을 허용하는 hostname(IP) 명시
※ IP 등록시 공인 IP 설정은 금지
- .rhosts, hosts.equiv 파일의 퍼미션을 600 이하로 설정
- 필요시 TCP_Wrapper를 이용하여 접근을 허용하는 IP를 등록하여 추가 보안 설정
■ 조치 시 영향
rlogin, rshell, rexec 서비스는 backup, 클러스터링 등의 용도로 종종 사용되고 있으므로
해당 서비스 사용 유무를 확인하여 미사용시 서비스 중지
(/etc/hosts.equiv 또는 각 홈 디렉터리 밑에 있는 .rhosts 파일에 설정 유무를 확인하여 해당 서비스 사용여부 확인 -
파일이 존재하지 않거나 해당파일 내에 설정이 없다면 사용하지 않는 것으로 파악)