[보안][네트워크] redhat 7.x 에서 rlogin,rsh 사용법 (아랑)
Redhat 7.x 에서 rsh,rlogin 사용하기
작성자 : 서진우 ( alang at sysmng.com ) –
2001/11/8
——————————————————————————-
Redhat 7.x 대에서 rsh, rlogin 사용 방법에 대해 알아보자.
rsh. rlogin 을 사용하기 위해서 기본적으로 rsh, rlogin 서비스를 하는 Server 에 하는
설정과 rsh, rlogin 명령어를 사용하는 Client 에 필요한 설정으로 나누어 진다.
1. Server 측 설정
/etc/xinetd.d 디렉토리 안의 rsh, rlogin 항목을 체크하고 xinetd 데몬에서 사용이
가능하도록 설정한다.
# vi /etc/xinetd.d/rlogin
——————————————————————–
service login
{
disable = no
socket_type = stream
wait = no
user = root
log_on_success += USERID
log_on_failure += USERID
server = /usr/sbin/in.rlogind
}
~
# vi /etc/xinetd.d/rsh
——————————————————————-
service shell
{
disable = no
socket_type = stream
wait = no
user = root
log_on_success += USERID
log_on_failure += USERID
server = /usr/sbin/in.rshd
}
이와 같이 rsh, rlogin 서비스를 사용하기 위해서는 xinetd 해당 설정파일의 disable 항목
을 no 로 해 주어야 한다. 그런뒤 xinetd 를 재시작해서 적용하도록 한다.
# /etc/rc.d/init.d/xinetd restart
그런뒤 /etc/securetty 에 rsh, rlogin 이 이용되어지는 접속 콘솔 지정을 해줘야 한다.
securetty 파일 제일 하단에 rsh 와 rlogin 을 추가해 주면 된다.
# vi /etc/securetty
——————————————————————
.
.
.
tty8
tty9
tty10
tty11
rsh
rlogin
그런뒤 이쪽 서버에 rsh, rlogin 명령어를 사용해 remote shell 을 이용할수 있는 클라이언트
를 지정해 준다.
.rhosts 파일은 client 측에서 server 측의 어떤 계정으로 들어 올건지를 설정한다.
server 의 root 홈디렉토리 및에 .rhosts 파일을 만들면 client 에서는 server 의 root 계정
으로 들어오게 된다.
# vi /root/.rhosts
——————————————————————-
192.168.1.2 root
위 설정은 이 서버에 192.168.1.2 호스트에서 root 계정에서 rsh, rlogin 명령을 사용하여
server 의 root 로 들어 올수 있다는 의미임.
만일 192.168.1.2 호스트에서 user 라는 계정으로만 rsh, rlogin 을 사용해서 server 의 root
로
접속하기 위해선 … 서버측 호스트의 /root 에서..
# vi /root/.rhosts
——————————————————————-
192.168.1.2 alang
이와 같이 하면 된다.
그런뒤 이 파일의 퍼미션을 변경해 준다.
# chmod 600 /root/.rhosts
그런뒤 /etc/hosts 에 서버와 클라이언트 호스트 정보를 적어 준다.
# vi /etc/hosts
——————————————————————-
192.168.1.1 server
192.168.1.2 client
그런뒤 /etc/hosts.deny , /etc/hosts.allow 에 Tcp wrapper 설정으로 한단계 더 보안을
강화해
준다.
# vi /etc/hosts.deny
——————————————————————-
in.rshd,in.rlogind : ALL : twist ( /etc/host-check Y Y %a %c %d %h %n %p %s %u ) &
# vi /etc/hosts.allow
——————————————————————-
in.rshd,in.rlogind : 192.168.1.1,192.168.1.2
이와 같이 hosts.deny 에서 모든 host 에서의 rsh, rlogin 서비스를 막고, 다시
/etc/hosts.allow
에서 192.168.1.1 , 192.168.1.2 에서만 사용할 수 있도록 허가를 해준다.
# vi /etc/host-check
——————————————————————-
#!/bin/sh
################################ 변수정의부문
# 메일 수신자
mailto=관리자 이메일
# 화면출력 여부, 메일전송 여부
dsp=$1; msg=$2
# 접속자 정보 등
a=$3; c=$4; d=$5; h=$6; n=$7; p=$8; s=$9; u=$10
# 현재 시간
time=`date`
# 접속시도자 소속 서버의 finger 정보
finger=`/usr/bin/finger -l @$h 2> /dev/null`
################################ 화면 출력부문
if [ $dsp = Y ]
then
echo ”
===================================
접속이 허용되지 않습니다.
===================================
Access Time : $time
Client host address : $a
Client information : $c
Client host name(or IP) : $h
Client host name : $n
Client user name : $u
”
fi
################################ 메일 송신부문
if [ $msg = Y ]
then
/bin/echo ”
===============================
접속 거부자 상세정보
===============================
Access Time : $time
Access client host address : $a
Access client information : $c
The daemon process name : $d
Access client host name(or IP) : $h
Access client host name : $n
The daemon process id : $p
Server information : $s
Access client user name : $u
————————————–
Access client finger information
————————————–
$finger
————————————————
” | \\
/bin/mail -s “tcp_wrapper report [$d]” $mailto
/etc/host-check 스크립트는 만일 앞에서 허가한 두개의 host 이외의 곳에서 접속시도를
하면 위의 메세지를 뿌려 주고 관리자 한테 접속시도자의 host 정보를 메일로 보내준다.
host-check 스크립트에 실행 권한을 준다.
# chmod 755 /etc/host-check
서버측 설정은 이걸루 마친다.
2. Client 설정
/etc/hosts 에 Sever, Client 의 host 정보를 입력한다.
# /etc/hosts
——————————————————–
192.168.1.1 server
192.168.1.2 client
이제 client 에서 server 로 rsh, rlogin 을 이용해서 접속을 해보자
3. rsh, rlogin 사용법
rsh 사용법
usage: rsh [-nd] [-l login] host [command]
– rsh 를 이용한 접속법
[root@client root]# rsh server
Last login: Fri Jul 26 15:34:43 from tech
You have new mail.
[root@server root]#
– remote shell 사용법
[root@client root]# rsh server ps
PID TTY TIME CMD
1 ? 00:00:04 init
2 ? 00:00:00 keventd
3 ? 00:00:00 kapmd
4 ? 00:00:00 ksoftirqd_CPU0
5 ? 00:00:00 kswapd
6 ? 00:00:00 bdflush
7 ? 00:00:00 kupdated
8 ? 00:00:00 mdrecoveryd
12 ? 00:00:00 kjournald
91 ? 00:00:00 khubd
247 ? 00:00:00 kjournald
248 ? 00:00:00 kjournald
594 ? 00:00:00 eth1
665 ? 00:00:00 syslogd
670 ? 00:00:00 klogd
712 ? 00:00:00 sshd
761 ? 00:00:00 sendmail
780 ? 00:00:00 crond
808 ? 00:00:00 vmnet-bridge
831 ? 00:00:00 vmnet-natd
1153 ? 00:00:00 login
1165 ? 00:00:00 vmnet-netifup
1171 ? 00:00:00 vmnet-netifup
1235 ? 00:00:00 vmnet-dhcpd
1237 ? 00:00:00 vmnet-dhcpd
1238 ? 00:00:01 vmware-nmbd
1240 ? 00:00:00 vmware-smbd
4951 ? 00:00:43 X
6170 ? 00:00:00 xinetd
6356 ? 00:00:00 in.rshd
6357 ? 00:00:00 ps
위의 “rsh server ps” 명령어는 client host 에서 server host 로 접속하지 않고도
server host 의 process check 명령어 ps 를 이용하는 예제 이다.