나의 IT일지
telnet 서버와 xinet 본문
서버
서버란 서비스를 제공하는 프로그램이 설치되어 있는 컴퓨터로, 클라이언트가 서비스를 요청하면 서버는 해당 서비스가 존재하면 클라이언트에게 서비스를 제공한다. 이때 클라이언트에는 해당 서버의 서비스를 사용하기 위해서 서비스에 맞는 클라이언트 프로그램이 설치되어 있어야 한다.
- 프로그램 설치
- yum install [패키지명] : 해당 패키지를 설치하는 명령어
- rpm -qa [패키지명] : 해당 패키지가 설치 되었는지 확인하는 명령어
- rpm -ql [패키지명] : 패키지를 구성하는 파일 확인하는 명령어
- /usr/lib/systemd/system/[데몬].service : 서버 패키지의 데몬 파일
- /etc/[데몬]/[데몬].conf : 서버 패키지의 설정파일
- /usr/sbin/[데몬] : 서버 실행 파일
- yum install [패키지명] : 해당 패키지를 설치하는 명령어
- 서버 활성화
- service [데몬 명] start : 서버를 활성화 하는 명령어 (= systemctl start [데몬 명] (in Centos7))
- service [데몬 명] stop : 서버를 비 활성화 하는 명령어 ( = systemctl stop [데몬 명] (in Centos7))
- service [데몬명] restart : 서버를 재 활성화 하는 명령어 ( =systemctl restart [데몬 명] (in Centos7))
- netstat -lntup |grep [데몬 명] : 현재 운영체제에서 사용중인 포트와 해당 포트를 사용하는 서비스를 확인하는 명령어
- 데몬 자동 실행
- chkconfig --level 35 [데몬 명] on : 해당 데몬은 런레벨 3, 5일 때, 자동적으로 실행하게 하는 명령어
- systemctl enable [데몬 명] : 해당 데몬은 운영체제가 실행되었을 때, 자동 실행 하도록 하는 명령어
- systemctl list-unit-files : 자동실행 프로세스를 확인하는 명령어
- 방화벽 설정
- service firewalld stop : 방화벽을 비활성화 하는 명령어
- service firewalld start : 방화벽을 활성화 하는 명령어
- service firewalld restart : 방화벽을 재 활성화 하는 명령어
- firewall-cmd --add-service=[서비스 명] : 해당 서버의 방화벽 해제 (재부팅시 내용삭제)
- /etc/services 파일에 서비스마다 사용하는 포트가 저장되어 있으며, 해당 파일을 기반으로 방화벽 설정
- firewall-cmd --permanent --add-service=[서비스명] : 해당 서버의 방화벽을 영구적으로 해제
- firewall-cmd --add-port=[포트번호/tcpudp] : 해당 포트의 방화벽 해제 (재부팅시 내용삭제)
- firewall-cmd --permanent --add-port=[포트번호/tcpudp] : 해당 포트의 방화벽을 영구적으로 해제
- firewall-cmd --reload : 방화벽 재적용
- firewall-cmd --list-all : 방화벽 적용상태 확인
- firewall-cmd --add-service=[서비스 명] : 해당 서버의 방화벽 해제 (재부팅시 내용삭제)
방화벽이 설정된 서버 접속 | 방화벽이 해제된 서버 접속 |
telnet 서버
Telnet은 23번 포트를 사용하는 원격 접속 서비스로, 서버에 텍스트 기반의 터미널 세션을 연결해서 사용되는 프로토콜이다.
- Telnet 서버 패키지 : Telnet-server
- /usr/lib/systemd/system/telnet.socket : telnet 서버 데몬 파일
- /usr/sbin/in.telnetd : telnet 서버 데몬 실행 파일
- Telnet 클라이언트 패키지 : Telnet
- /usr/bin/telnet : telnet 클라이언트 데몬 실행 파일
이때, Telnet의 데이터 전송은 평문형으로 패킷이 전달이 되기에, 스니핑를 통해 해당 서버의 계정과 비밀번호를 알 수 있다.
그래서 kerberos 서버를 통해 패킷을 인증시키며, 인증받은 패킷의 데이터는 암호화가 된다. 이런 방식으로 Telnet의 데이터 평문 내용을 암호화 함으로써 스니핑을 보안한다. 하지만 최근에는 암호화 기능이 있는 원격접속 서비스인 SSH를 사용하고 있다.
kerberos 서버 |
네트워크 보안 인증 서비스를 제공하는 서버로, 평문으로 구성되어 있는 패킷의 데이터를 안전하게 전송하기 위해 사용된다. kerberos 인증 서버를 통해 패킷의 인증을 받으면, 티켓 서버에서 해당 패킷에 대한 티켓이 발급된다. 그리고 발급된 티켓과 인증된 패킷을 통해 서버와 연결을 하는데, 이때 사용되는 패킷의 데이터는 암호화가 되어 있다. |
Telnet 서버 접속
클라이언트에서 Telnet 서버로 접속하기 위해서는 클라이언트 프로그램을 설치돠어야 telnet 서버의 접근이 가능하다.
- telnet [서버 IP주소 / 서버 도메인] : Telnet 서버에 접속하는 명령어
- Centos 7의 telnet 클라이언트 설치 방법 : yum install telnet
- 윈도우 telnet 클라이언트 설치 방법 : 제어판\모든 제어판 항목\프로그램 및 기능 → window 기능 켜기 끄기를선택 → 텔넷 활성화
- 그 외 클라이언트 프로그램 : putty
Telnet 서버 root 계정 접속 설정 |
서버는 보안상 root계정의 접속하지 못하도록, 원격 접속에 대한 터미널을 허용하지 않고 있다. 그래서 root가 Telnet 서버를 통해 접속하기 위해서는 원격 접속 터미널을 허용할 필요가 있다.
|
xinet
보통 클라이언트가 서버에 1대1방식으로 단독적으로 접근한다. 이렇게 클라이언트가 서버로 바로 접근하는 방식을 standardalone 방식이라고 하는데, 이렇게 접근하는 서버는 서버마다 각각 설정을 따로 해야 한다.
반면 클라이언트가 서버에 직접적으로 접근하는 것이 아닌 네트워크 접속을 대리해서 접근하는 방식이 있는데 이를 슈퍼데몬 방식이라고 한다.
슈퍼데몬 방식은 xinet 서버를 통해 운영되는데, xinet 서버는 여러 서비스가 관리를 하는 서버로, 만약 클라이언트가 접근하고 싶은 서버가 xinet서버가 관리하는 서버일 경우, 직접적으로 원하는 서버에 접근하지 않고 xinet 서버를 거쳐서 원하는 서버에 접근 한다.
- xinet 서버 패키지 : xinetd
- /usr/lib/systemd/system/xinetd.service : xinet 서버 데몬 파일
- /usr/sbin/xinetd : xinet 서버 데몬 실행 파일
- /etc/xinetd.conf : 1차 접근 제한 설정 파일
- /etc/xinetd.d : xinet서버가 관리하는 서비스의 접근 제한(2차 접근 제한) 설정 파일을 저장하는 디렉토리
접근 제한 설정
클라이언트가 xinet서버로 접근하는 것을 1차 접근이라고 하며, xinet서버를 통해 원하는 서버로 접근하는 것을 2차 접근이라고 한다. 이때, xinet을 거쳐서 원하는 서버에 접근하기에 원하는 서버의 방화벽은 해제되어 있어야 한다.
- 1차 접속제한 : 모든 서버에서 공통적으로 설정
- 사용 설정 파일 : /etc/xinetd.conf
- 서비스 활성화 비활성화
- enabled : 해당 설정에 작성된 서비스에만 접근 가능
- disabled : 해당 설정에 작성된 서비스는 접근 불가능
- 로그 기록 방식
- log_type : 기록 방식
- log_on_failure : 로그인 실패시 남길 기록
- log_on_success : 로그인 성공시 남길 기론
- 접속 설정
- only_from : 해당 설정에 작성된 IP주소만 접근 가능 (화이트 리스트)
- no_access : 해당 설정에 작성된 IP주소는 접근 불가 (블랙 리스트)
- cps = [접속 횟수] [접속 제한] : 1초당 접속 횟수가 넘을 시 일정 시간동안 접속제한 설정
- instances = [최대 세션 수] : 최대 접속자 (세션수)
- per_source = [세션 수] : 출발지 IP 1개당 접속 가능 세션
- 서비스 활성화 비활성화
- 사용 설정 파일 : /etc/xinetd.conf
- 2차 접속 제한 : 서버마다 다르게 설정 가능
- 사용 설정 파일 : /etc/xinetd.d/[서비스명]
- service [서비스명] : xinetd서버에 관리당할 서비스
- flags : 소켓플래그( REUSE : 접속종료후 재사용가능 )
- socket_type : 소켓 종류 (stream : TCP소켓,dgram : UDP 소켓)
- wait : 대기시간
- user : 실행사용자
- server : 서버프로그램(데몬 실행 파일) 위치
- log_on_failure : 로그실패시에 기록할 것
- disable : 해당 서버 비활성화 여부
- only_from : 해당 설정에 작성된 IP주소만 접근 가능 (화이트 리스트)
- no_access : 해당 설정에 작성된 IP주소는 접근 불가 (블랙 리스트)
- 사용 설정 파일 : /etc/xinetd.d/[서비스명]
service [서비스명]
{
flags = REUSE
socket_type = stream
wait = no
user = root
server = [데몬 실행 경로]
log_on_failure += USERID
disable = no
}