LINUX SECURITY 네트워크 실험실 김 윤 수

Download Report

Transcript LINUX SECURITY 네트워크 실험실 김 윤 수

LINUX SECURITY
-전송중 데이터 보호-
네트워크 실험실 김
2016-05-23
Computer Network Lab.
#
윤
수
1
목






차
보안 쉘(ssh)
ssh 서버설정
scp:원격 파일 복사 프로그램
서로다른 네트워크에서의 ssh서비스제공
ssh의 보안사항
참고자료
2016-05-23
Computer Network Lab.
#
2
 ssh(secure shell)
 보안쉘(SSH: Secure shell)은 네트워크의
다른 컴퓨터에 로그인 할 수 있으며, 원격 시스
템에서 명령을 실행하고, 다른 시스템으로 파
일을 복사 할 수 있도록 해주는 프로그램이다.
강력한 인증방법과 안전하지 못한 네트워크에
서 안전하게 통신 할 수 있는 기능을 제공한다.
2016-05-23
Computer Network Lab.
#
3
 보안쉘이 제공하는 알고리즘(1)
 Blowfish




Bruce Schneier
64비트 암호화 기법
크기가 큰 데이터를 빠른 속도로 암화화(DES, IDEA보다 빠름)
http://www.conterpane.com/blowfish.html
 Triple DES




IBM에서 제안 1977년에 개발 1977년발표
일반적인 데이터의 암호화를 위한 미국정부의 표준
DES(Data Encryption Standard)
http://www.itl.nist.gov/div897/pubs/fip46-2.htm
2016-05-23
Computer Network Lab.
#
4
 보안쉘이 제공하는 알고리즘(2)
 IDEA
 IDEA(the International Data Encryption Algorithm)
 국제 데이터 알고리즘으로 128비트 키를 사용하는 블록 암호
화 알고리즘
 TripleDES보다 빠르며 안전
 http://www.nixu.fi/~pnr/netsec-lopulliset/1-0practical-crypto.html#idea
 RSA
 RSA(the Rivest-shamir-Adelman algorithm)
 널리사용되는 공용키/개인키 암호화 알고리즘
 http://www.rsa.com
2016-05-23
Computer Network Lab.
#
5
 ssh의 핵심 유티리티
 ssh슈트에 있는 프로그램
프
로
그
램
설
명
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키를 생성할 수 있다.
2016-05-23
Computer Network Lab.
#
6
 ssh배포본 설치








http://www.ssh.com * Source location *
ssh-2.2.0.tar.gz
* source name *
gunzip ssh-2.2.0.tar.gz * gzip 해제 *
tar xvf ssh-2.2.0.tar * tar 해제 *
cd ssh-2.2.0
./configure
make
make install
2016-05-23
Computer Network Lab.
#
7
 ssh배포본 설치
 [yskim@yskim ssh2]$ pwd
/etc/ssh2
 [yskim@yskim ssh2]$ ls
hostkey hostkey.pub ssh2_config
ssh_dummy_shell.out sshd2_config
 [yskim@yskim bin]$ ls
* /usr/local/bin *
nessus-config* sftp-server2.static*
ssh-askpass2* ssh-pubkeymgr* nmap* sftp2*
ssh-chrootmgr* ssh-signer@ nmapfe* ssh@
ssh-dummy-shell* ssh-signer2* scp@ ssh-add@
ssh-dummy-shell.static* ssh2* ssh-add2*
ssh-keygen@ xnmap@ sftp@ ssh-agent@
ssh-keygen2* sftp-server@
ssh-agent2*
ssh-probe@ sftp-server2*
ssh-askpass@
ssh-probe2*
2016-05-23
Computer Network Lab.
#
8
 cofigure 옵션 설명
옵 션
기
능
--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비트를 설정하지 않고 설치
2016-05-23
Computer Network Lab.
#
9
 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라는 확장
자가 붙고 비밀키는 확장자가 붙지 않는다.//
2016-05-23
Computer Network Lab.
#
10
 /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 또는 없음)
2016-05-23
Computer Network Lab.
#
11
 /etc/sshd-config 옵션(2)
 DenyGroups 명시된 그룹은 ssh서비스에 접근할 수 없도록 하는
기능(DenyGroups sysadmin accounting) 와일드 카드가 지
원되며 공백 문자로 그룹을 구분한다.
 DenyHosts 명시된그룹은 ssh서비스에 접근할 수 없도록 하는
기능(DenyHosts shell.ourcompany.net). 호스트IP를 쓰거
나 호스트명을 쓸수 었으며 와일드 카드가 지원되고 공백 문자로
호스트를 구분한다.
 ForwardAgent 인증 대리인이 포워드 되어야 하는지를 명시.
 KeepAlive yes 클라이언트에게 alive메시지를 보낼것인지를
명시
 ListenAddress 0.0.0.0 sshd가 귀를 기울일 주소를 정해준다.
0.0.0.0은 모든곳에서 접속을 받아 들이겠다는 의미
 passwordAuthentication (Yes/no) 패스워드 기반의 인증방
법을 사용할 것인지 명시
2016-05-23
Computer Network Lab.
#
12
 /etc/sshd-config 옵션(3)
 MaxConnections 0 최대 몇 개의 접속을 허락할지를 지정. 0은
제한을 하지 않는다는 의미.
 PermitRootLogin ssh를 이용하여 루트로 로그인 할 수 있는지
를 명시
 PubkeyAuthentication (yes/no) 인증순서를 지정
2016-05-23
Computer Network Lab.
#
13
 sshd 시작 명령행 옵션
