Presentation is loading. Please wait.

Presentation is loading. Please wait.

LINUX SECURITY -전송중 데이터 보호-

Similar presentations


Presentation on theme: "LINUX SECURITY -전송중 데이터 보호-"— Presentation transcript:

1 LINUX SECURITY -전송중 데이터 보호-
네트워크 실험실 김 윤 수 #

2 목 차 보안 쉘(ssh) ssh 서버설정 scp:원격 파일 복사 프로그램 서로다른 네트워크에서의 ssh서비스제공
목 차 보안 쉘(ssh) ssh 서버설정 scp:원격 파일 복사 프로그램 서로다른 네트워크에서의 ssh서비스제공 ssh의 보안사항 참고자료 #

3 ssh(secure shell) 보안쉘(SSH: Secure shell)은 네트워크의 다른 컴퓨터에 로그인 할 수 있으며, 원격 시스템에서 명령을 실행하고, 다른 시스템으로 파일을 복사 할 수 있도록 해주는 프로그램이다. 강력한 인증방법과 안전하지 못한 네트워크에서 안전하게 통신 할 수 있는 기능을 제공한다. #

4 보안쉘이 제공하는 알고리즘(1) Blowfish Triple DES Bruce Schneier 64비트 암호화 기법
크기가 큰 데이터를 빠른 속도로 암화화(DES, IDEA보다 빠름) Triple DES IBM에서 제안 1977년에 개발 1977년발표 일반적인 데이터의 암호화를 위한 미국정부의 표준 DES(Data Encryption Standard) 단순, 객체지향적, 분산환경의 응용에 적합, 인터프리터, 안전, 구조중립, 이식성, 높은 성능, 다중 쓰레드, 동적 견고(포인터X, garbage Collection, 엄격한 형검사, 실시간 에러 처리) 컴파일에 의해 바이트 코드로 변환되고 실행시에 인터프리터에 의해 해석되어 처리. #

5 보안쉘이 제공하는 알고리즘(2) IDEA RSA
IDEA(the International Data Encryption Algorithm) 국제 데이터 알고리즘으로 128비트 키를 사용하는 블록 암호화 알고리즘 TripleDES보다 빠르며 안전 RSA RSA(the Rivest-shamir-Adelman algorithm) 널리사용되는 공용키/개인키 암호화 알고리즘 단순, 객체지향적, 분산환경의 응용에 적합, 인터프리터, 안전, 구조중립, 이식성, 높은 성능, 다중 쓰레드, 동적 견고(포인터X, garbage Collection, 엄격한 형검사, 실시간 에러 처리) 컴파일에 의해 바이트 코드로 변환되고 실행시에 인터프리터에 의해 해석되어 처리. #

6 ssh의 핵심 유티리티 ssh슈트에 있는 프로그램 프 로 그 램 설 명 Make-ssh-known-hosts
프 로 그 램 설 명 Make-ssh-known-hosts 새로운 호스트 데이터베이스를 구축하는 Perl 스크립트 (DNS 을 통해서 명시된 도메인 안에 모든 호스트를 검색한다) Scp 보안 복사 프로그램으로 하나의 호스트에서 다른 호스트로 파일을 복사할때 안전한 방법을 제공. Rcp와 비슷하지만 파일 전송을 수월하게 하기 위해 ssh를 사용한다. Ssh 보안 쉘 클라이언트로 텔넷 클라이언트와 비슷하다. 서버와 연결되면 ssh를 사용하여 기본 시스템 명령을 수행할 수 있다. 모든면에서 ssh세션은 텔넷 세션과 비슷핟. Ssh-add Ssh-agent인증 대리인을 위해 새로운 키를 등록한다. Ssh-agent Ssh를 사용할때 네트워크를 통해 RSA형태의 인증방법을 수행. Sshd Port 22번을 사용하는 보안 쉘 서버 합법적인 ssh클라이언트로 부터 연결요구가 들어오면 세션을 시작한다. Ssj-keygen Ssh를 위한 키 생성기. ssh-keygen을 사용하여 내외부적으로 사용할수 있는 RSA키를 생성할 수 있다. 단순, 객체지향적, 분산환경의 응용에 적합, 인터프리터, 안전, 구조중립, 이식성, 높은 성능, 다중 쓰레드, 동적 견고(포인터X, garbage Collection, 엄격한 형검사, 실시간 에러 처리) 컴파일에 의해 바이트 코드로 변환되고 실행시에 인터프리터에 의해 해석되어 처리. #

