보안쉘(SSH)을 확장하여 안정된 서비스 유지를 위한 서버 연결 자동화 시스템 설계
An extended security shell design for maintaining a stable service to automate the connection of the server
- 주제(키워드) 보안쉘 , SSH , 서버 연결
- 발행기관 서강대학교 정보통신대학원
- 지도교수 장직현
- 발행년도 2009
- 학위수여년월 2009. 2
- 학위명 석사
- 실제URI http://www.dcollection.net/handler/sogang/000000044836
- 본문언어 한국어
초록/요약
Secure Shell or SSH is a network protocol that allows data exchange by using a secure channel between two networked devices. SSH has been designed to be used as a replacement for TELNET and other insecure remote shells, which send information, particularly passwords, in plain text, thereby leaving them open to interception. The encryption used by SSH provides confidentiality and integrity of data over an insecure network such as the Internet. Since data sent and received over a network via the SSH is protected from most security threats, SSH is widely used in TCP-based clients/servers. With an increase in the number of clients, load on the server increases, and hence, enterprises expand one or more of the servers that provide the same service. In order to extend the benefits of SSH to one of the expanded servers, it is necessary for the client to manually change the information regarding the connection set. Because of this, the client may not be able to provide the service provided by the enterprise within a short time. Further, even during the inspection of a server or in the case of disruption of maintenance services, the enterprise continues to provide services through another server; however, in such a situation, the benefits of SSH may not be availed of. To solve these problems, in this thesis, we have designed an extended SSH that can automate a connection to a server. This SSH includes a server and a client. Our system, which includes the abovementioned SSH, can be used to solve the problems mentioned in the previous paragraph. This system enables secure transfer of data over the network and helps maintain a stable service level.
more초록/요약
보안쉘 또는 SSH는 네트워크상의 보안 채널을 형성하여 데이터를 교환할 수 있는 프로토콜을 말한다. 이러한 SSH는 평문이나 패스워드의 전송으로 기존의 텔넷과 보안이 되지 않는 원격 로그인을 대체하기 위해서 설계되었다. 보안쉘이 제공하는 암호화 방식은 인터넷이나 보호되지 않은 네트워크상에서 데이터에 대한 기밀성과 무결성을 제공한다. 이를 적용함으로써, 네트워크 상에서 발생하는 다양한 보안의 위협으로부터 보호받을 수 있어서 현재까지도 텔넷 외에도 TCP기반으로 운영되는 다양한 서버와 클라이언트 단에서 사용되고 있다. 기업에서는 클라이언트에서 서버로의 접속 량이 증가하여 서버의 부하가 증가하게 되면 동일한 서비스를 제공해주는 한대 이상의 서버를 증설하게 된다. 이렇게 증설된 서버에 보안쉘을 적용하여 연결을 하려면 클라이언트에서는 보안쉘에 대한 접속정보를 수동으로 바꿔줘야 하는 불편함이 있다. 그래서 이러한 불편함으로 인하여 클라이언트는 잠시 동안 기업에서 제공해주는 서비스를 제공받지 못할 수 있다. 또한 서버에 대한 점검이나 장애가 발생한 상태에서 서비스 유지를 위해 대체 서버로의 연결을 통해서 지속적으로 서비스를 제공하고 싶을 경우에도 마찬가지로 보안쉘에 대한 적용에 어려움이 많이 있다. 이러한 문제점을 해결하기 위해서 이 논문에서는 서버에 대한 연결을 자동화 할 수 있는 확장된 보안쉘을 설계하였다. 보안쉘은 크게 두 가지 요소인 SSH Server와 SSH Client로 구성되어 있다. 이 논문의 연구 시스템은 보안쉘의 구성요소 외에 다른 구성 요소를 추가함으로써, 네트워크를 통해 송수신되는 데이터에 대한 보안의 효과를 높임과 동시에 안정된 서비스를 유지할 수 있게 된다.
more목차
제1장 서론 = 1
제1절 연구의 배경 및 목표 = 1
제2절 논문의 구성 = 2
제2장 관련 연구 = 4
제1절 SSH의 소개 = 4
제2절 SSH 프로토콜 = 6
(1) 전송 계층 프로토콜 = 7
(2) 사용자 인증 프로토콜 = 8
(3) 연결 프로토콜 = 12
제3절 SSH 터널링 = 14
(1) SSH 포워딩 = 14
(2) Local port forwarding과 Remote port forwarding = 15
제3장 SSH의 문제점 분석 및 연구 시스템의 필요성 = 18
제1절 SSH의 문제점 분석 = 18
제2절 연구 시스템의 필요성 = 21
제4장 연구 시스템의 설계 및 활용 방안 = 23
제1절 연구 시스템에 SSH의 터널링을 적용한 영역 = 23
제2절 ESSH의 요구사항 및 기본원리 = 24
제3절 ESSH 구성요소 및 역할 = 25
(1) ESSH Client = 26
(2) ESSH Server = 28
제4절 연구 시스템의 적용 방법과 처리과정 = 32
(1) ESSH Server(Master)를 이용한 서버 연결 자동화 = 32
(2) ESSH Server(Master & Slave)를 이용한 서버 연결 자동화 = 34
(3) ESSH Server(Slave)의 독립적인 운영 = 36
(4) 한 Host내에서 ESSH Server(Slave)와 ESSH Client를 운영 = 37
(5) 장애발생시 ESSH Server(Master)를 이용한 대처 = 39
제5절 연구 시스템을 이용한 기대 효과 = 40
(1) 보안성 = 40
(2) 경제성 = 41
(3) 투명성 = 41
(4) 레거시(legacy) 시스템의 적용 가능 = 41
(5) 전문 개발인력 부재에 대한 대응 = 41
제5장 연구 시스템 구현 및 성능 분석 = 43
제1절 연구 시스템 구현 = 43
(1) 주요 사용 기술 = 43
(2) ESSH Client의 구성 = 45
(3) ESSH Server의 구성 = 47
제2절 성능분석 = 48
(1) 테스트 환경 구성 = 48
(2) SSH만 적용한 시스템과 연구 시스템을 적용한 시스템의 성능 비교 = 51
(3) 동시 접속에 대한 성능 검증 = 53
제6장 결론 및 향후 과제 = 57
참고문헌 = 58
그림목차
그림 1. Telnet과 SSH 접속 = 5
그림 2. 공개키를 사용하는 사용자 인증 과정 = 9
그림 3. 비밀번호를 사용하는 사용자 인증 = 10
그림 4. 채널 데이터 전송 과정 = 13
그림 5. SSH 포워딩 = 14
그림 6. Local port forwarding = 16
그림 7. Remote port forwarding = 17
그림 8. local port forwarding(한 개의 서버) = 18
그림 9. local port forwarding(두 개의 서버) = 19
그림 10. 클라이언트 Host내에서 Application과 ESSH Client = 27
그림 11. ESSH Server(Master) 맵핑 트리 구조 = 29
그림 12. ESSH 터널링을 통한 데이터 보호 = 31
그림 13. ESSH Server(Master)를 이용한 서버 연결 자동화 = 33
그림 14. ESSH Server(Master)를 이용한 서버 연결 자동화(터널링) = 34
그림 15. ESSH Server(Master & Slave)를 이용한 서버 연결 자동화 = 35
그림 16. ESSH Server(Master & Slave)를 이용한 서버 연결 자동화(터널링) = 36
그림 17. ESSH Server(Slave)의 독립적인 운영 = 36
그림 18. ESSH Server(Slave)의 독립적인 운영(터널링) = 37
그림 19. 한 Host내에서 ESSH Server(Slave)와 ESSH Client를 운영 = 38
그림 20. 한 Host내에서 ESSH Server(Slave)와 ESSH Client를 운영(터널링) = 38
그림 21. 장애발생시 ESSH Server(Master)의 운영 = 39
그림 22. 장애발생시 ESSH Server(Master)의 운영 (터널링) = 40
그림 23. ESSH Client 화면 = 47
그림 24. ESSH Server의 메인 화면 = 48
그림 25. SSH만 적용한 시스템 = 50
그림 26. 연구 시스템을 적용한 시스템 = 50
그림 27. 서버연결 시간 측정 그래프 = 52
그림 28. 데이터 전송 속도 측정 그래프 = 52
그림 29. 동시 접속 성능 테스트 프로그램 = 53
그림 30. 연결 정보 수집을 위한 구조 = 54
그림 31. ESSH Server(Master)처리량 = 55
그림 32. ESSH Server(Slave)처리량 = 55
표목차
표 1. 공개키를 사용하는 사용자 인증 과정에서의 인증 요구 메시지 형태 = 10
표 2. 비밀번호를 사용하는 사용자 인증과정에의 메시지 형태 = 11
표 3. 호스트 기반 사용자 인증과정에서의 메시지 형태 = 11
표 4. 채널연결에 따른 메시지 형태 = 12
표 5. 채널에 실제 데이터 전송 메시지 형태 = 13
표 6. ESSH 구성요소 및 역할 = 26
표 7. ESSH Client 맵핑 테이블 = 28
표 8. ESSH Server(Slave) 맵핑 테이블 = 30
표 9. ESSH Server(Master)를 이용한 서버 연결 자동화 처리 과정 = 33
표 10. ESSH Server(Master & Slave)를 이용한 서버 연결 자동화 처리 과정 = 35
표 11. ESSH Server(Slave)의 독립적인 운영에서 처리 과정 = 37
표 12. COM 형태의 ESSH Client의 메소드 = 46
표 13. Netcat 실행 명령어 = 49
표 14. [그림 25]와 [그림 26]의 성능 측정 = 52
표 15. ESSH Server의 동시 접속시의 성능 평균치 = 55