IT/리눅스마스터1급

암호화

알콩달콩아빠 2018. 1. 25. 09:23
728x90
반응형

안녕하세요


뚱보프로그래머 입니다.


암호화! and SSL 통신


 암호화

1) 패스워드 보안과 암호화

대부분의 리눅스를 포함한 유닉스 계열은 DES(Data Encryption Standard 데이타 암호화 표준)라고 하는 단방향 암호화 연산법을 사용해서 패스워드를 암호화한다암호화된 패스워드는 /etc/passwd, /etc/shadow에 저장된다로그인할 때 입력한 패스워드는 먼저 암호 처리가 된 후에 이 처리된 값이 다시 passwd 파일에 저장되어있는 패스워드 처리값과 비교가되게 되어 있다둘이 일치하면 같은 패스워드임이 분명하므로 접근이 허락된다.

 

2)  PGP와 공개 열쇠 암호 기법(Public Key Cryptography)

PGP(Pretty Good Privacy) 등에 사용되고 있는 공개 열쇠 암호 기법은 하나의 열쇠로 암호화하고 또 다른 열쇠로 복호화하는(두개의 열쇠를 쓰는암호 기법을 쓴다각 개인의 공개 열쇠는 누구나 암호화해서 쓸 수 있도록 배포되고 이에 상응하는 -복호화에 사용될 - 개인의 비밀 열쇠는 개인이 보관한다.

       

SSL, S-HTTP, HTTPS & S/MIME

1) SSL

SSL, 혹은 Secure Socket Layer는 인터넷 상에서의 보안을 위해서 넷스케이프사에서 개발한 것이며 클라이언트/서버 인증용으로 사용된다. SSL Transport Layer에서 작동되며 많은 종류의 데이타들을 사용자가 인지하지 못하는 배경 투명 작업으로 암호화하는 안전하며 암호화된 channel을 만들어준다.

 

2) S-HTTP

S-HTTP는 인터넷상에서 보안을 담당하는 또 다른 종류의 프로토콜이다다중 열쇠관리 기법을 지원하며 데이타를 주고받는 두사람이 사용하는 암호 연산 기법의 일치를 옵션 교섭을 통해서 지원하는 동시에기밀성인증데이타의 무결성송신 사실 증명 기능을 제공한다. S-HTTP는 사용 허가된 특별한 소프트웨어만 사용이 되도록 제한되어 있으며 암호화될 대상 데이타를 부분적으로 잘라서 블록 암호화해 준다.

 

3) S/MIME

S/MIME(Secure Mulitipurpose Internet Mail Extension)은 전자 우편과 인터넷상의 메시지를 암호화하기 위한 기준이다.

 

리눅스 IPSEC 기술법

 

IPSEC IETE IP 네트워크 레벨상에서 암호 기법 상으로 안전한 통신을 하기 위한 목적으로 만들었으며 인증무결성액세스 관리기밀성 등을 제공해주는 제품이다. " 이 서비스는 신뢰할 수 없는 네트워크상에서 신뢰할 수 있는 터널 통로를 만들도록 해준다신뢰할 수 없는 네트워크를 지나게 되는 모든 통신은 IPSEC 게이트웨이 시스템을 사용해서 암호화되어서 송신되고 끝부분의 수신 지점에서 다시 복호화되게 된다결과적으로 Virtual Private Network:VPN - 가상 사설망)이 만들어지는 것이다비록 이 네트워크가 공개적인 인터넷으로 연결된 여러 사이트를 포함한다 해도실질적으로는 통신 보안이 되는 네트워크가 구성되는 것이다. "



25.9 ssh Stelnet

ssh Stelnet은 원격 시스템으로 접속을 하고 암호화된 연결을 유지하기 위한 프로그램이다. openssh rlogin, rsh, rcp의 대체용으로 이들보다 더 안정적이다.

SSH는 두 호스트간의 통신 암호화와 사용자 인증을 위해서 공개 열쇠 암호 기법을 사용한다세션 하이재킹(Session-Hijacking) DNS spoofing을 방지해 주면서원격 호스트에 로그인하거나 호스트끼리 데이타를 복사하기 위해 사용될 수 있다송수신시의 데이타 압축을 실행하며 호스트간의 X11 통신의 통신보안을 실행해준다.

