작성자: 주인장 디지문
(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
2017/07/11 10:15
2017/07/11 10:15