7 ssh배포본 설치 http://www.ssh.com * Source location *
ssh tar.gz * source name * gunzip ssh tar.gz * gzip 해제 * tar xvf ssh tar * tar 해제 * cd ssh-2.2.0 ./configure make make install 바이트 코드는 클래스 로더에 의해 로드되며, 바이트 코드 검증기는 프로그램이 수행되기 전에 부적절한 클래스 접근이나 스택의 오버 플로우, 부적절한 형변환을 검사한다. #

8 ssh배포본 설치 [yskim@yskim ssh2]$ pwd /etc/ssh2 [yskim@yskim ssh2]$ ls
hostkey hostkey.pub ssh2_config ssh_dummy_shell.out sshd2_config bin]$ ls * /usr/local/bin * nessus-config* sftp-server2.static* ssh-askpass2* ssh-pubkeymgr* nmap* sftp2* ssh-chrootmgr* nmapfe* ssh-dummy-shell* ssh-signer2* ssh-dummy-shell.static* ssh2* ssh-add2* ssh-keygen2* ssh-agent2* sftp-server2* ssh-probe2* #

9 cofigure 옵션 설명 옵 션 기 능 --with-prefix = PREFIX ssh가 설치될 디렉토리 변경
옵 션 기 능 --with-prefix = PREFIX ssh가 설치될 디렉토리 변경 --without-none 암호화 되지 않은 세션을 지원 --without-idea IDEA지원하지 않음 --without-blowfish Blowfish를 지원하지 않음 --without-rsh rsh를 사용하지 않음을 명시 --with-des DES지원 --with-libwrap[=PATH] TCP Wrappers지원 --with-path=PATH ssh클라이언트로 접속했을때의 위치(사용자의 홈) --with-X X지원 --disable-suid-ssh suid비트를 설정하지 않고 설치 #

10 ssh서버 설정 [yskim@yskim /etc/ssh2]$ ls
hostkey hostkey.pub ssh2_config ssh_dummy_shell.out sshd2_config hostkey host의 비밀키로 개인키이며 보안에 조심해야 하는 화일 hostkey.pub host를 나타내는 공개키 ssh2_config ssh클라이언트의 설정파일로 실제로 ssh1과 호환할 필요가 없으면 신경쓰지 않아도 된다. sshd2_config ssh demon의 설정파일 //각 계정키는 홈디렉토리에 .ssh2라는 디렉토리에 .pub라는 확장자가 붙고 비밀키는 확장자가 붙지 않는다.// 컨텐트(Content) 핸들러: 새로운 형식의 파일들을 전송 받을때 사용 내용에 관한 정보(MIME형식) plain/text, text/html.. 프로토콜 핸들러:기존의 프로토콜 이외의 프로토콜을 처리 가능 #

11 /etc/sshd-config 옵션(1)
AllowGroups ssh 서비스에 접근 가능한 그룹명시(예:AllowGroup sysadmin accounting)와일드카드가 지원되며 공백문자로 그룹을 구분 AllowHosts ssh서비스에 접근 가능한 호스트 명시 (예:AllowHosts shell.ourcompany.net)호스트는 IP를 쓰거나 호스명을 쓸수 있으며 와일드 카드가 지원되고 공백문자로 호스트 구분 AllowSHosts .shost나 .rhosts.에있는 호스들중 sshd서비스를 접근 할 수 있는 호스트 명시. 호스트는 IP를 쓰거나 호스명을 쓸수 있으며 와일드 카드가 지원되고 공백 문자로 호스트 구분 CheckMail(yes/no) 사용자가 로그인할때 새 메일이 도착했음을 알리도록 하는 기능을 설정하며 기본값은 yes로 되어 있다. Port 22:ssh가 사용할 port를 지정한다. Ciper (ciper) 세션을 암호화 할 때 사용방법 명시(idea, des, 3des, blowfish, arcfour 또는 없음) #