/etc/ssh_config안에 있는 설정 옵션을 무효화 하거나 새로이설정할 수 있다.
옵
션
기
능
-b [비트수]
서버키에 얼마나 많은 비트를 사용할지 명시. 기본 768비트.
-d
디버그 모드 작동.
-f [설정파일]
서버 설정 파일을 변경할 때 사용(기본적으로, /etc/sshd_config).
-g [타임아웃] 사용자가 인증받지 않고 연결 유지될 수 있도록 하는 타임 아웃시간.
-h [호스트키] 호스트 키 파일 변경시 사용(기본 /etc/s노_hot_key).
-k [시간]
얼마나 자주 키를 재생성할거인지 명시. 기본적으로 한시간에 한번.
-p [포트]
Sshd포트의 변경. 기본 22번 포트.
-q
Sshd가 정적모드로 작동하도록 한다(로깅하지 않는다).
2016-05-23
Computer Network Lab.
#
14
 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 [호스트명]
기본적으로 접속할 호스트 명 명시
2016-05-23
Computer Network Lab.
#
15
 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
새로운 키를 호스트 파일에 자동 추가
2016-05-23
Computer Network Lab.
#
16
 ssh1과ssh2의 호환성
 Ssh1과 ssh2를 호환 하려면 ssh1과ssh2이 둘 다 설치되어 있어야 합
니다.
 Ssh1은 Ssh1Compatibility 와 SshdPath 를 다음과 같이 지정해 주면
됩니다.
Ssh1Compatibility yes
Sshd1Path /경로/sshd1
(경로는 sshd1파일이 존재하는 경로를 말합니다)
ssh2_config도 다음과 같이 수정합니다.
Ssh1Compatibility yes
Sshd1Path/경로/ssh1
(여기서의 경로도 ssh1이 존재하는 경로를 말합니다)
2016-05-23
Computer Network Lab.
#
17
 ssh의 시작
 원하는 옵션을 설정한 후 ssh를 실행한다.
$ sshd
Sshd는 기본적으로 백그라운드 작업으로 수
행되기 때문에 특별하게 백그라운드로 보낼 필
요가 없다.
2016-05-23
Computer Network Lab.
#
18
 ssh의 클라이언트 사용
2016-05-23
Computer Network Lab.
#
19
 ssh의 클라이언트 명령행 옵션
옵 션
목
적
-a
대리인 인증 포워딩 사용
-c ciper
현재 세션에서 사용할 암호 방법 명시(blowfish, idea등)
-e char
escape문자 변경
-f
세션인증이 긑난후 백그라운드 작업 수행 명시
-i 파일
신원 파일 변경
-l 사용자
로그안할때 사용자 명시
-n
/dev/null값으로 부터 입력을 받는다.
-p port
ssh가 접속하기 위해 사용할 포트 명시(기본 22)
-q
정적 모드로 접속.
-t
하나의 명령을 수행하더라고 tty를 연다.
-v
디버깅 모드
-x
X11포워딩 기능 해제
2016-05-23
Computer Network Lab.
#
20
 ssh의 개인키 및 공개키 새성 사용(1)
2016-05-23
Computer Network Lab.
#
21
 ssh의 개인키 및 공개키 새성 사용(2)
2016-05-23
Computer Network Lab.
#
22
 scp : 원격 파일은 복사(1)
 scp 사용법
user@host1:filename user2@host2:filename
 scp example
scp [email protected]:scp.txt kim.txt
2016-05-23
Computer Network Lab.
#
23
 scp 명령행 옵션
옵 션
목
적
-A
파일에 대한 파일 통계 출력 기능 해제
-a
파일에 대한 파일 통계 출력 기능 사용
-ciper
이번 전송에서 사용할 암호 방법 명시(blowfish, idea, 3des)
-i 파일
신원(identity) 파일 변경
-o [ssh 옵션]
파일에 전송하기전에 ssh에게 옵션 전달
-P port
원격 호스트로 접속할 포트 명시
-q
세션에 대한 통계 출력 기능 해제
-Q
세션에 대한 통계 출력 기능 사용
-r
디렉토리 재귀적으로 복사
-v
디버깅 모드로 수행
2016-05-23
Computer Network Lab.
#
24
 윈도우를 위한 Tera Term Pro + TTSHH(1)
 애플리케이션 : Tera Term Pro
 필요조건 :없음
 설정파일 : terraterm.ini
 보안사항 :없음
 http://www.zip.com.au/~roca/ttssh.html
 Tera Term Pro 2.3
 TTTSH 1.5.1
2016-05-23
Computer Network Lab.
#
25
 윈도우를 위한 Tera Term Pro + TTSHH(2)
2016-05-23
Computer Network Lab.
#
26
 윈도우를 위한 Tera Term Pro + TTSHH
2016-05-23
Computer Network Lab.
#
27
 ssh 보안사항
 초기버전은 버퍼 오버플로(buffer
overflows)문제가 있었으며 만기된
계정을 갖고 있는 사용자가 접속하는것
이 가능 했었다.
2016-05-23
Computer Network Lab.
#
28
 참고자료
 “Getting started with SSH” Kimmo Suominen
http://www.tac.nyc.ny.us/~kim/ssh
 “Kereros/DCE, the Secure Shell, and Practical
Internet Security” Wayne Schroeder.
http://www.sdsc.edu/~schroede/ssh_cug.html
 “The Secure Shell” peter Simons, Andreas
Reichpietsch
http://www.cys.de/simons/publications/ssh
 “Updates to SSH protocol” Tatu Ylonen
http://lists.w3.org/Archives/Public/ietf-신
/msg00555.html
2016-05-23
Computer Network Lab.
#
29