Stelnet은 넷스케이프사가 만든 SSL을 사용한다.

 

25.10 PAM(Pluggable Authentication Modules) - 장착 인증 방식 모듈

PAM은 사용자가 이진 파일을 다시 컴파일할 필요 없이 인증법제한사항지역 인증법을 쉽게 설정해준다패스워드에 비 DES 암호화 방법을 쓴다.

사용자들이 쓸 수 있는 프로세스 수메모리 양 등의 자원을 제한하는 방법을 써서 서비스 거부 공격을 막는다.

 

25.11 로그 확인

1) 포트 스캐너

일반적으로 크래커들이 제일 먼저 해보는 것은 공격할 서버에 어떤 서비스 포트들이 열려 있는지 포트 스캐닝을 해본 후열려있는 서비스들 중에 알려진 버그를 이용하는 경우가 많다이런 포트 스캐닝을 감지 할수 있는 툴이 몇가지 있는데 그중에서 가장 간단한 scanlogd 라는 툴을 소개한다.

scanlogd  http://www.openwall.com/scanlogd/에서 최신 버젼을 받을수 있다.

먼저 타볼 소스를 풀어 make linux 로 간단하게 컴파일을 하면 scanlogd 라는 바이너리가 생긴다이 바이너리 파일을 적당한 곳에 옭겨둔다. ( /usr/local/sbin/)

 

scanlogd 라는 유저를 만들고로그인 할 필요가 없는 계정이므로 다음과 같이 한다.

#adduser -M -s /bin/false scanlogd

 

로그를 남기기 위해 /etc/syslog.conf 에 다음을 추가한다.

daemon.alert   /var/log/alert

 

이제 scanlogd 를 실행시켜 놓으면 어느 ip 에서 포트 스캐닝을 하는지 /var/log/alert 에 다음과 같이 남게 된다.

Jan 23 22:34:05 test scanlogd: xxx.xxx.xxx.xxx to yyy.yyy.yyy.yyy ports 1, 7, 9, 11, 13, 15, ..., fSrpauxy, TOS 00, TTL 120 @22:34:05

 

xxx.xxx.xxx.xxx 라는 ip  yyy.yyy.yyy.yyy 의 포트를 스캔하였다

 

재 부팅시에 실행되도록 /etc/rc.d/rc.local 같은곳에 넣어둔다.

 

보통 포트 스캐닝만 했다고 어떤 조치를 취해야 하는 것은 아니다하지만 그 후에 어떤 이상이 있다고 생각되면 그 ip 의 서버로의 억세스를 막을 수 있다.

커널에서 ipchains 을 지원한다면 간단하게 ipchains -A input -l -j REJECT -s xxx.xxx.xxx.xxx -d 0/0 -p all 와 같이 해 버릴 수 있다.

 

2) 로그 확인

서버 관리자의 가장 기본적인 임무중 하나는 자신의 서버에 항상 기록되는 로그들을 살펴보는 것이다습관적으로 로그를 살펴보는 관리자의 서버는 그 만큼 크래킹에서 벗어날수 있다.

 

다음은 Linux Security Howto에서 발췌

갑자기 작아지거나 불완전한 로그 파일

이상하거나 잘못된 timestamp 를 가진 로그

잘못된 퍼미션이나 소유권을 가진 로그

재부팅이나 서비스의 재시작 기록

없어지거나 지원진 로그

su 사용 또는 이상한 곳으로부터의 접속

 

이런 로그 확인을 도와주는 logcheck 라는 유틸리티가 있다.

 

http://www.psionic.com/download에서 받을 수 있으며이곳에는 또한 PortSentry 라는 포트 스캐닝 감지 유틸리티가 있는데이것은 scanlogd 보다 더 적극적인 방어책으로설정에 따라 스캐닝을 감지했을때 자동으로 그 ip의 접근을 막는등의 일을 할 수 있다.

728x90
반응형

'IT > 리눅스마스터1급' 카테고리의 다른 글

DHCP  (0) 2018.02.01
보안...  (0) 2018.01.27
로그파일  (0) 2018.01.25
IPCHAINS  (0) 2018.01.18
IP Masquerading Configuration  (0) 2018.01.18