12 /etc/sshd-config 옵션(2)
DenyGroups 명시된 그룹은 ssh서비스에 접근할 수 없도록 하는 기능(DenyGroups sysadmin accounting) 와일드 카드가 지원되며 공백 문자로 그룹을 구분한다. DenyHosts 명시된그룹은 ssh서비스에 접근할 수 없도록 하는 기능(DenyHosts shell.ourcompany.net). 호스트IP를 쓰거나 호스트명을 쓸수 었으며 와일드 카드가 지원되고 공백 문자로 호스트를 구분한다. ForwardAgent 인증 대리인이 포워드 되어야 하는지를 명시. KeepAlive yes 클라이언트에게 alive메시지를 보낼것인지를 명시 ListenAddress sshd가 귀를 기울일 주소를 정해준다 은 모든곳에서 접속을 받아 들이겠다는 의미 passwordAuthentication (Yes/no) 패스워드 기반의 인증방법을 사용할 것인지 명시 #

13 /etc/sshd-config 옵션(3)
MaxConnections 0 최대 몇 개의 접속을 허락할지를 지정. 0은 제한을 하지 않는다는 의미. PermitRootLogin ssh를 이용하여 루트로 로그인 할 수 있는지를 명시 PubkeyAuthentication (yes/no) 인증순서를 지정 #

14 sshd 시작 명령행 옵션 /etc/ssh_config안에 있는 설정 옵션을 무효화 하거나 새로이설정할 수 있다. 옵 션
옵 션 기 능 -b [비트수] 서버키에 얼마나 많은 비트를 사용할지 명시. 기본 768비트. -d 디버그 모드 작동. -f [설정파일] 서버 설정 파일을 변경할 때 사용(기본적으로, /etc/sshd_config). -g [타임아웃] 사용자가 인증받지 않고 연결 유지될 수 있도록 하는 타임 아웃시간. -h [호스트키] 호스트 키 파일 변경시 사용(기본 /etc/s노_hot_key). -k [시간] 얼마나 자주 키를 재생성할거인지 명시. 기본적으로 한시간에 한번. -p [포트] Sshd포트의 변경. 기본 22번 포트. -q Sshd가 정적모드로 작동하도록 한다(로깅하지 않는다). #

