[Linux] 텔넷 서버 설치
programming/os

[Linux] 텔넷 서버 설치


14. 텔넷 서버 설치


14.1 telnet


14.1.1 인터넷을 통하여 원격지의 호스트 컴퓨터에 접속할 수 있도록 지원하는 인터넷 표준 프로토콜

14.1.2 1969년에 개발된 최초의 인터넷 표준들 가운데 하나

14.1.3 사용자가 마치 자신의 pc를 사용하는 것처럼 원격지의 컴퓨터를 사용하도록 해주는 프로그램

14.1.4 기본적으로 23번 포트 사용

14.1.5 일반적으로 리눅스 서버에 원격으로 접속하여 작업을 하게 됨

14.1.6 보안에 취약한 단점이 있으므로 putty 등의 SSH(보안 로그인 쉘)를 사용하는 것을 권장함


14.2 telnet 설치


14.2.1 설치확인

rpm -qa telnet-server


14.2.2 설치

yum -y install telnet-server


에러가 날 경우 DNS서버 편집

gedit /etc/resolv.conf


마지막 줄에 추가(한국통신의 네임서버 추가)

nameserver 168.126.63.1


14.2.3 텔넷 서비스 시작

systemctl start/stop/restart/status 서비스이름

systemctl start telnet.socket


서비스 상태 확인(23 포트 확인)

systemctl status telnet.socket


서비스 자동 시작

systemctl enable telnet.socket


23번 포트 개방

firewall-cmd    --add-port=23/tcp    --permanent

firewall-cmd    --reload


ip주소 확인

ifconfig


14.2.4 윈도우에서 putty로 접속(포트 : 23, 접속방법 : telnet)

root 계정은 기본적으로 막혀있으므로 centos 계정으로 로그인


root 계정은 외부에서 접속하는 것이 위험할 수 있으므로 centos 계정으로 로그인한 후 su 명령어를 입력하여 root 사용자로 변경하는 방법을 권장함


root 계정으로 텔넷에 접속하려면 /etc/securetty 파일을 삭제하면 됨(보안 설정파일을 편집하기 전에 미리 백업)

mv /etc/securetty    /etc/securetty.bak


이제 텔넥에서 root 계정으로 접속이 가능함

테스트를 완료한 후 다시 보안 설정파일을 복구해야 외부에서 root 계정으로 접속할 수 없음


설정파일 복구

mv /etc/securetty.bak    /etc/securetty


14.3 telnet 통신과 SSH 통신의 비교


14.3.1 와이어샤크 프로그램 설치

패킷 캡쳐 프로그램


http://www.wireshark.org

윈도우즈에서 다운로드 받아 설치

상어가 물듯이 패킷을 잡아내는 프로그램


리눅스 서버의 ip 주소 확인

ifconfig


윈도우즈의 cmd에서 ip 주소 확인

ipconfig


윈도우즈 VMnet8의 ip 주소와 리눅스 ip 주소 비교


와이어샤크를 처음 실행하면 패킷을 관찰할 랜카드를 선택해야 함

VMware와의 통신을 관찰해야 하므로 VMnet8을 더블클릭




14.3.2 리눅스의 http 통신 패킷 관찰

상어 아이콘을 누르면 패킷 수집 작업 시작

빨간색 사각형 아이콘을 누르면 패킷 수집 작업 중지


리눅스에서 웹브라우저를 실행하고 웹서핑을 한 후 와이어샤크에서 수집된 패킷들 확인


필터에 입력

http

http 통신만 화면에 선택됨

패킷을 선택한 후 우클릭, Follow → TCP Stream을 클릭하면 수집된 패킷 내용이 표시됨


http && ip.src == 리눅스IP주소

http 통신 중에서 ip 주소의 출발지가 리눅스 서버의 ip인 패킷만 선택


14.3.3 telnet 통신 패킷 관찰

putty에서 텔넷으로 접속하여 여러가지 명령어를 실행한 후 와이어샤크에서 패킷 확인


와이어샤크에서 필터 입력

tcp


tcp 프로토콜 and ip 주소가 192.168.23.129인 패킷들을 표시

ip.addr : 출발지 or 도착지의 ip 주소

tcp && ip.addr == 리눅스IP주소


ip.dst_host : 도착지의 IP 주소

telnet && ip.dst_host == 리눅스IP주소


telnet 통신에서는 평문이 전달되지만 SSH 통신에서는 암호화된 패킷으로 전달된다.


14.3.4 웹서비스에 대한 패킷 관찰

리눅스에서 tomcat 구동

/home/centos/tomcat9/bin/startup.sh


윈도우즈에서 접속

http://리눅스아이피:8080/spring_linux


와이어샤크에서 필터 입력

http && ip.src == 출발지 ip 주소 && ip.dst_host == 리눅스 ip 주소


예를 들어 아래와 같이 입력

ip.src에는 윈도우즈의 VMnet8의 ip 주소 입력

ip.dst에는 리눅스서버의 ip 주소 입력

http && ip.src == 192.168.10.1 && ip.dst == 192.168.10.131

http 통신 중에서 출발지의 ip 주소가 192.168.10.1이고 도착지의 ip 주소가 192.168.10.131인 패킷 목록 출력


image


login_check.do 패킷을 선택한 후 우클릭, Follow → HTTP Stream을 클릭하면 수집된 패킷 내용이 표시되고 사용자가 로그인을 위해 입력한 아이디, 비밀번호가 표시됨(웹서버에 평문이 전송되고 있음)


수집된 패킷 확인

POST /spring_linux/admin/login_check.do HTTP/1.1

Host: 192.168.10.131:8080

Connection: keep-alive

Content-Length: 24

Cache-Control: max-age=0

Origin: http://192.168.10.131:8080

Upgrade-Insecure_Requests: 1

Content-Type: application/x-www-form-urlencoded

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36

(KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36

Accept:

text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8

Referer: http://192.168.10.131:8080/spring_linux/admin/login.do

Accept-Encoding: gzip, deflate

Accept-Language: ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7

Cookie: JSESSIONID=23F9A65752EADB8EB984DE80E2865746


userid=admin&passwd=1234HTTP/1.1 200

Content-Type: text/html;charset=UTF-8

Content-Language: ko-KR

Content-Length: 1040

Date: Wed, 07 Mar 2018 20:39:33 GMT