DigiMoon 맘대로 닦고 조이고 기름치는 재미가 있는 DigiMoon만의 기억 저장소

Posted
Filed under 컴퓨터 탐구/리눅스
작성자: 주인장 디지문
(http://www.digimoon.net/)


r-command 시스템은 기본적으로 logging을 제공하지 않습니다. strace 커맨드를 응용하면 실시간 logging 비슷하게 구현은 할 수 있습니다(아래"3.3. rsh 서버에서 접속기록 확인" 절을 참고하세요)

관리에 도움 되시라고 r-command 계열 tool에 대한 전반적인 가이드를 드립니다.




아래는 RHEL6 기준 내용들입니다.

rexec, sh, rlogin 모두 rsh-server 패키지에 포함되어 있습니다

rlogin은 remote login의 약자로 원격으로 로그인할 때 사용합니다. rlogin 클라이언트로 rlogin 서버에 접속할 수 있습니다.
rsh는 remote shell의 약자입니다. rsh 서버에서 로컬 명령 실행 필요없이 rsh 클라이언트에서 원격으로 명령 실행할 수 있습니다.
rexec는 사용법이 rsh와 거의 똑같은 r-command 계열 tool입니다. rsh와 다른 점은 패스워드 입력을 요구한다는 것입니다.


/usr/bin/rexec - rexec 클라이언트 명령어, rsh 패키지에 포함
/usr/sbin/in.rexecd - rexec 서버 바이너리
/etc/xinetd.d/rexec - rexec 서버 설정용 xinetd 설정 파일

/usr/bin/rlogin - rlogin 클라이언트 명령어, rsh 패키지에 포함
/usr/sbin/in.rlogind - rlogin 서버 바이너리
/etc/xinetd.d/rlogin - rlogin 서버 설정용 xinetd 설정 파일

/usr/bin/rsh - rsh 클라이언트 명령어, rsh 패키지에 포함
/usr/sbin/in.rshd - rsh 서버 바이너리
/etc/xinetd.d/rsh - rsh 서버 설정용 xinetd 설정 파일




1. rexec

1.1. rexec 클라이언트 사용법

형식)
[root@localhost ~]# rexec
사용법 : rexec [옵션] -I username -p password host command
옵션
-I username : 원격 호스트에 접속할 사용자명을 지정한다.
-p password : 원격 호스트에 접속할 사용자명의 패스워드를 지정한다.
-n : 접속할 사용자와 패스워드 프롬프트를 보여준다.
-h : 사용법을 보여준다.
[root@localhost~]#

예)
[root@rexec-client ~]# rexec rexec-server.co.kr date


1.2. rexec 서버 실행 여부 확인
netstat -ntlp 로 tcp 512 포트가 xinetd 프로세스로 listen 상태면 rexec server 실행 중


1.3. rexec 서버에서 접속기록 확인
역시 rsh-server 패키지 자체적으로 logging을 지원하지 않으므로 rexec서버도 마찬가지입니다.

1.4. rexec 서버 stop
/etc/xinetd.d/rexec 에서 disable = no를 yes로 변경하고 service xinetd restart




2. rlogin

2.1. rlogin client 사용법

형식)
[root@localhost ~]# rlogin
usage: rlogin [ -8EL] [-e char] [ -l username ] host
[root@localhost ~]#

예)
[root@localhost ~]# rlogin rlogin-server.co.kr



2.2. rlogin 서버 실행 여부 확인
netstat -ntlp 로 tcp 513 포트가 xinetd 프로세스로 listen 상태면 rlogin server 실행 중

2.3. rlogin 서버에서 접속기록 확인
rsh-server 패키지 자체적으로 logging을 지원하지 않으므로 rlogin은 logging 미지원입니다.
rlogin 클라이언트로 rlogin 서버에 접속한 상태에서 rlogin 서버에서는 who나 w 명령어로 rlogin 세션 확인 가능합니다.


2.4. rlogin 서버 stop
/etc/xinetd.d/rlogin 에서 disable = no를 yes로 변경하고 service xinetd restart




3. rsh

3.1. rsh 클라이언트 사용법

형식)
[root@localhost ~]# rsh
usage: rsh [-nd] [-l login] host [command]
[root@rsh-client ~]#

예)
[root@rsh-client ~]# rsh -l root rsh-server.co.kr ls -l /
(rsh-client에서 이 명령을 실행하면 rsh-server.co.kr 안에서 ls -l / 수행됨)

3.2. rsh 서버 실행 여부 확인
netstat -ntlp 로 tcp 514 포트가 xinetd 프로세스로 listen 상태면 rsh server 실행 중

3.3. rsh 서버에서 접속기록 확인
역시 rsh-server 패키지 자체적으로 logging을 지원하지 않으므로 rsh서버도 마찬가지입니다.
실시간으로는 오직 netstat 로 가능합니다.

strace 명령을 응용하여 접속 기록 저장 가능합니다.

참고링크 : http://people.redhat.com/kzak/docs/rsh-rlogin-howto.html

① /root/rsh-strace.sh 이름의 쉘스크립트 생성

#!/bin/bash
/usr/bin/strace -f -o /tmp/rsh-server.trace /usr/sbin/in.rshd

② /etc/xinetd.d/rsh 를 아래와 같이 수정, service xinetd restart.

service shell
{
        socket_type             = stream
        wait                    = no
        user                    = root
        log_on_success          += USERID
        log_on_failure          += USERID
        server                  = /root/rsh-strace.sh
        disable                 = no
}

③ /tmp/rsh-server.trace 실시간 확인하면 됩니다.

이 strace 방법은 rlogin의 경우 /usr/sbin/in.rlogind, rexec의 경우 /usr/sbin/in.rexecd으로 같은 방법을 적용하면 될 것으로 보입니다.

3.4. rsh 서버 stop
/etc/xinetd.d/rsh 에서 disable = no를 yes로 변경하고 service xinetd restart

Creative Commons License
2017/07/11 10:15 2017/07/11 10:15