15 ssh클라이언트 설정파일(/etc/ssh_config)
옵 션 기 능 BatchMod [yes|no] 연결시 사용자명과 패스워드 요구 명시. Cipher [ciper] 세션을 암화화 할 때 사용방법 명시. Compression [yes|no] 세션중에 압축을 사용할것인지 명시. CompressionLevel [0-9] 압축 수준 결정. ConnectAttempts [#] Sshd와 연결을 몇번이나 시도할지 명시 EscapeChar 세션 이스케이프 문자 설정. FallBackToRsh [Yes|no] Sshd연결이 실패하면 rsh로 연결 변경 ForwardAgent 인증 대리인이 포워드 되어야 하는지 명시 FowardX11 [yes|no] 자동으로 X11세션을 포워들 할지 명시 GatewayPorts [yes|no] 원격 호스트가 포워드된 포트를 가지고 내부로 연결 할 수 있는지 명시 Hostname [호스트명] 기본적으로 접속할 호스트 명 명시 #

16 ssh클라이언트 설정파일(/etc/ssh_config)
옵 션 기 능 IdentyFile 사용할 RSA신원 파일 변경. KeepAlive Alive메시지를 보낼것인지 명시. KeberosAuthenitcation 커베로스 5 인증방법을 사용명시. KerberosTgtPassing 커베로스 티켓 패싱 인증 사용 명시. LocalForward port host:port 로컬 포트를 원격 호스트에게 포워드. PasswordAuthentication [yes|no] 패스워드 기반 인증방법사용 명시. PasswordPromptHost [yes|no] 원격 호스트 명을 로그인 프롬프트에 출력. Port [port] Sshd의 바뀐 포트 명시. RhostsAuthenitcation Rhost인증방법만을 사용하도록 명시. RhostsRSAAuthentication Ssh가 rhosts와 RSA를 동시 사용 명시 StrictHostKeyChecking 새로운 키를 호스트 파일에 자동 추가 #

17 ssh1과ssh2의 호환성 Ssh1과 ssh2를 호환 하려면 ssh1과ssh2이 둘 다 설치되어 있어야 합니다.
Ssh1은 Ssh1Compatibility 와 SshdPath 를 다음과 같이 지정해 주면 됩니다. Ssh1Compatibility yes Sshd1Path /경로/sshd1 (경로는 sshd1파일이 존재하는 경로를 말합니다) ssh2_config도 다음과 같이 수정합니다. Ssh1Compatibility yes Sshd1Path/경로/ssh1 (여기서의 경로도 ssh1이 존재하는 경로를 말합니다) #

18 ssh의 시작 원하는 옵션을 설정한 후 ssh를 실행한다. $ sshd
#

19 ssh의 클라이언트 사용 #

20 ssh의 클라이언트 명령행 옵션 옵 션 목 적 -a 대리인 인증 포워딩 사용 -c ciper
옵 션 목 적 -a 대리인 인증 포워딩 사용 -c ciper 현재 세션에서 사용할 암호 방법 명시(blowfish, idea등) -e char escape문자 변경 -f 세션인증이 긑난후 백그라운드 작업 수행 명시 -i 파일 신원 파일 변경 -l 사용자 로그안할때 사용자 명시 -n /dev/null값으로 부터 입력을 받는다. -p port ssh가 접속하기 위해 사용할 포트 명시(기본 22) -q 정적 모드로 접속. -t 하나의 명령을 수행하더라고 tty를 연다. -v 디버깅 모드 -x X11포워딩 기능 해제 #

21 ssh의 개인키 및 공개키 새성 사용(1) #

22 ssh의 개인키 및 공개키 새성 사용(2) #

23 scp : 원격 파일은 복사(1) scp 사용법 user@host1:filename user2@host2:filename
scp example scp kim.txt #

24 scp 명령행 옵션 옵 션 목 적 -A 파일에 대한 파일 통계 출력 기능 해제 -a 파일에 대한 파일 통계 출력 기능 사용
옵 션 목 적 -A 파일에 대한 파일 통계 출력 기능 해제 -a 파일에 대한 파일 통계 출력 기능 사용 -ciper 이번 전송에서 사용할 암호 방법 명시(blowfish, idea, 3des) -i 파일 신원(identity) 파일 변경 -o [ssh 옵션] 파일에 전송하기전에 ssh에게 옵션 전달 -P port 원격 호스트로 접속할 포트 명시 -q 세션에 대한 통계 출력 기능 해제 -Q 세션에 대한 통계 출력 기능 사용 -r 디렉토리 재귀적으로 복사 -v 디버깅 모드로 수행 #

25 윈도우를 위한 Tera Term Pro + TTSHH(1)
필요조건 :없음 설정파일 : terraterm.ini 보안사항 :없음 Tera Term Pro 2.3 TTTSH 1.5.1 #

26 윈도우를 위한 Tera Term Pro + TTSHH(2)
#

27 윈도우를 위한 Tera Term Pro + TTSHH
#

28 ssh 보안사항 초기버전은 버퍼 오버플로(buffer overflows)문제가 있었으며 만기된 계정을 갖고 있는 사용자가 접속하는것이 가능 했었다. #

29 참고자료 “Getting started with SSH” Kimmo Suominen
“Kereros/DCE, the Secure Shell, and Practical Internet Security” Wayne Schroeder. “The Secure Shell” peter Simons, Andreas Reichpietsch “Updates to SSH protocol” Tatu Ylonen #


Download ppt "LINUX SECURITY -전송중 데이터 보호-"

Similar presentations


Ads by Google