Ubuntu16.04에 Telnet 서버 구축 후 putty 접속

2020. 5. 19. 16:51개인 공부/리눅스 공부

 

  • telnet 관련 패키지 설치 

 

 

 

$apt-get -y install xinetd telnetd

 

 - xinetd 란?

 

1) 리눅스의 데몬은 크게 2가지로 구분 가능 

 

 1.1) Standalone 방식의 init 데몬, 요청에 의해 실행되는 Xinetd 네트워크 슈퍼 서비스 데몬

구 분 XINETD 환경에서 서비스되는 데몬들 STANDALONE으로 서비스되는 데몬들
의 미 xinetd데몬에 의해 실행되고 종료됨 xinetd와는 무관하게 독립적으로 서비스됨
메 모 리
상 주
xinetd에 의해 불려졌을 때만 메모리에 올려졌다가 서비스가 종료되면 메모리에서 제거됨. 따라서 메모리에 상주하지 않음.
주의: xinetd데몬 자체는 메모리에 상주함
항상 메모리에 독립적인 데몬으로 상주하고 있음.
응답속도 xinetd를 거쳐서 해당 서비스를 실행하기 때문에 standalone보다는 느림. 서비스 요청이 있을 경우 바로 응답을 하기 때문에 xinetd환경의 서비스 보다는 응답속도가 빠름.
설정파일 대부분 /etc/xinetd.d/서비스명 으로 설정파일이 존재함. 해당 프로그램이 설치된 위치에 독립적인 설정파일이 존재함. (rpm으로 설치되었을 경우에는 대부분 /etc디렉토리에 존재함.)
접근제어 tcp_wrapper에 의해서 접근제어됨.
데몬명 : tcpd
(/etc/hosts.allow, /etc/hosts.deny)
접근제어를 자체적으로 하거나 아니면, 하지 않음. (시스템 자체의 방화벽(iptables등)과는 별도의 의미)
장 점 통합관리가능, 자원절약(메모리절약등), 접근제어가능 빠른응답속도
단 점 응답속도가 느림 자원낭비(메모리상주), 개별관리
서비스예 telnet, ftp, pop등 httpd, mysql, sendmail, named, sshd등
적 용 비교적 서비스요청이 많지 않은 서비스에 적용하는 것이 효율적임. 비교적 서비스 요청이 빈번한 서비스에 적용하는 것이 효율적임
기 타 xinetd로 서비스되는 서비스를 standalone으로 변경이 가능하고, standalone으로 서비스되는 서비스를 xinetd로 변환이 가능함. (지원하지 않는 서비스들도 있음.)

 Xinetd

  - Xinetd는 네트워크 관련 작업을 대신해줌, 접속 요청이 들어오면 요청을 tcpd에 넘기게 되고

    tcpd는 접근 제어파일의 룰을 검토 후 요청을 처리함

  - tcpd의 접근 제어파일 : ( host.allow, host.deny ) 

 

  - 룰에의해 통과된 요청들은 Xinetd가 관리하는 서비스 (telnet, ssh, vnc, ftp 등..)가 실행됨

  - tcpd가 호스트를 접근제어하는 방식 -> tcp_wrapper라고 함 (Xinetd에 내장되어 있음)

    (tcpd는 초기 inted를 사용했었음 그러나 취약점이 많아 보안이 패치된 Xinted를 사용함)

 

  • 설정 폴더로 이동하여 설정 파일 편집이 필요 (telnet 파일 생성할 것임) 
$sudo vi /etc/xinetd.d/telnet
  • 아래 내용을 생성한 telnet 파일에 적어주고 저장 후 나옴

service telnet

{

        disable = no

        flags = REUSE

        socket_type = stream

        wait = no

        user = root

        server = /usr/sbin/in.telnetd

        log_on_failure += USERID

}

  • telnet으로 접속 시 사용할 사용자 계정을 추가
$sudo adduser teltest
  • telnet 서버를 start 시킴
$sudo systemctl restart xinetd
  • telnet이 사용하는 23번 tcp와 방화벽을 열어준다
$sudo adduser teltest
  • windows에서 Ubuntu telnet Server 접속  
$sudo systemctl restart xinetd

 

  • 호스트에 연결할 수 없습니다. 포트 23: 연결하지 못했습니다. 에러..
C:\> telnet 10.0.2.15

 

     - 다음과 같이 windows에서 cmd 창으로 telnet 통신을 시도했으나 에러가 뜸.
     - 오류 해결을 위해 아래와 같은 조취를 취함
  • 네트워크 설정 (포트포워딩 설정)

 

 2) 포트 포워딩( Port Forwarding )

  - 포트 포워딩이란 특정 IP address와 Port Number를 가진 패킷을 받았을 때, 사용자가 그 패킷을 받을 프로세스를 

    미리 설정한 포트 번호를 통해 지정해주는 것을 의미함.

 

  ex) 192.x.x.x 라는 IP로 패킷을 전송 -> 192.x.x.x 컴퓨터는 패킷을 받음 -> 패킷 처리를 어떤 프로세스에게 보낼지 

      모름 (포트 포워딩이 필요한 이유) -> 패킷을 받을 프로세스를 결정해준다.

 

VirtualBox에서 우분투 설정창

     - VirtualBox에서 Ubuntu를 우클릭해 설정에 들어가 네트워크 설정을 해줌, 고급 탭을 클릭하게 되면 포트 포워딩이

       탭이 뜨게됨 

 

포트 포워딩 설정 완료 

 

  • windows에서 접속하기 
C:\>telnet 127.0.0.1

cmd에서 telnet접속 요청

 

 

 

 

 

  • PUTTY를 이용한 Ubuntu telnet Server 접속
C:\> telnet 10.0.2.15

 - putty : http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
   

 - 푸티를 실행하면 위 사진과 같은 화면이 뜸 우리가 설정할 것은 아래와 같음

  1) Host Name (or IP address) 

  2) Port

  3) Connection type

 

 => ip : 127.0.0.1에 port : 23은 자기 자신의 23번 포트에 접속한다는 뜻임.

      23번 포트엔 virtualbox를 통해 우분투를 등록했고, 자기 자신인 127.0.0.1로부터 패킷을 받은 컴퓨터는 23번

      포트인 virtualbox의 우분투로 패킷을 보냄.