engineering/Network Eng.2006. 8. 7. 01:01

이래저래 삽질을 하다가 다른분들의 팁을 참고하여 굴착기를 동원한 끝에 나름대로 정리해 보았습니다...

우선 저의 환경은...
HostOS : Windows 2000 Advanced Server
VMWare version : 4.0.5. build.6030
ISP : 두루넷... ㅡ,.ㅡ"""
입니다...

0. 윈도우의 네트워크 설정에서 '로컬 영역 연결'의 '등록정보'에서 '공유'탭을 선택하시고, '이 연결에 인터넷 연결 공유 사용'을 체크합니다...('로컬 네트워크의 경우' 항목에 'VMware Network Adapter VMnet8'을 선택해 놓습니다...)
1. 'VMware Network Adapter VMnet8'의 '등록정보'에서 '인터넷 프로토콜(TCP/IP) 등록 정보'의 IP주소와 서브넷마스크를 확인해 놓습니다...(대체로 IP는 192.168.0.1, 서브넷마스크는 255.255.255.0으로 잡혀 있을 것입니다...)
2. GuestOS 환경을 설정할때, NIC를 custom으로 잡으시고, vmnet8(NAT)을 선택합니다...()
3. Redhat Linux 9를 설치하시고 eth0의 설정을 IP는 VMWare의 'Edit -> Virtual Network Settings...'에서 'DHCP' 탭의 'VMnet8'의 'Properties'에 설정된 'Start IP Address'와 'End IP Address'의 범위 내에서 임의로 잡으시고, 서브넷마스크는 255.255.255.0, 게이트웨이는 VMWare의 'Edit -> Virtual Network Settings...'에서 'NAT'탭의 'Gateway IP address'를 확인하여 똑같이 넣습니다... 그리고 DNS는 1번 항목에서 확인하신 IP 주소를 입력하시구요... 이렇게 하면 설정이 모두 끝납니다...(종전의 가물거리는 기억으로 썼던 내용으로 인해 삽질하신 분들께 고개를 조아려 사죄드립니다...)
4. eth0 설정후 저장 하시고 다시 활성화 해준 후 ping으로 네트워크가 작동하는지 확인합니다...

이상이 제가 나름대로 정리한 내용이구요... vmnet 설정을 다른걸 잡아주거나 기존의 설정을 지우는 등의 조치가 다른 GuestOS를 사용하는데 문제를 야기하는듯 싶어서 기본 설정만으로 해결할 방법을 고심하던 끝에 성공한 방법입니다... 이렇게 하고나니 네트웍이 됐다가 안됐다가 하는 문제는 해결이 되더군요... 참고로 한컴 리눅스를 다른 GuestOS로 사용하실 경우 기존의 방식대로 NAT로 잡고 DHCP로 설정해서 사용하시면, 전혀 문제 없이 네트워크 작동됩니다... 그럼... ^^"""


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


여기저기 뒤지다 찾은 겁니다.

http://www.linuxquestions.org/questions/archive/3/2003/09/1/67970

요지는...
/etc/sysconfig/network-scripts/ifcfg-eth0 파일에

다음 부분 추가:
코드:
check_link_down() {
return 1;
}

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



install 시 반드시 text 모드로 진입!!

Posted by theYoungman
engineering/Network Eng.2006. 8. 7. 01:00
출처 블로그 > 슈마의 네트워크 이야기
원본 http://blog.naver.com/airbag1/80010706911
보안 설계「라우터 설정부터 DMZ까지」
[ZDNet Korea 2005-03-02 17:11]

보안을 희생하지 않아도 되는 네트워크 구조를 택하라.

네트워크 보안이 뜨거운 이슈로 부각되면서, 방화벽과 네트워크 보안 설정에 관해 정밀 조사를 받아봤을 것이다. 심지어 방화벽 설계를 실행하거나 또는 재사정하는 작업에 배치된 적이 있을지도 모른다.

각 경우에 있어 담당자들은 보편적인 방화벽 설계와 이로 인해 향상되는 보안 요소에 대해 잘 숙지하고 있어야 한다. 이 글에서는 몇 가지 일반적인 방화벽 설정과 안전한 네트워크 구조 설계에 있어 베스트 사례들을 기술하겠다.

1. 방화벽 보안 전략 수립

가장 기초적인 수준의 방화벽은 사내 네트워크와 인터넷 사이의 트래픽을 걸러내는 하드웨어/소프트웨어를 말한다. 많은 수의 해커들이 인터넷을 배회하며 손쉽게 해킹 툴을 다운로드 할 수 있는 요즘, 모든 네트워크에는 반드시 방화벽 설계 등 보안 정책을 갖고 있어야 한다.

만약 관리자가 강력한 방화벽이 제대로 설치돼있는지 확인하고 네트워크 보안을 강화하라고 주문한다면, 무엇을 해야 할까? 이 때 수립될 전략에는 다음과 같은 두가지 측면이 고려돼 있어야 한다.

  1. 네트워크를 점검하고 접근 허용 목록이 작성된 라우터와 IDS 등 현존 보안 메커니즘을 보안 계획의 한 부분에 포함시켜라.
  2. 새로운 설비 또는 소프트웨어를 구매하거나 현재의 시스템을 업그레이드함으로써 방화벽 전용 솔루션이 존재한다는 사실을 명확히 하라.
잘 설계된 방화벽 구조에는 단순히 네트워크 트래픽을 걸러내는 것 이상의 기능이 포함돼야 한다는 점을 명심하도록 하라. 여기에는 다음과 같은 요소들이 포함된다.

  • 굳건한 보안 정책
  • 트래픽 체크포인트
  • 활동 접속
  • 내부 네트워크에 대한 노출 제한
방화벽을 구매하거나 업그레이드하기 이전에 굳건한 보안 정책을 갖추고 있어야만 한다. 방화벽은 보안 정책을 강화시켜 줄 것이며, 또한 이를 문서화함으로써 방화벽을 설계할 때 의문점을 제기하지 않게 만들 수 있다. 방화벽에 대한 어떠한 수정사항도 반드시 보안 정책 내에서 수정돼야만 한다.

구축이 잘된 방화벽은 체크 포인트를 통해 트래픽 경로를 좁혀낼 수 있다. 내/외부지향 트래픽이 방화벽 내의 특정 지점을 통해 나가도록 설정한다면 의심스러운 활동에 대한 로그 기록을 손쉽게 모니터링하고 관찰할 수 있다.

보안 정책과 체크포인트를 설정했다면, 이제 어떻게 방화벽을 모니터할 것인가? 알람 기능을 활용하고 방화벽 로그온 기능을 활성화시킴으로써 네트워크에 대한 허용/비허용 접속에 대해 손쉽게 관찰할 수 있다. 심지어는 필요하지 않은 메시지를 걸러내주는 써드 파티 유틸리티도 구매해 사용할 수 있다.

이 방법은 또한 내부 네트워크 주소 체계를 외부에 숨길 수 있는 좋은 방안 중 하나다. 외부에서 사내 네트워크 구성도를 볼 수 있도록 하는 것은 절대로 현명한 행동이 아니다.

2. 방화벽과 관련된 전문용어들

특정 방화벽 설계를 살펴보기 전에 반드시 익혀야만 하는 몇 가지 기초적인 방화벽 전문용어를 알아보자.

▲게이트웨이 : 게이트웨이는 내부 네트워크에서 다른 네트워크, 즉 인터넷이나 WAN으로의 연결지점으로 작동하는 컴퓨터를 지칭한다. 방화벽 게이트웨이는 내부 네트워크와 인터넷 사이에서 반드시 전달되거나 또는 전달되면 안 되는 데이터를 결정하며, 여기에 덧붙여 내부 네트워크에서 인터넷으로 정보를 전송할 수도 있다.

▲네트워크 주소 변환(NAT) : NAT는 외부 네트워크(인터넷)에 대해 내부 주소를 숨겨준다. 만약 방화벽이 NAT를 활용하고 있다면 모든 내부 주소는 내부 네트워크를 떠날 때 원래 정체를 숨기면서 공적인 IP 주소로 변환된다.

▲프록시 서버 : 프록시 서버는 네트워크 IP 주소를 대체하며, 실제 IP 주소를 인터넷상에서 효과적으로 숨겨준다. 프록시 서버의 종류에는 웹 프록시, 회선/애플리케이션 수준 게이트웨이 등이 있다.

▲패킷 필터링 방화벽 : 이것은 대체로 패킷을 걸러내는 라우터에 기반한 간단한 방화벽 솔루션이다. 네트워크 패킷의 헤더는 방화벽을 통과할 때 정밀 검사되며 규정에 따라 해당 패킷은 받아들여지거나 거부된다.

대부분의 라우터가 패킷을 걸러낼 수 있기 때문에 이것은 패킷을 수용하든지 또는 거부하든지 하는 방화벽 규칙을 재빨리 설정할 수 있는 손쉬운 방법이 된다. 하지만 패킷 필터링 방화벽으로 우호적인 패킷과 악성 패킷 사이에 차별화를 두기는 상당히 어렵다.

▲유해 감시 라우터 : 2개의 네트워크 인터페이스 카드를 갖춘 패킷 필터링 라우터를 말한다. 두 네트워크를 연결하는 이 라우터는 네트워크 사이의 트래픽을 제어하기 위해 패킷 필터링을 실행하며 보안 관리자는 패킷 필터링이 어떻게 이뤄지는지를 정의하는 규칙을 설정한다. 이러한 유형의 라우터를 외부 라우터 또는 엣지 라우터라고 부르기도 한다.

▲애플리케이션 수준 게이트웨이 : 이 유형의 게이트웨이에서는 패킷 필터링 라우터보다 복잡한 정책을 설정할 수 있다. 이 게이트웨이는 방화벽을 거쳐 지나가야 하는 애플리케이션이나 서비스의 각 유형에 대한 특별 프로그램을 활용한다.

▲바스티언 호스트 - 바스티언 호스트는 인터넷과 같이 믿을 수 없는 네트워크에서 내부 네트워크와 같이 믿을 수 있는 네트워크로 접속할 수 있도록 허용해 주는, 보안 장치가 실장된 컴퓨터를 말한다. 이 솔루션은 대개 두 네트워크 사이에 위치하며 흔히 애플리케이션 수준 게이트웨이가 사용되고 있다.

▲비무장지대(DMZ) : DMZ 솔루션은 내부 네트워크와 외부 사이에 위치하며 공적 서버를 위치시키기에 가장 적합한 장소다. DMZ에 위치하는 시스템으로는 웹서버, FTP 서버 등이 있다.

지금까지 몇 가지 기초 사항을 알아봤다. 이제 보편적인 방화벽 설계에 대해 논의해보자.

▲감시 라우터

감시 라우터는 가장 간단하게 실행할 수 있는 방화벽 전략 중 하나다. 특히 대다수 기업들이 이미 이에 해당하는 하드웨어를 보유하고 있기 때문에 인기 있는 설계 방법 중 하나로 꼽힌다.

감시 라우터는 방화벽 전략에 있어 최전방에서 침임을 잘 차단하는 역할을 맡는다. 이 라우터의 기능이란 IP 주소와 UDP, TCP 등에 기반한 외/내부지향 트래픽을 유해 감시할 수 있도록 필터를 결부시킨 것 뿐이다. <그림 A>는 감시 라우터의 사례를 보여주고 있다.

<그림 A> 감시 라우터를 이용한 방화벽

이 전략을 실행하기로 결심한다면, TCP/IP와 라우터에 필터를 올바르게 설정하는 방법을 제대로 숙지하고 있어야 한다. 전략을 적절하게 수행하지 못한다면 위험한 트래픽이 필터를 통과해 사설 LAN에까지 전달될 수 있다.

만약 이것이 유일한 방어막인데 해커가 통과해버린다면 그 해커는 무제한의 통제력을 쥘 수 있게 된다. 또한 이 설정법은 내부 네트워크 IP 주소를 숨기지 못하며, 대개 모니터링과 로그 기록 능력이 떨어진다는 점을 기억해야 한다.

만약 보안 전략에 투자할 비용이 적거나 아예 없는데 급하게 방화벽을 설정해야 한다면 현재 갖고 있는 라우터를 활용하는 이 방법론이 적절할 수도 있을 것이다. 감시 라우터 방화벽은 보안 전략에 있어 괜찮은 출발점이 되며 다른 보안 툴을 사용하고 있는 네트워크에서 활용하기에도 좋다.

▲유해 감시되는 호스트 방화벽

유해 감시되는 호스트 방화벽 설정은 유해 감시 라우터와 함께 단일한 바스티언 홈 호스트를 활용한다. 이 설계 방법은 패킷 필터링과 바스티언 호스트를 보안 기제로 활용하며 네트워크와 애플리케이션 수준의 보안을 모두 병합하고 있다.

라우터는 패킷 필터링을 수행하며 바스티언 호스트는 애플리케이션 측면의 보안을 수행한다. 이 설계 방법은 상당히 탄탄하며 내부 네트워크에 침입하려는 해커는 반드시 라우터와 바스티언 호스트 둘다를 통과해야 한다.

또한 이 설정법을 애플리케이션 게이트웨이(프록시 서버)로 활용함으로써 NAT 변환을 활용해 내부 네트워크 설정을 숨길 수 있다. <그림 B>는 이러한 방화벽 설계의 사례를 보여주고 있다.

<그림 B> 바스티언 호스트를 갖춘 감시 라우터

위의 설계는 바스티언 호스트를 통과하는 모든 송/수신 정보들을 설정하는 것이다. 감시 라우터는 정보가 전달되면 내부 네트워크로 전달하기 이전에 바스티언 호스트를 통해 모든 데이터를 걸러낸다.

여기에 듀얼 홈 바스티언 호스트 방화벽을 만듦으로써 한 발짝 더 나아갈 수도 있다. 이 설정은 2개의 네트워크 인터페이스를 갖추고 있으며, 네트워크 내에 완전한 물리적 간격을 만들기 때문에 상당히 안전하다고 할 수 있다. <그림 C>는 이러한 방화벽 설계의 사례를 보여주고 있다.

<그림 C> 감시 라우터가 설치된 듀얼 홈 바스티언 호스트

▲DMZ

DMZ 솔루션은 가장 흔하고 안전한 방화벽 구조로 감시된 하부 네트워크라고도 일컬어진다.

<그림 D> DMZ 구조

DMZ 솔루션에는 보통 아래 사항들이 포함된다.

  • 웹 서버
  • 메일 서버
  • 애플리케이션 게이트웨이
  • 전자상거래 시스템(여기에는 반드시 프론트-엔드 시스템만 포함돼야 한다. 백-엔드 시스템은 어떤 경우에서라도 내부 네트워크에 있어야 한다.)
DMZ 솔루션은 공적 서버를 호스팅할 안전한 장소를 제공하는 것에 덧붙여 네트워크/애플리케이션 수준의 보안을 지원하기 때문에 매우 안전하다. 단일한 바스티언 호스트(프록시), 모뎀 풀, 그리고 모든 공적 서버가 DMZ 내에 위치한다.

더 나아가 외부 방화벽은 외부에서 오는 공격을 방어하며 DMZ에 대한 모든 인터넷 접속을 관리한다. 내부 방화벽은 DMZ의 내부 네트워크에 대한 접속을 관리하며 만약 외부 방화벽이 뚫렸다면 2차 방어선을 제공한다.

이에 덧붙여, 인터넷에 대한 LAN 트래픽은 내부 방화벽과 DMZ의 바스티언 호스트가 관리한다. 이런 유형의 설정에서 해커가 내부 네트워크에 접속하려면 외부 방화벽, 내부 방화벽, 그리고 바스티언 호스트 등 3개의 분리된 영역을 저해시켜야만 할 것이다.

많은 기업들이 DMZ에 침입 탐지 시스템(IDS)도 추가함으로써 한 걸음 더 나아가고 있다. IDS를 추가하면 작은 침입이 큰 사건으로 증폭되기 이전에 문제점들을 재빨리 모니터할 수 있다.

3. 결론

오늘날 비즈니스 세계에 일상적인 것이 되버린 기초적인 방화벽 설계를 검토해봤다. 물론 완벽한 방화벽 설계란 없다. 모든 네트워크는 그 비즈니스 모델의 측면에 있어서 고유한 것이며, 해당 회사의 특정 목적에 최적화된 방화벽을 갖고 있어야만 한다.

방화벽을 설계할 때는 반드시 비용, 교육훈련, 보안, 기술적 전문지식, 그리고 실행 기간 등을 포함해 수많은 요소들을 고려해야만 한다. 일단 이런 모든 요소들을 고려하고 훌륭한 보안 정책을 수립했다면 이제 방화벽 구조를 실행할 수 있을 것이다.

여기서 선보인 다이어그램은 다운로드할 수 있으며 각자의 네트워크 보안 구조도를 설계할 때 템플릿으로 활용할 수 있다. @

Steven Warren ( TechRepublic )

Posted by theYoungman
engineering/Network Eng.2006. 8. 7. 00:56
[Cisco] NAT Config 해설

Network Address Translation(NAT)은 2개의 네트워크를 연결하는 라우터에서만 설정이 가능하다.프라이빗 어드레스(Private Address)나 비공인 IP Address를 사용하는 내부 네트워크의 트래픽이 다른 외부 네트워크에 패킷을 전송하기 전에 공인 IP 어드레스로 변환 시켜야 한다.

이 어드레스 변환처리는 변환이 필요한 장소의 라우터 에 NAT를 설정하여 라우팅과 연동시킨다.
여기서 다룰 시스코 IOS의 NAT는 RFC 1631을 지원한다.
물론 CISCO IOS는 NAT를지원하는 소프트 웨어야 한다.

1 사용되는 용어

NAT기능이 내장된 라우터를 인터넷과 연결되는 부분에 설치하면 내부 보안 및 공인 IP Address 부족을 해결할 수 있다. 따라서이 장비를 이용하면 효과적일 것이다.

-내부(inside)
어드레스 변환의 대상이 되는 내부 사설 네트워크 군이다.

-외부(outside)
다른 네트워크를 의미한다. 통상적으로 인터넷을 의미한다.

-내부 로컬 IP 어드레스(Inside Local IP Address)
내부네트워크의 호스트에 부여되는 사설 IP 어드레스로서 내부적으로 중복되지않는 어드레스다. 비공인 IP를 사용토록 권장한다. 이 어드레스는 외부쪽(인터넷)으로 라우팅 되지 않는다. 외부쪽에서 라우팅이 되더라도 이 어드레스는 실제로는 타조직에 이미 할당된 어드레스다. 따라서 프라이빗 어드레스 사용을 권장한다.

-내부 글로벌 IP 어드레스(Inside Global IP Address)
내부 호스트의 IP 어드레스와 대응되는 외부의 공인 IP 어드레스이다. 내부 사용자의 IP 어드레스가 이 글로벌(공인) 어드레스로 변환되어 나간다. 이 어드레스는 인터넷에서유일한 어드레스여야 한다.

-단순 변환 엔트리(Simple Translation Entry)
기존 IP 어드레스와 다른 IP 어드레스를 대응시키는 변환 테이블의 엔트리이다.

-확장 변환 엔트리(Extended Translation Entry)
IP 어드레스와 포트번호 쌍을 대응시키는 변환 테이블의 엔트리이다.

2 사용되는 주요 기능

-스태틱 어드레스 변환(Static Address Translation)
내부 로컬 어드레스와 글로벌 어드레스를 1대 1로 매핑하여 설정할 수 있다.

-다이나믹 소스 어드레스 변환(Dynamic Source Address Translation)
내부 로컬 어드레스와 글로벌 어드레스의 매핑을 동적으로 작성할 수 있다. 글로벌어드레스에 할당된 어드레스는 어드레스 풀(Address pool)에 저장한다. 로컬어드레스가 자신의 소스어드레스를 어드레스 풀에 있는 글로벌 어드레스로 변환시킨다. 그리고 변화된 어드레스는 변환 테이블 엔트리에 등록된다.

-다이나믹 포트 변환(Dynamic Port Translation)
글로벌 어드레스 풀에 있는 어드레스를 절약하기 위해 TCP또는 UDP의 소스포트를 사용해서 변환할 수 있다. 여러개의 로컬 어드레스가 동일한 그로벌 IP 어드레스를 사용하더라도 포트 번호로 구분할 수 있다. 따라서 변환이 필요할 때에는 Berkeley Standard Distribution의 협정에 따라서 오리지널과 같은 영역(1-->511, 512-->1023, 1024-->4999,5000-->65535)에 있는 새로운 포트 번호를 선택한다.

-도착지 어드레스 로타리 변환(Destination Address Rotary Translation)
다이나믹 도착지 변환은 외부에서 내부로 특정 트래픽을 통과하도록 설정할 수 있다. 매핑이 설정되면 액세스 리스트의 어드레스에 있는 매치되는 도착지 어드레스는 로컬 풀에 있는 어드레스로 치환된다. 이 어드레스의 할당에는 외부에서 내부로 새로운 커넥션이 확립될 때만 라운드 로빈 방식으로 할당된다.

3 설정 커맨드

-인터페이스 설정 커맨드

커맨드 : ip nat { inside | outside }
설  명 : 인터페이스 내부인지 외부인지 표시할 필요가 있다. 표시된 인터페이스에 속한 패킷만이 변환의 대상이 된다.

-----------------------------------------------------------------------------------------------------------
ex)
interface ethernet0
ip address 10.1.1.10 255.255.255.0
ip nat inside
!
interface serial0
ip address 172.16.2.1 255.255.255.0
ip nat outside
!

설명)
interface에서 외부로 나가기위한 인터페이스 에서는 ip nat outside 하고 내부 인터페이스에게는 ip nat inside 해주면 됩니다.
----------------------------------------------------------------------------------------------------------

-글로벌 설정 커맨드

[ ip pool 의 정의 ]

커맨드 : ip nat pool <name> <start-ip> <end-ip> { netmask <netmask> | prefix-length
<prefix-length> } [ type { rotary} ]

----------------------------------------------------------------------------------------------------------
ex)
ip nat pool dyn-nat 192.168.2.1 192.168.2.254 netmake 255.255.255.0

설 명 : 풀에 있는 어드레스는 start address, end address와 netmask를 사용해서 정의 한다. 이들 어드레스는 필요에 따라서 할당된다.
----------------------------------------------------------------------------------------------------------

[ 내부 소스 어드레스를 변환을 가능하게 한다.]

커맨드 : ip nat inside source { list < acl > pool < name > [overload] | static < local-ip > <
global-ip > }
----------------------------------------------------------------------------------------------------------
ex)
ip nat inside source list 1 pool dyn-nat overload

설 명 : 최초의 커맨드는 다이나믹 변환을 설정하는 커맨드이다. 이 간단한 엑세스 리스트에 해당하는 어드레스가 있으면 지정된 풀에서 할당된 글로벌 어드레스를 사용해서 변환한다, 옵션의 키워드를 사용해서 UDP와 TCP의 포트 변환도 가능하다. overload라는 옵션을 주게 되면 NAT Table은 Extended entry를 가지게 됩니다. 그것은 옵션을 주기 않게 되면 내부 IP 하나당 외부 IP 하나씩 할당을 받아서 나가는데 overload 옵션을 주게 되면 포트를 가지고 나갑니다.. 하나의 IP를 가지고 여려사람이 이용할 수 있겠죠....
----------------------------------------------------------------------------------------------------------

다음 커맨드는 스태틱 변환을 설정하는 커맨드다.

[ 내부 도착지 어드레스를 변환을 가능하게 한다.]

커맨드 : ip nat inside destination { list < acl > pool < name > | static < global-ip > < local-ip> }
설 명 : 이 커맨드는 소스 변환 커맨드와 유사하다. 다이나믹 변환과 같이 풀은 로컬 타입으로 한다.

[ 외부 소스 어드레스의 변환을 가능하게 한다.]

커맨드 : ip nat outside source { list < acl > pool < name > | static < global-ip > < local-ip >}
설 명 : 최초 커맨드(list...pool..)는 다이내믹 변환을 가능하도록 설정한다.  패킷의 어드레스가 이 간단한 엑세스 리스트에 있는 어드레스와 매칭이 되면  지정된 풀 에서 할당된 로컬 어드레스를 사용해서 변환시킨다.
두번째 커맨드 static는 스태틱 변환을 설정하는 커맨드이다.

[ 변환 타임아웃(timeout)을 설정한다.]

커맨드 : ip nat translation timeout < seconds >
            ip nat translation udp-timeout <seconds>
            ip nat translation dns-timeout <seconds>
            ip nat translation tcp-timeout <seconds>
            ip nat translation finrst-timeout <seconds>

설 명 : 다이나믹 변환은 내부 사용자가 사용하지 않은 상태로 일정시간이 경과되면 변환 테이블의 해당 엔트리를 타임아웃시킨다. 포트 변환이 설정되어 있지 않을때에 변환 테이블의 엔트리는 24시간 후에 타임아웃된다.

[ Exec 커맨드 ]

커맨드 : show ip nat translation [ verboss ]
설 명 : 액티브한 변환을 확인한다.

커맨드 : show ip nat statics
설 명 : 변환 통계를 확인한다.

커맨드 : clear ip nat translation *
설 명 : 전 다이나믹 변환을 해제한다.

커맨드 : clear ip nat translation < global-ip >
설 명 : 단순한 다이나믹 변환을 해제한다.

커맨드 : clear ip nat translation < global-ip > < local-ip > < proto > < global-port > <local-port >
설 명 : 특정 다이나믹 변환을 해제한다.

커맨드 : debug ip nat [ <list> ] [ detailed ]
설 명 : 디버그

[ config 예1 ]

라우터 조건 : Version : 11.2(9) 이상 ,메모리 : 8M 이상(C1000 시리즈인 경우)

router#sh ver - 먼저 버전 확인
Cisco Internetwork Operating System Software
IOS (tm) 1005 Software (C1005-BNSY-M), Version 11.2(9), RELEASE SOFTWARE (fc1)
Copyright (c) 1986-1997 by cisco Systems, Inc.
Compiled Mon 22-Sep-97 21:53 by ckralik
Image text-base: 0x02004000, data-base: 0x023CB294

ROM: System Bootstrap, Version 5.3.2(9) [vatran 9], RELEASE SOFTWARE (fc1)
BOOTFLASH: 1000 Bootstrap Software (C1000-RBOOT-R), Version 10.3(9), RELEASE SOF
TWARE (fc1)

router uptime is 2 hours, 17 minutes
System restarted by power-on
System image file is "flash:c1005-bnsy-mz.112-9", booted via flash

cisco 1000 (68360) processor (revision @) with 7680K/512K bytes of memory.
Processor board ID 04836644
Bridging software.
X.25 software, Version 2.0, NET2, BFE and GOSIP compliant.
1 Ethernet/IEEE 802.3 interface(s)
1 Serial network interface(s)
8K bytes of non-volatile configuration memory.
2048K bytes of processor board PCMCIA flash (Read/Write)

Configuration register is 0x2102

2.Cisco 1005 Config 내역

router#sh config
Using 688 out of 7506 bytes
!
version 11.2
no service pad
service udp-small-servers
service tcp-small-servers
!
hostname router
!
enable secret 5 $1$hhG6$C8XU.Ph/ALfd8bBtOH.zK.
enable password router
!
ip nat pool cks 210.101.66.182 210.101.66.182 netmask 255.255.255.252
ip nat inside source list 1 pool cks overload
!
interface Ethernet0
ip address 200.200.200.254 255.255.255.0
ip nat inside
!
interface Serial0
ip address 210.101.66.182 255.255.255.252
ip nat outside
encapsulation ppp
!
router rip
network 200.200.200.0
network 210.101.66.0
!
no ip classless
ip route 0.0.0.0 0.0.0.0 210.101.66.181
access-list 1 permit 200.200.200.0 0.0.0.255
!
line con 0
line vty 0 4
password router
login
!
end


[ config 예2 ]

Bluehill#sh conf
Using 1937 out of 32762 bytes
!
version 11.2
service timestamps debug datetime localtime
service timestamps log datetime localtime
no service udp-small-servers
no service tcp-small-servers
!
hostname router
!
enable secret 5 $1$m5fp$oTlTNpBGcNvfR2ONCQPqj/
enable password kim
!
ip subnet-zero
ip nat translation timeout 300
ip nat translation tcp-timeout 300
ip nat pool hansol 210.101.116.1 210.101.116.254 netmask 255.255.255.0
ip nat inside source list 10 pool hansol
ip name-server 210.116.254.1
!
interface Ethernet0
ip address 133.10.60.5 255.255.0.0
no ip mroute-cache
ip nat inside
!
interface Serial0
no ip address
no ip mroute-cache
encapsulation frame-relay
bandwidth 128
shutdown
frame-relay lmi-type ansi
!
interface Serial0.1 multipoint - F/R PORT 사용
ip address 210.116.246.103 255.255.255.240
ip accounting output-packets
no ip mroute-cache
ip nat outside
frame-relay interface-dlci 700
!
interface Serial1
ip address 210.101.117.34 255.255.255.252
ip accounting output-packets
no ip mroute-cache
no ip route-cache
ip nat outside
!
router rip
passive-interface Ethernet0
network 133.10.0.0
network 168.126.0.0
network 210.101.116.0
network 210.121.42.0
network 210.121.43.0
distribute-list 77 out Serial0.1
!
ip http server
ip http port 90
ip classless
ip route 0.0.0.0 0.0.0.0 210.101.117.33
ip route 0.0.0.0 0.0.0.0 168.126.148.49
ip route 133.10.0.0 255.255.0.0 133.10.10.4
ip route 133.20.0.0 255.255.0.0 133.10.10.4
ip route 133.30.0.0 255.255.0.0 133.10.10.4
ip route 210.101.116.0 255.255.255.0 Null0 254
ip route 210.121.42.0 255.255.255.0 Null0 254
ip route 210.121.43.0 255.255.255.0 Null0 254
access-list 10 permit 210.101.116.0
access-list 10 permit 133.10.0.0 0.0.255.255
access-list 66 permit 133.10.0.0 0.0.255.255
access-list 77 permit 210.121.43.0
access-list 77 permit 210.121.42.0
snmp-server community tnldnsrj RW
!
line con 0
password blivy
line aux 0
transport input all
line vty 0 4
password blivy
login
!
end

예제1)
router#sh config
Using 709 out of 32762 bytes
!
version 11.2
no service password-encryption
no service udp-small-servers
no service tcp-small-servers
!
hostname router
!
enable secret 5 $1$UnkP$pEIOM/ZlIw/918ANOS4zm0
!
ip nat pool kt 211.54.83.170 211.54.83.173 netmask 255.255.255.224
ip nat inside source list 1 pool kt_pri overload
ip name-server 168.126.63.1
!
interface Ethernet0
ip address 211.54.83.174 255.255.255.224 secondary
ip address 168.192.100.254 255.255.255.0
ip nat inside
!
interface Serial0
no ip address
ip nat outside
!
interface Serial1
no ip address
shutdown
!
ip classless
ip route 0.0.0.0 0.0.0.0 Serial0
access-list 1 permit 168.192.100.0 0.0.0.255
!
!
line con 0
line aux 0
line vty 0 4
password suwon
login
!
end

router#

예제2)
router#sh conf
Using 1417 out of 32762 bytes
!
version 11.2
no service password-encryption
no service udp-small-servers
no service tcp-small-servers
!
hostname router
!
enable secret 5 $1$7N4H$AVSlVb5dbZxJTsXp8Hmcg/
enable password router
!
ip nat pool net-1 210.223.111.6 210.223.111.255 netmask 255.255.255.0
ip nat inside source list 1 pool net-1 overload
ip nat inside source static 172.16.211.9 210.223.111.2
ip domain-name kyungdong.co.kr
ip name-server 172.16.211.9
!
interface Ethernet0
ip address 172.16.206.11 255.255.255.0 secondary
ip address 210.223.111.4 255.255.255.0
ip nat inside
!
interface Serial0
ip address 192.168.234.190 255.255.255.252
ip nat outside
bandwidth 1544
!
interface Serial1
ip address 172.16.100.1 255.255.255.0
ip nat inside
!
router rip
redistribute static
network 172.16.0.0
!
ip classless
ip route 0.0.0.0 0.0.0.0 192.168.234.189
ip route 128.3.2.0 255.255.255.0 172.16.206.12
ip route 172.16.101.0 255.255.255.0 172.16.100.2
ip route 172.16.107.0 255.255.255.0 172.16.100.2
ip route 172.16.108.0 255.255.255.0 172.16.100.2
ip route 172.16.209.0 255.255.255.0 172.16.206.10
ip route 172.16.210.0 255.255.255.0 172.16.206.10
ip route 172.16.211.0 255.255.255.0 172.16.206.10
ip route 172.16.212.0 255.255.255.0 172.16.206.10
access-list 1 permit 172.16.0.0 0.0.255.255
access-list 1 permit 128.3.2.0 0.0.0.255
snmp-server community public RO
!
line con 0
line aux 0
line vty 0 4
password router
login
!
end

예제3)
router#sh conf
Using 1215 out of 32762 bytes
!
version 11.2
no service password-encryption
no service udp-small-servers
no service tcp-small-servers
!
hostname router
!
enable secret 5 $1$40jO$hyLEyHgr4FB7uItdw3SXW1
enable password decolan
!
ip nat pool dsec 210.217.42.1 210.217.42.100 netmask 255.255.0.0
ip nat inside source list 1 pool dsec overload
ip domain-name kornet21.net
ip name-server 168.126.63.1
ip name-server 147.47.1.1
!
interface Ethernet0
ip address 210.217.42.1 255.255.0.0 secondary
ip address 130.1.3.5 255.255.0.0
ip nat inside
!
interface Serial0
ip address 192.168.62.58 255.255.255.252
ip nat outside
ip rip authentication mode 0
!
interface Serial1
no ip address
shutdown
!
ip classless
ip route 0.0.0.0 0.0.0.0 192.168.62.57
ip route 130.1.0.0 255.255.0.0 130.1.3.11
ip route 130.3.0.0 255.255.0.0 130.1.3.11
ip route 130.4.0.0 255.255.0.0 130.1.3.11
ip route 130.10.0.0 255.255.0.0 130.1.3.11
access-list 1 permit 130.1.0.0 0.0.255.255
access-list 1 permit 130.2.0.0 0.0.255.255
access-list 1 permit 130.3.0.0 0.0.255.255
access-list 1 permit 130.7.0.0 0.0.255.255
access-list 1 permit 130.4.0.0 0.0.255.255
access-list 1 permit 130.10.0.0 0.0.255.255
!
line con 0
line aux 0
line vty 0 4
password decolan
login
!
end

예제4)
router#sh conf
Using 1276 out of 32762 bytes
!
version 11.3
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
service udp-small-servers
service tcp-small-servers
!
hostname router
!
enable secret 5 $1$i9vO$MhVhuIF/6NGwDr0kuVXFK0
enable password router
!
ip nat pool sm_pri1 210.183.57.64 210.183.57.95 netmask 255.255.255.224
ip nat pool sm_pri 210.113.59.66 210.113.59.126 netmask 255.255.255.192
ip nat inside source list 1 pool sm_pri
ip nat inside source list 2 pool sm_pri1
ip nat inside source static 195.7.7.253 210.113.59.65
no ip domain-lookup
!
!
!
interface Ethernet0
ip address 195.7.7.254 255.255.255.0
ip nat inside
!
interface Serial0
ip address 192.168.239.190 255.255.255.252
ip nat outside
no keepalive
!
interface Serial1
no ip address
shutdown
!
ip classless
ip route 0.0.0.0 0.0.0.0 Serial0
ip route 195.7.8.0 255.255.255.0 195.7.7.250
ip route 195.7.9.0 255.255.255.0 195.7.7.250
ip route 195.7.10.0 255.255.255.0 195.7.7.250
ip route 195.7.11.0 255.255.255.0 195.7.7.250
!
access-list 1 permit 195.7.7.0 0.0.0.255
access-list 1 permit 195.7.10.0 0.0.0.255
access-list 2 permit 195.7.8.0 0.0.0.255
access-list 2 permit 195.7.9.0 0.0.0.255
access-list 2 permit 195.7.11.0 0.0.0.255
!
line con 0
line aux 0
line vty 0 4
password suwon
login
!
end
Posted by theYoungman
engineering/Network Eng.2006. 8. 7. 00:55

라우터 구성 실습을 하려구 Back to Back 구성을 했는데요..
라우터의 interface의 IP는 임의로 지정해 주나요?
어차피 내부에서 라우터로만 구성된 논리 주소는 고유하니까..
세브넷마스크하구 IP의 구조만 제대로 하면 되는지요?

________________________________________________________________


CCNA 공부하시나 봐요?...^^

어차피 내부구성이니깐 공인IP든 사설IP든 상관없습니다
주의할점은 DCE 장비에 Clock rate 설정 잊지마세요~

-------------------------------------------------------
한번 참고하시라고 올립니다
-------------------------------------------------------

실제구성

라우터(DCE)--(V.35 CABLE)--DSU/CSU(DTE)--WAN--DSU/CSU(DTE)--(V.35)--라우터

=> V.35 케이블을 이용해서 DSU/CSU 장비에 접속하고 이 장비들이 다시 WAN 으로
접속을 하는것 입니다

백투백

라우터--(V.35 CABLE : DTE)====(V.35 CABLE : DCE)--라우터

=>결국 두 라우터를 직접 연결해서 전용선 구간에서 연결한것 처럼 하는것입니다
그러기 위해서는 DTE/DCE V.35 CABLE 이 필요합니다
(결국에는 랜의 크로스 케이블하고 같은은것 입니다)
글구, DCE 장비에 CLOCK RATE 설정해야 통신이 가능합니다

=============================================================================

DCE (Distributed Computing Environment; or Data Communication Equipment)

네트웍 컴퓨팅에서, DCE[디씨이](Distributed Computing Environment ; 분산 컴퓨팅 환경)는 분산 컴퓨터들의 시스템 내에서 컴퓨팅 및 데이터 교환을 설정하고 관리하는데 필요한 산업표준 소프트웨어 기술이다. 일반적으로 DCE는 여러 가지 다른 크기의 서버들이 지리적으로 퍼져있는 대형 컴퓨터 시스템의 네트웍 내에서 사용된다. DCE는 클라이언트/서버 모델을 사용한다. DCE를 사용하면, 사용자는 원격지의 서버에 있는 응용프로그램과 데이터를 쓸 수 있다. 프로그래머들은 그들의 프로그램이 어느 곳에서 실행되는지 또는 데이터가 어디에 위치해 있는지 등에 대해 전혀 신경을 쓸 필요가 없다.
DCE 설정시에는 대부분, 필요할 때 DCE 응용프로그램과 관련 데이터들을 찾을 수 있도록 분산 디렉토리를 준비하는 것이 필요하다. DCE는 보안지원을 포함하며, 몇몇 제품들은 IBM의 CICS, IMS 및 DB2 데이터베이스들과 같은 보편적인 데이터베이스에 접근하기 위한 지원을 제공한다.
DCE는 몇몇 회원사들이 기여한 소프트웨어 기술을 사용하여, OSF (Open Software Foundation)에 의해 개발되었다.

컴퓨터 통신에서의 DCE (Data Communication Equipment ; 데이터 통신 기기)는 모뎀이나 다른 직렬장치들이 컴퓨터와 데이터를 주고받기 위해 사용하는 RS-232C 인터페이스를 의미한다. DCE 인터페이스와 DTE 인터페이스간의 관계에 대해 좀더 자세한 정보를 알기 원하면 RS-232C를 찾아 보라.

---------------------------------------------------------------------------------
DTE (Data Terminal Equipment) ; 데이터 단말 장치

컴퓨터 데이터 통신에서, DTE[디티이]는 컴퓨터가 모뎀이나 기타 다른 직렬장치를 이용하여 데이터를 교환하기 위한 RS-232C 인터페이스이다. DTE 인터페이스와 DCE 인터페이스에 관한 좀더 자세한 정보는, RS-232C를 참조할 것.

---------------------------------------------------------------------
CSU/DSU (Channel Service Unit/Digital Service Unit)

CSU/DSU는 근거리통신망에 사용되는 통신기술로부터 나온 디지털 데이터 프레임들을 광역통신망에 보낼 수 있도록 적절한 프레임으로 변환하는 외장형 모뎀 크기의 하드웨어 장치이다. 예를 들어, 만약 자신의 집에서 웹 관련 비즈니스를 하려면 T-1 정도의 디지털 전용회선을 전화회사로부터 빌려야하는데, 이때 자신의 집과 전화회사에 각각 1개씩의 CSU/DSU를 설치해야한다.

CSU는 광역통신망으로부터 신호를 받거나 전송하며, 장치 양측으로부터의 전기적인 간섭을 막는 장벽을 제공한다. CSU는 또한 전화회사에서 테스트 목적으로 보내는 신호에 대해 루프백 반향을 할 수 있다. DSU는 회선제어를 관리하고, RS-232C, RS-449 또는 근거리통신망으로부터의 V.35 프레임들과 T-1 회선상의 TDM DSX 프레임 사이의 입출력을 변환한다. DSU는 타이밍 에러와 신호재생을 관리한다. DSU는 DTE로서 컴퓨터와 CSU 사이에서 모뎀과 같은 인터페이스를 제공한다.

CSU/DSU는 별개의 제품으로 만들어지지만, 때로는 라우터와 함께 통합되기도 한다. CSU/DSU의 DTE 인터페이스는 보통 V.35나 RS-232C 또는 이와 비슷한 직렬 인터페이스와 호환성이 있다. CSU/DSU 제작자로는 시스코, 메모텍 및 Adtran 등이 있다.

시스코는 DSU/CSU라는 용어를 더 선호한다. CSU라는 용어는 AT&T가 자신들의 비교환 디지털 데이터시스템의 인터페이스를 부르는 데에서 유래되었다. DSU는 표준 인터페이스를 사용한 DTE의 인터페이스를 제공하며, 또한 테스팅 기능도 제공한다


기타  back-to-back 이면 clock rate 잊지 마세요.

Posted by theYoungman
engineering/Network Eng.2006. 8. 7. 00:53
출처 블로그 > ♤우리집♤
원본 http://blog.naver.com/535v/140010604504
Router - 후니의 쉽게 쓴 시스코 네트워킹에서...
1. 라우터를 한마디로 말하자면
- 지능을 가진 경로 배정기
2. 라우터는 무슨일을 할까요?

- 경로 결정(Path Determination) +  Switching
- 가장 좋은 경로를 결정하기 위해 라우팅 알고리즘을 사용하고 이런 라우팅 알고리즘은 라우팅 테이블을 만듬

3. 라우터는 어떻게 생긴 녀석일까?
- 시스코 2500 라우터, 3600 라우터, 12400 라우터, 7500 라우터 등
- 인터페이스 : 라우터의 접속 포트
  . 라우터 2501 뒷면 [ Ethernet    Serial0   Serial1      Console   AUX   I/O   전원잭 ]
  . Ethernet 포트 : 내부 네트워크, 즉 LAN을 위한 접속 포트, TP 또는 AUI(15핀) 방식
  . Serial 포트 : 외부 네트워크, 즉 WAN을 위한 접속 포트로 DSU/CSU와 연결함(V.35케이블 이용)

4. 라우팅 프로토콜과 라우티드 프로토콜

- 라우티드 프로토콜 : TCP/IP, IPX, Apple Talk 등
- 라우팅 프로토콜
1) RIP : Routing Information Protocol
2) IGRP : Interior Gateway Routing Protocol
3) OSPF : Open Shortest Path First
4) EIGRP : Enhanced Interior Gateway Routing Protocol

5. Static 라우팅 프로토콜과 Dynamic 라우팅 프로토콜
- Static 라우팅 프로토콜 : 사람이 구성해 줘야 하며 라우터는 정해진 길로만 감
- Dynamic 라우팅 프로토콜 : 라우터가 라우팅 프로토콜을 통해 알아서 길을 찾는 대신 라우터가 하는 일이 많음
  RIP, IGRP, OSPF, EIGRP 등
6. 라우팅 테이블에 대한 이야기
- show ip router (= sh ip ro) TCP/IP에서의 라우팅 테이블 보기 (cf show ipx router)
- 라우터는 라우팅 테이블을 RAM에 올려서 이용, 파워가 꺼지면 전부 지워지며 켜면 수 초 또는 수 분만에 다시 만들어 짐
7. AS 그리고 내부용과 외부용 라우팅 프로토콜
- AS Autonomous(자주적인) System
 . 네트워크 관리자(하나의 관리 전략)에 의해서 관리되는 라우터들의 집단
  . AS 밖(인터넷)으로 나가고자 할때는 ASBR(AS Boundary Router)을 통해야 함
- 내부용 라우팅 프로토콜(IGP(= IRP) Interior Gateway(Router) Protocol) : RIP, IGRP, OSPF, EIGRP 등
- 외부용 라우팅 프로토콜(EGP(= ERP) Exterior Gateway(Router) Protocol) : EGP ,BGP 등
8. 라우터 구성의 시작
- 라우터에 명령어 입력하는 방법? 다섯가지 정도
                                                                                                                  [3.텔넷접속]
                                                                                   [4.TFTP 서버]-----|    |    |-----[5.NMS 네트워크관리시스템]
[1.터미널 에뮬레이션 프로그램을 이용한 콘솔 전송]----콘솔포트-[라우터]-AUX포트----[2.모뎀] 원격지에서 모뎀통해 라우터 명령...
9. 라우터의 중요한 몇 가지 모드
- 유저모드, Privileged 모드, Configuration(구성) 모드, Setup 모드, RXBOOT 모드 등
1) RXBOOT 모드 : 라우터의 패스워드를 모르는 경우나 라우터의 이미지 파일(IOS)에 문제가 생긴 경우 복구를 위해 사용하는 모드
2) Setup 모드 : 라우터를 처음 구매해서 파워를 켰거나 라우터에 구성 파일이 없는 경우 라우터가 부팅하면서 자동으로 들어가는 모드
3) '>'가 있는 모드 : 유저 모드, ping 테스트 trace 가능, 라우터 구성 파일 보거나 구성을 할 수 없음
4) Privileged 모드 : 라우터의 운영자 모드, 유저모드에서 enable 명령 사용하여 들어가며 disable 명령 이용하여 빠져나감
5) Configuration(구성) 모드 : config 모드는 Privileged 모드에서만 가능 config terminal(conf t)로 들어가고 exit 또는 ctrl+Z로 빠짐
  Router> enable
  Password : *****
  Router# config terminal
  Router(config)# ctrl + Z
  Router>

Tip 1. 지금까지 내린 명령어를 보려면...
  Router# show history (기본 10개)

Tip 2. 기억할 수 있는 명령어 수를 30개로 늘이려면...
  Router# terminal history size 30 (256개까지 가능)

10. 라우터 안에는 어떤 것들이 살까요?

- 내부 : [RAM, NVRAM, Frash Memory, ROM]
  1) RAM : IOS + 라우팅 테이블 + 구성파일 + ARP 캐쉬 + 패스트 스위칭 캐쉬
   ※ IOS : 시스코 라우터 운영 시스템(Internetwork OS)
  2) NVRAM(Non Volatile RAM) : 라우터 구성파일이 백업되는 곳
  . show startup-config 또는 show config : NVRAM에 저장된 구성 파일 보는 것
  . show running-config 또는 write terminal : RAM에 저장된 구성 파일 보는 것
  3) Frash Memory : IOS가 저장되는 곳
  ※ 확장이 필요한 것? RAM과 Frash Memory
  4) ROM : PC의 CMOS와 비슷, POST(Power On Self Test), 기본 IOS가 탑재되어 있음
  ※ ROM Monitor(RXBOOT) 모드에서 롬부팅을 하는 경우 롬에 있는 IOS를 가지고 부팅함 => 패스워드 복구 등의 작업을 함

- 외부 : interface, console port, Auxiliary port

11. 내가 가진 라우터의 현재 정보는 모두 이 곳에

- 라우터
  [ RAM : IOS, 명령어 수행기, 현재 구성파일, 라우팅 테이블 등, 기타 프로그램, 버퍼용 메모리 ]
  [ NVRAM : 백업 구성파일)                                                                                                                     ]
  [ 플래시 메모리 : IOS 이미지                                                                                                                ]
  [ 인터페이스                                                                                                                                              ]

1) show version : 라우터의 기본적인 내용, 즉 사용하는 소프트웨어의 버전이라든지 아니면 가지고 있는 인터페이스 종류,
                                그리고 IOS가 어디서 부팅했는지 등에 관한 전반적인 내용을 볼 수 있음
2) show interface : 현재 모든 인터페이스 및 그의 현재 상황까지 보여줌
   show interface ethernet 0 또는 show interface serial 0/0 : 특정 인터페이스 지정해서 볼때
3) show flash : 플래쉬 메모리 보기
4) show processes cpu : 현재 라우터의 동작 상태 보여줌
5) show ip route
6) show clock : 라우터의 현재시간
7)  show history : 방금내린 명령어 10개 보여줌

Router# show version
Cisco Internetwork Operating System Software
IOS (tm) 3600 Software (C3620-JS-M), Version 11.2(14)P, RELEASE SOFTWARE (fc1) (설명)3600시리즈, IOS 11.2버젼
Copyright (c) 1986-1998 by cisco Systems, Inc.
Compiled Tue 26-May-98 22:42 by dschwart
Image text-base:0x600088E0, data-base: 0x607D6000

ROM : System Bootstrap, Version 11.1(19)AA, EARLY DEPLOYMENT RELEASE SOFTWARE (fc1)

Router uptime is 3 minutes
System restarted by power-on
System image file is "flash:c3620-js-mz.112-14.P", booted via flash
(설명) IOS가 플래쉬메모리에 저장되어 있으며 파일명이 "c3620-js-mz.112-14.P"이다
...
1 FastEthernet/IEEE 802.3 interface(s)
4 Serial network interface(s)

(설명) 하나의 FastEthernet과 4개의 Serial 인터페이스가 있다.
DRAM configuraiton is 32 bits wide with parity disabled.
29K bytes of non-volatile configuration memory.
8192K bytes of processor board System flash (Read/Write)

(설명) NVRAM 용량은 29KB이고 플래쉬메모리 용량은 8MB라는 의미
Configuration register is 0x2102

Router# show interface serial 0/0
Serial0/0 is down, line protocol is down
...
Router# show running-config(또는 write terminal 또는  sh run) : 현재 구성파일 보기
Router# show startup-config(또는 show config 또는 sh start) : 백업 구성파일 보기

Router# show flash
Dirtectory of flash:/
0  ---- 49096 Nov 03 1998 01:14:21 TinyROM-1.0(2)
1  -r-x 2470740 Mar 09 1999 00:18:52 c800-g3-mw.120-3.T1
12582912 bytes total (10027008 bytes free)

(설명) 현재 플래쉬 파일이름은 "c800-g3-mw.120-3.T1"이고 2.4MB 정도 이고
           플래쉬 전체 용량은 12MB이고 사용가능 용량은 10MB 정도 이다.

Router# show process cpu
CPU utilization for five seconds:0%/0%; one minute: 0%; five minutes:0%
PID Runtime(ms) Invoked uSedcs 5Sec 1Min 5Min TTY process
  1         4        78         51       0.00%  0.00%  0.00%  0  Load Meter
(설명) 현재 라우터의 5분, 1분, 5초 동안의 CPU 로드 퍼센트가 나타남

12. 라우터의 셋업 모드
- 라우터의 초보자를 위한 모드로 질문과 대답으로 구성 파일을 만드는 모드
- 라우터을 처음 샀을때나 setup이라는 명령으로 들어감
라우터의 도움말
Router# cl?
clear clock
Router# clock
% Incomplete command
Router# clock ?
set Set the time date
Router# clock set
% Incomplete command
Router# clock set ?
Current Time (hh:mm:ss)
Router# clock set 19:56:00
% Incomplete command
Router# clock set 19:56:00 ?
<1-31> Day of the month
MONTH Month of the year
Router# clock set 19:56:00 4 August
% Incomplete command
Router# clock set 19:56:00 4 August ?
<1993-2035> Year
Router# clock set 19:56:00 4 August 2004
Router#
13. 라우터에 명령을 입력하는 두번째 방법

- 구성모드(프리빌지지 모드를 통해서만 들어감, 유저모드(>) → 프리빌리지모드(#) → 구성모드((config)#))
- 구성모드에서 변경한 사항을 저장하려면 프리빌리지드 모드에서 write memory 명령을 써야 함

Router> enable
Router# configure terminal (또는 conf t)

- 라우터의 이름 Cisco-R, enable secret 값인 korea, enable password 값인 cisco 입력
Router(config)# hostname Cisco-R
Cisco-R(config)# enable secret korea
Cisco-R(config)# enable password cisco

- 라인 구성 모드에서 텔넷라인에 대한 패스워드 설정
Cisco-R(config)# line vty 0 4
Cisco-R(config-line)# password korea
Cisco-R(config-line)# exit

- 인터페이스 구성 모드
Cisco-R(config)# interface ethernet 0 (또는 int e 0)
Cisco-R(config-if)# no shutdown
Cisco-R(config-if)# ip addr 172.16.92.1  255.255.0.0
Cisco-R(config-if)# exit

Cisco-R(config)# int s 0
Cisco-R(config-if)# ip addr 152.100.10.67  255.255.0.0
Cisco-R(config-if)# no shut
Cisco-R(config-if)# exit

- 라우팅 프로토콜 세팅
Cisco-R(config)# router igrp 200
Cisco-R(config-router)# network 172.16.0.0
Cisco-R(config-router)# network 150.100.0.0
Cisco-R(config-router)# no network 150.100.0.0  (설명) 내가 잘못 입력한 명령을 지우고 싶다면 앞에다 no만 넣어주면 됨
Cisco-R(config-router)# network 152.100.0.0

- 지금까지 세팅한 자료 확인 sh run
Cisco-R(config-router)# exit
Cisco-R(config)# ctrl+Z
Cisco-R# sh run
...
- 지금 RAM상에 있는 구성 파일 NVRAM 저장(백업)하기(프리빌리지드 모드에서 가능)
Cisco-R# copy running-cofig startup-config (또는 write memory)

14. 스태틱 라우팅을 이용한 라우터 구성

- 스태틱 라우팅 프로토콜은 갈 수 있는 경로가 하나뿐인 Stub 라우터용으로 많이 사용됨(예, 게임방 라우터)


       [본사 네트워크] 150.150.0.0, 255.255.0.0,  A라우터의 Serial 0:203.210.100.1
  [라우터]---[라우터]
         |                   |
  [라우터]---[A라우터]==========인터넷                  [지방 사무소] Serial 0:203.210.100.2, Ethernet 0:210.240.10.1, 255.255.255.0
                                                                  =============[B라우터]---<S/W>---pc들(Stub 네트워크)

    →A라우터에는 여러 연결이 존재하므로 다이나믹 라우팅 프로토콜이 유리,
        B라우터는  A와 연결이 끊어지면 대치 경로 없음 이때 스태틱 라우팅이 유리

- 지방사무소의 B라우터에 스태틱 라우팅 설정
  . ip route network [mask] {address|interface} [distance]
  → network [mask] : 목적지 주소
  → {address|interface} : 1hop을 건너 뛴 IP 주소

- 지방사무소 네트워크 설정

Router> enable
Router# conf t

Router(config)# hostname Router-B
Router-B(config)# enable password cisco
Router-B(config)# int e 0
Router-B(config-if)# no shut
Router-B(config-if)# ip addr 210.240.10.1, 255.255.255.0
Router-B(config-if)# int s 0
Router-B(config-if)# no shut
Router-B(config-if)# ip addr 203.210.100.2, 255.255.255.0
Router-B(config-if)# exit

Router-B(config)# ip route 150.150.0.0 255.255.0.0 203.210.100.1 (스태틱 라우팅 시험문제)
Router-B(config)# ctrl+Z
Router-B# write mem
Router-B# disable
Route-B>
15. 스태틱 라우팅만 알면 디폴트 라우트는 식은 죽 먹기
- 디폴트 라우트? 경로를 찾아내지 못한 모든 네트워크들은 모두 이곳으로 가라고 미리 정해 놓은 길(미아보호소)
       [우리회사] 150.150.0.0, 255.255.0.0,  A라우터의 Serial 0:203.240.10.2
  [라우터]---[라우터]
         |                   |
  [라우터]---[A라우터]==========인터넷                    [인터넷망] Serial 0:203.240.10.1
                                                      203.240.10.0 =========[B라우터]---<S/W>---pc들(Stub 네트워크)
- [A라우터] rip를 이용한 디폴트 라우트 설정
  route rip
  network 150.150.0.0
  network 203.240.10.0
  ip default-network 203.240.10.0

- [A라우터] 스태틱라우팅을 이용한 디폴트 라우트 설정
ip route 0.0.0.0 0.0.0.0 203.240.10.1

- 디폴트 라우터는 디폴트 네트워크를 이용한 구성과 스태틱 라우팅을 이용한 구성이 있다.
  실생활에서는 스태틱 라우팅 프로토콜을 이용한 구성을 많이 사용한다.
- 참고 ping, trace

※ 디폴트 네트워크 구성시 규칙
1) ip default-network 뒤에 오는 네트워크 주소는 항상 디폴트 클래스에 맞춰서 주어야 한다. 즉 150.100.10.0(X) 150.100.0.0(O)
2) rip에서 디폴트 네트워크를 구성하는 경우는 반드시 rip 프로트콜에서 정의된 네트워크여야 한다.

16. 라우터의 구성 명령에 대한 버젼별 정리
- IOS 11.0 이상과 미만은 명령에 차이가 많은 남
라우터를 알아보기 쉽게 만드는 몇가지 명령들

- 라우터 이름(CISCO)주기 : 구성모드에서 가능
Router> enable
Router# conf t
Router(config)# hostname CISCO
CISCO(config)#

- 배너 입력(라우터가 접속한 시점에 배너가 나타남)
CISCO(config)# banner motd # This is cisco router #  (설명) motd : message of the day

- interface에 Description 주기
CISCO(config)# int s 0
CISCO(config-if)# description To access Pusan Router Serial 0

17. Distance Vector와 Link State

- Distance Vector
  . 거리와 방향만을 위주로 만들어진 라우팅 알고리즘, 라우팅 테이블에 목적지까지의 거리(홉 카운트 등)와 인접 라우터(방향)만을 저장
  . 라우팅 테이블이 적어 메모리 절약,
     정해진 시간마다 이웃 라우터로부터 라우팅 테이블 업데이트를 해야 하므로 트래픽 낭비 有,
     라우팅 테이블 변화가 있을때 모든 라우터가 알때까지 시간이 많이 걸림
  . 소형 네트워크에 적합
  . RIP, IGRP

- Link State
  . 라우터가 목적지까지의 모든 경로를 알고 있기 때문에 링크 변동에 따른 인식이 빠름
  . 라우팅 테이블 교환 주기가 길며 교환시에도 링크 변동이 일어난 라우팅 테이블만 교환하기 때문에 트래픽이 적다
  . 대형 네트워크에 적합
  . 메모리의 소모가 많고 CPU의 로드가 많다
  . OSPF

18. 라우터 패스워드 구성

- 유저 모드>에서 프리빌리지 모드#로 들어갈때 패스워드(enable password, enable secret)
  . enable password : 라우터 구성파일에 그대로 보여짐
  . enable secret : 라우터 구성파일에 암호화 되어 보여짐, 두 패스워드를 동시에 세팅했을 때는 enable secret 패스워드만 물음
Router> enable
Router# conf t
Router(config)# enable password cisco
Router(config)# enable secret korea

- 콘솔 패스워드 세팅
Router(config)# line con 0
Router(config-line)# login (설명) login이란 명령을 쓰지 않으면 콘솔에서 접속할 때 아무리 패스워드를 세팅했어도 묻지 않음
Router(config-line)# password cisco

- 버추얼 터미널 패스워드 세팅
Router(config)# line vty 0 4
Router(config-line)# login (설명) login이란 명령을 쓰지 않으면 콘솔에서 접속할 때 아무리 패스워드를 세팅했어도 묻지 않음
Router(config-line)# password cisco

- 버추얼 터미널 유저아이디와 패스워드 세팅시
Router(config)# line vty 0 4
Router(config-line)# login local
Router(config-line)# exit
Router(config)# username ccna password cisco

- AUX 포트 패스워드 세팅
Router(config)# line aux 0
Router(config-line)# login (설명) login이란 명령을 쓰지 않으면 콘솔에서 접속할 때 아무리 패스워드를 세팅했어도 묻지 않음
Router(config-line)# password cisco

- 콘솔이나 텔넷포트 등 자동 타임아웃 세팅
Router(config)# line con 0
Router(config-line)# exec-timeout 10 30 (설명) 10분30초 동안 아무런 입력이 없으면 자동 타임 아웃시킴


19. 시스코 라우터의 친구찾기 CDP
20. 텔넷을 이용한 장비 접속
  # telnet 203.210.100.2
21. Ping과 Trace
  # ping 100.2.4.150
  # trace 172.70.100.1
Posted by theYoungman
engineering/Network Eng.2006. 8. 7. 00:48

10 Immutable Laws of Security



Here at the Microsoft Security Response Center, we investigate thousands of security reports every year. In some cases, we find that a report describes a bona fide security vulnerability resulting from a flaw in one of our products; when this happens, we develop a patch as quickly as possible to correct the error. (See "A Tour of the Microsoft Security Response Center"). In other cases, the reported problems simply result from a mistake someone made in using the product. But many fall in between. They discuss real security problems, but the problems don't result from product flaws. Over the years, we've developed a list of issues like these, that we call the 10 Immutable Laws of Security.

Don't hold your breath waiting for a patch that will protect you from the issues we'll discuss below. It isn't possible for Microsoft—or any software vendor—to "fix" them, because they result from the way computers work. But don't abandon all hope yet—sound judgment is the key to protecting yourself against these issues, and if you keep them in mind, you can significantly improve the security of your systems.


On This Page
Law #1: If a bad guy can persuade you to run his program on your computer, it's not your computer anymore (어떤 사람이 당신에게 준 소프트웨어를 실행했다면, 그 컴퓨터는 더 이상 당신의 것이 아니다.)

Law #2: If a bad guy can alter the operating system on your computer, it's not your computer anymore
(어떤 사람이 당신 컴퓨터의 운영체제를 변경할 수 있다면, 그 컴퓨터는 더 이상 당신의 것이 아니다.)

Law #3: If a bad guy has unrestricted physical access to your computer, it's not your computer anymore
(어떤 사람이 당신의 컴퓨터에 물리적으로 접근할 수 있다면, 그 컴퓨터는 더 이상 당신의 것이 아니다.)

Law #4: If you allow a bad guy to upload programs to your website, it's not your website any more
(어떤 사람이 당신의 웹 사이트에 프로그램을 업로드할 수 있다면, 그 웹 사이트는 더 이상 당신의 것이 아니다.)

Law #5: Weak passwords trump strong security
(어떤 철통 같은 보안도 비밀번호가 노출되면 소용없는 일이다.)

Law #6: A computer is only as secure as the administrator is trustworthy
(관리자가 얼마나 믿을만한가에 따라서 기계의 보안 수준이 달라진다.)

Law #7: Encrypted data is only as secure as the decryption key
(암호화된 데이터는 복호화 키만큼만 안전하다.)

Law #8: An out of date virus scanner is only marginally better than no virus scanner at all
(오래된 바이러스 백신을 사용하는 것은 바이러스 백신을 사용하지 않는 것과 거의 차이가 없다.)

Law #9: Absolute anonymity isn't practical, in real life or on the Web
(완벽한 익명성 보장은 없다. 실생활에서도 그렇고 웹에서도 그렇다.)

Law #10: Technology is not a panacea
(기술은 만병통치약이 아니다.)



Law #1: If a bad guy can persuade you to run his program on your computer, it's not your computer anymore


It's an unfortunate fact of computer science: when a computer program runs, it will do what it's programmed to do, even if it's programmed to be harmful. When you choose to run a program, you are making a decision to turn over control of your computer to it. Once a program is running, it can do anything, up to the limits of what you yourself can do on the computer. It could monitor your keystrokes and send them to a website. It could open every document on the computer, and change the word "will" to "won't" in all of them. It could send rude emails to all your friends. It could install a virus. It could create a "back door" that lets someone remotely control your computer. It could dial up an ISP in Katmandu. Or it could just reformat your hard drive.

That's why it's important to never run, or even download, a program from an untrusted source—and by "source," I mean the person who wrote it, not the person who gave it to you. There's a nice analogy between running a program and eating a sandwich. If a stranger walked up to you and handed you a sandwich, would you eat it? Probably not. How about if your best friend gave you a sandwich? Maybe you would, maybe you wouldn't—it depends on whether she made it or found it lying in the street. Apply the same critical thought to a program that you would to a sandwich, and you'll usually be safe.

Top of page



Law #2: If a bad guy can alter the operating system on your computer, it's not your computer anymore

In the end, an operating system is just a series of ones and zeroes that, when interpreted by the processor, cause the computer to do certain things. Change the ones and zeroes, and it will do something different. Where are the ones and zeroes stored? Why, on the computer, right along with everything else! They're just files, and if other people who use the computer are permitted to change those files, it's "game over".

To understand why, consider that operating system files are among the most trusted ones on the computer, and they generally run with system-level privileges. That is, they can do absolutely anything. Among other things, they're trusted to manage user accounts, handle password changes, and enforce the rules governing who can do what on the computer. If a bad guy can change them, the now-untrustworthy files will do his bidding, and there's no limit to what he can do. He can steal passwords, make himself an administrator on the computer, or add entirely new functions to the operating system. To prevent this type of attack, make sure that the system files (and the registry, for that matter) are well protected. (The security checklists on the Microsoft Security website will help you do this).

Top of page



Law #3: If a bad guy has unrestricted physical access to your computer, it's not your computer anymore


Oh, the things a bad guy can do if he can lay his hands on your computer! Here's a sampling, going from Stone Age to Space Age:

• He could mount the ultimate low-tech denial of service attack, and smash your computer with a sledgehammer.

• He could unplug the computer, haul it out of your building, and hold it for ransom.

• He could boot the computer from a floppy disk, and reformat your hard drive. But wait, you say, I've configured the BIOS on my computer to prompt for a password when I turn the power on. No problem – if he can open the case and get his hands on the system hardware, he could just replace the BIOS chips. (Actually, there are even easier ways).

• He could remove the hard drive from your computer, install it into his computer, and read it.

• He could make a duplicate of your hard drive and take it back his lair. Once there, he'd have all the time in the world to conduct brute-force attacks, such as trying every possible logon password. Programs are available to automate this and, given enough time, it's almost certain that he would succeed. Once that happens, Laws #1 and #2 above apply.

• He could replace your keyboard with one that contains a radio transmitter. He could then monitor everything you type, including your password.

Always make sure that a computer is physically protected in a way that's consistent with its value—and remember that the value of a computer includes not only the value of the hardware itself, but the value of the data on it, and the value of the access to your network that a bad guy could gain. At a minimum, business-critical computers like domain controllers, database servers, and print/file servers should always be in a locked room that only people charged with administration and maintenance can access. But you may want to consider protecting other computers as well, and potentially using additional protective measures.

If you travel with a laptop, it's absolutely critical that you protect it. The same features that make laptops great to travel with – small size, light weight, and so forth—also make them easy to steal. There are a variety of locks and alarms available for laptops, and some models let you remove the hard drive and carry it with you. You also can use features like the Encrypting File System in Microsoft Windows® 2000 to mitigate the damage if someone succeeded in stealing the computer. But the only way you can know with 100% certainty that your data is safe and the hardware hasn't been tampered with is to keep the laptop on your person at all times while traveling.

Top of page



Law #4: If you allow a bad guy to upload programs to your website, it's not your website any more


This is basically Law #1 in reverse. In that scenario, the bad guy tricks his victim into downloading a harmful program onto his computer and running it. In this one, the bad guy uploads a harmful program to a computer and runs it himself. Although this scenario is a danger anytime you allow strangers to connect to your computer, websites are involved in the overwhelming majority of these cases. Many people who operate websites are too hospitable for their own good, and allow visitors to upload programs to the site and run them. As we've seen above, unpleasant things can happen if a bad guy's program can run on your computer.

If you run a website, you need to limit what visitors can do. You should only allow a program on your site if you wrote it yourself, or if you trust the developer who wrote it. But that may not be enough. If your website is one of several hosted on a shared server, you need to be extra careful. If a bad guy can compromise one of the other sites on the server, it's possible he could extend his control to the server itself, in which he could control all of the sites on it—including yours. If you're on a shared server, it's important to find out what the server administrator's policies are. (By the way, before opening your site to the public, make sure you've followed the security checklists for IIS 4.0 and IIS 5.0).

Top of page



Law #5: Weak passwords trump strong security


The purpose of having a logon process is to establish who you are. Once the operating system knows who you are, it can grant or deny requests for system resources appropriately. If a bad guy learns your password, he can log on as you. In fact, as far as the operating system is concerned, he is you. Whatever you can do on the system, he can do as well, because he's you. Maybe he wants to read sensitive information you've stored on your computer, like your e-mail. Maybe you have more privileges on the network than he does, and being you will let him do things he normally couldn't. Or maybe he just wants to do something malicious and blame it on you. In any case, it's worth protecting your credentials.

Always use a password—it's amazing how many accounts have blank passwords. And choose a complex one. Don't use your dog's name, your anniversary date, or the name of the local football team. And don't use the word "password"! Pick a password that has a mix of upper- and lower-case letters, number, punctuation marks, and so forth. Make it as long as possible. And change it often. Once you've picked a strong password, handle it appropriately. Don't write it down. If you absolutely must write it down, at the very least keep it in a safe or a locked drawer—the first thing a bad guy who's hunting for passwords will do is check for a yellow sticky note on the side of your screen, or in the top desk drawer. Don't tell anyone what your password is. Remember what Ben Franklin said: two people can keep a secret, but only if one of them is dead.

Finally, consider using something stronger than passwords to identify yourself to the system. Windows 2000, for instance, supports the use of smart cards, which significantly strengthens the identity checking the system can perform. You may also want to consider biometric products like fingerprint and retina scanners.

Top of page



Law #6: A computer is only as secure as the administrator is trustworthy


Every computer must have an administrator: someone who can install software, configure the operating system, add and manage user accounts, establish security policies, and handle all the other management tasks associated with keeping a computer up and running. By definition, these tasks require that he have control over the computer. This puts the administrator in a position of unequalled power. An untrustworthy administrator can negate every other security measure you've taken. He can change the permissions on the computer, modify the system security policies, install malicious software, add bogus users, or do any of a million other things. He can subvert virtually any protective measure in the operating system, because he controls it. Worst of all, he can cover his tracks. If you have an untrustworthy administrator, you have absolutely no security.

When hiring a system administrator, recognize the position of trust that administrators occupy, and only hire people who warrant that trust. Call his references, and ask them about his previous work record, especially with regard to any security incidents at previous employers. If appropriate for your organization, you may also consider taking a step that banks and other security-conscious companies do, and require that your administrators pass a complete background check at hiring time, and at periodic intervals afterward. Whatever criteria you select, apply them across the board. Don't give anyone administrative privileges on your network unless they've been vetted – and this includes temporary employees and contractors, too.

Next, take steps to help keep honest people honest. Use sign-in/sign-out sheets to track who's been in the server room. (You do have a server room with a locked door, right? If not, re-read Law #3). Implement a "two person" rule when installing or upgrading software. Diversify management tasks as much as possible, as a way of minimizing how much power any one administrator has. Also, don't use the Administrator account—instead, give each administrator a separate account with administrative privileges, so you can tell who's doing what. Finally, consider taking steps to make it more difficult for a rogue administrator to cover his tracks. For instance, store audit data on write-only media, or house System A's audit data on System B, and make sure that the two systems have different administrators. The more accountable your administrators are, the less likely you are to have problems.

Top of page



Law #7: Encrypted data is only as secure as the decryption key


Suppose you installed the biggest, strongest, most secure lock in the world on your front door, but you put the key under the front door mat. It wouldn't really matter how strong the lock is, would it? The critical factor would be the poor way the key was protected, because if a burglar could find it, he'd have everything he needed to open the lock. Encrypted data works the same way—no matter how strong the crypto algorithm is, the data is only as safe as the key that can decrypt it.

Many operating systems and cryptographic software products give you an option to store cryptographic keys on the computer. The advantage is convenience – you don't have to handle the key – but it comes at the cost of security. The keys are usually obfuscated (that is, hidden), and some of the obfuscation methods are quite good. But in the end, no matter how well-hidden the key is, if it's on the computer it can be found. It has to be – after all, the software can find it, so a sufficiently-motivated bad guy could find it, too. Whenever possible, use offline storage for keys. If the key is a word or phrase, memorize it. If not, export it to a floppy disk, make a backup copy, and store the copies in separate, secure locations. (All of you administrators out there who are using Syskey in "local storage" mode—you're going to reconfigure your server right this minute, right?)

Top of page



Law #8: An out of date virus scanner is only marginally better than no virus scanner at all


Virus scanners work by comparing the data on your computer against a collection of virus "signatures". Each signature is characteristic of a particular virus, and when the scanner finds data in a file, email, or elsewhere that matches the signature, it concludes that it's found a virus. However, a virus scanner can only scan for the viruses it knows about. It's vital that you keep your virus scanner's signature file up to date, as new viruses are created every day.

The problem actually goes a bit deeper than this, though. Typically, a new virus will do the greatest amount of damage during the early stages of its life, precisely because few people will be able to detect it. Once word gets around that a new virus is on the loose and people update their virus signatures, the spread of the virus falls off drastically. The key is to get ahead of the curve, and have updated signature files on your computer before the virus hits.

Virtually every maker of anti-virus software provides a way to get free updated signature files from their website. In fact, many have "push" services, in which they'll send notification every time a new signature file is released. Use these services. Also, keep the virus scanner itself—that is, the scanning software—updated as well. Virus writers periodically develop new techniques that require that the scanners change how they do their work.

Top of page



Law #9: Absolute anonymity isn't practical, in real life or on the Web


All human interaction involves exchanging data of some kind. If someone weaves enough of that data together, they can identify you. Think about all the information that a person can glean in just a short conversation with you. In one glance, they can gauge your height, weight, and approximate age. Your accent will probably tell them what country you're from, and may even tell them what region of the country. If you talk about anything other than the weather, you'll probably tell them something about your family, your interests, where you live, and what you do for a living. It doesn't take long for someone to collect enough information to figure out who you are. If you crave absolute anonymity, your best bet is to live in a cave and shun all human contact.

The same thing is true of the Internet. If you visit a website, the owner can, if he's sufficiently motivated, find out who you are. After all, the ones and zeroes that make up the Web session have to be able to find their way to the right place, and that place is your computer. There are a lot of measures you can take to disguise the bits, and the more of them you use, the more thoroughly the bits will be disguised. For instance, you could use network address translation to mask your actual IP address, subscribe to an anonymizing service that launders the bits by relaying them from one end of the ether to the other, use a different ISP account for different purposes, surf certain sites only from public kiosks, and so on. All of these make it more difficult to determine who you are, but none of them make it impossible. Do you know for certain who operates the anonymizing service? Maybe it's the same person who owns the website you just visited! Or what about that innocuous website you visited yesterday, that offered to mail you a free $10 off coupon? Maybe the owner is willing to share information with other website owners. If so, the second website owner may be able to correlate the information from the two sites and determine who you are.

Does this mean that privacy on the Web is a lost cause? Not at all. What it means is that the best way to protect your privacy on the Internet is the same as the way you protect your privacy in normal life—through your behavior. Read the privacy statements on the websites you visit, and only do business with ones whose practices you agree with. If you're worried about cookies, disable them. Most importantly, avoid indiscriminate Web surfing—recognize that just as most cities have a bad side of town that's best avoided, the Internet does too. But if it's complete and total anonymity you want, better start looking for that cave.

Top of page



Law #10: Technology is not a panacea


Technology can do some amazing things. Recent years have seen the development of ever-cheaper and more powerful hardware, software that harnesses the hardware to open new vistas for computer users, as well as advancements in cryptography and other sciences. It's tempting to believe that technology can deliver a risk-free world, if we just work hard enough. However, this is simply not realistic.

Perfect security requires a level of perfection that simply doesn't exist, and in fact isn't likely to ever exist. This is true for software as well as virtually all fields of human interest. Software development is an imperfect science, and all software has bugs. Some of them can be exploited to cause security breaches. That's just a fact of life. But even if software could be made perfect, it wouldn't solve the problem entirely. Most attacks involve, to one degree or another, some manipulation of human nature—this is usually referred to as social engineering. Raise the cost and difficulty of attacking security technology, and bad guys will respond by shifting their focus away from the technology and toward the human being at the console. It's vital that you understand your role in maintaining solid security, or you could become the chink in your own systems' armor.

The solution is to recognize two essential points. First, security consists of both technology and policy—that is, it's the combination of the technology and how it's used that ultimately determines how secure your systems are. Second, security is journey, not a destination—it isn't a problem that can be "solved" once and for all; it's a constant series of moves and countermoves between the good guys and the bad guys. The key is to ensure that you have good security awareness and exercise sound judgment. There are resources available to help you do this. The Microsoft Security website, for instance, has hundreds of white papers, best practices guides, checklists and tools, and we're developing more all the time. Combine great technology with sound judgment, and you'll have rock-solid security.

Posted by theYoungman
engineering/Network Eng.2006. 8. 7. 00:32
미들웨어란 무엇인가?

기본적으로 미들웨어는 애플리케이션들을 연결해 이들이 서로 데이터를 교환할 수 있게 해 주는 소프트웨어다. 미들웨어는 애플리케이션들을 직접 연결하는 방식에 비해 몇 가지 중요한 이점이 있다. 애플리케이션들을 직접 연결할 경우, 일반적으로 관련된 애플리케이션 모두에 코드를 추가해 각 애플리케이션이 서로 대화하도록 지시해야만 한다. 반면 미들웨어는 이 대화 과정에서 번역기라는 독립적인 제3자의 역할을 함으로써 애플리케이션 모두에 코드를 추가하는 엄청난 작업을 할 필요가 없다.

미들웨어의 종류

기업들이 통합과 관련된 여러 업무를 더 잘 처리하기 위해 여러 종류의 미들웨어를 도입하는 일은 이례적인 일이 아니다. 일반적으로 더 복잡한 통합 작업이 요구되는 더 큰 기업들은 EAI(Enterprise Application Integration)와 같은 더 정교한 미들웨어 제품을 선호하기 마련이다.

RPC와 데이터베이스 게이트웨이

설명

아마도 이것들은 진짜 미들웨어가 아닐 수 있지만, 문맥상으로 볼 때 전혀 관련이 없다고도 말할 수 없다. 양쪽 모두 애플리케이션 연결 기능을 다루는 더 오래된 방법들로, 특히 분산 환경에서 그렇다.RPC는 원격절차호출(Remote Procedure Call)의 약어로, 서버 애플리케이션에 있는 어떤 절차를 촉발하는 클라이언트 애플리케이션의 코드중 한 조각을 말한다. 오늘날의 정의에 따르면 RPC는 미들웨어가 아니다. 비록 지금도 사용되고는 있지만, RPC는 여러 개의 애플리케이션을 서로 묶으려 할 때 프로그래머들이 반복해서 코딩 작업을 해야만 하는 방식이기 때문이다. 따라서 애플리케이션의 수가 늘어나면 RPC 외의 다른 미들웨어 방식이 더 효과적이다. 현재 RPC는 미들웨어들에 의해 대체되고 있다. 반면 데이터베이스 게이트웨이는 데이터 접근을 용이하게 할 수 있는 제3의 역할을 하기 때문에 RPC보다 미들웨어의 정의에 더 들어맞는다. 데이터베이스 게이트웨이는 애플리케이션들을 특정 종류의 데이터베이스 플랫폼에 연결해 준다. 일례로 HP 3000 서버에 있는 중대형 애플리케이션 및 데이터를 가진 기업을 생각해 보자. 많은 새로운 상용 애플리케이션들이 오라클이나 사이베이스 같은 유명 데이터베이스에 접근할 수 있도록 고안되었지만, 이 애플리케이션들이 더 오래된 HP 3000용 ‘터보이미지(TurboImage)’ DBMS를 이용하려면 약간의 도움이 더 필요한데, 이때 데이터베이스 게이트웨이가 그런 도움을 주다. 이런 것이 데이터베이스 게이트웨이의 전형적인 활용 사례다.

메시지-지향 미들웨어(MOM)

제품
MQ시리즈(MQSeries) - 아이비엠MSMQ - 마이크로소프트스마트소켓츠(SmartSockets) - 탈라리안(Talarian)

설명
MOM은 오래된 미들웨어 기술이다. 메시지-지향 미들웨어는 이메일과 비슷한 방식으로 데이터를 메시지 형태로 만들어 하나의 애플리케이션에서 다른 애플리케이션으로 전달한다. 사실 상용 MOM 제품이 보급되기 전, 세계 최대의 곡물회사인 카길 같은 대기업은 데이터 전송을 위해 휴렛팩커드의 오픈메일(OpenMail) 이메일 엔진을 토대로 MOM 통합 도구들을 자체 개발했었다.이메일의 원리를 이해하고 있다면, MOM의 원리도 알 수 있을 것이다. 그리고 이메일의 경우처럼, MOM의 장점은 애플리케이션 A의 데이터가 대기열에 가서 기다릴 수 있기 때문에 애플리케이션 B는 나중에 필요한 시점에서 그 데이터를 불러올 수 있다는 것이다. 이로 인해 일례로 애플리케이션 A가 정보를 전달하려는 순간 애플리케이션 B가 우연히 다운돼 재부팅을 해야만 하는 등의 상황에서도 데이터의 무결성이 보호될 수 있다. 이런 비동기적 접근법을 사용해, 미들웨어 서버는 애플리케이션 B가 다시 작동을 시작할 때까지 기다린 후 대기열의 데이터를 올바른 순서에 따라 던져준다.(이 같은 데이터 메시지의 전송 유보는 앞에서 말한 지속성의 한 예다.)

전형적인 사용처

MOM은 대개 데이터에 대해 수행되어야 하는 운영이 비교적 많지 않고 데이터 교환 시간이 그리 중요하지 않은 단순한 일방향의 교환을 위해 사용된다. 일례로 서로 다른 데이터베이스에 저장되어 있는 저축성 예금과 수표 계좌의 연결을 들 수 있다. 고객이 수표 계좌에 대한 자신의 주소를 갱신하면, 이에 따라 총괄 시스템은 이 고객의 다른 계좌의 주소들도 갱신하게 되지만, 이 갱신 작업에 3초나 10분이 걸린다고 해서 그것이 그리 큰 문제는 되지 않을 것이다.

거래처리(TP) 모니터

제품
CICS, 오픈CICS(OepnCICS) - 아이비엠BEA 턱시도(Tuxedo) - BEA 시스템즈

설명
거래처리(TP) 모니터는 본래 메인프레임 환경을 위해 개발된 유래가 오래된 기술이다.(MOM보다 오래됐다.) TP 모니터는 거래 데이터의 작성과 읽기를 관리하기 위해 전위처리 애플리케이션들과 후방지원 데이터베이스 사이에 위치한다.TP 모니터는 메시지-지향 미들웨어보다 더 애플리케이션들에 간여한다. 이것은 TP 모니터가 제공하는 고유의 서비스 이점을 활용하기 위해서 TP 모니터들이 애플리케이션들에 대해 더 많은 수정 작업을 요구한다는 의미다. TP 모니터는 또한 특수 보안 기능과 데이터 무결성 기능을 제공한다.

전형적인 사용처
TP 모니터는 대규모의 거래가 처리되는 환경에 맞는다. 다시 은행 업무의 예를 들면, 현금자동입출금기(ATM)에서 기록되는 모든 거래는 해당 금융기관이 고객의 계좌 잔고를 정확하게 추적할 수 있도록 세심하게 다뤄져야만 한다. 이 일을 TP가 담당한다. 특히 TP 모니터는 복수의 애플리케이션들이 보안이나 디렉토리 서비스 같은 동일한 기본 기능 몇 가지를 동시에 필요로 할 때 유용하다.“TP 모니터의 이점은 새로운 애플리케이션들을 작성할 때 이 애플리케이션들에 맞춰 이런 서비스들을 다시 개발할 필요가 없다는 것이다.”라고 부쉐는 말한다. “애플리케이션들은 다른 종류의 미들웨어를 통해 서로 의사소통할 수 있지만, TP 모니터는 그 이상의 기능을 제공한다.” 따라서 TP 모니터를 단순한 일대일 애플리케이션 연결성을 위해 사용할 경우, 그것은 “성능 과잉”이 될 것이라고 그녀는 덧붙인다.

객체 모니터(Object Monitors)

제품
아이비엠 컴포넌트 브로커(Component Broker)비지브로커 ITS(VisiBroker Integrated Transaction Server) - 인프라이즈(Inprise)마이크로소프트 트랜잭션 서버(Transaction Server)

설명
객체 모니터(Object Monitors, 객체 TP 모니터라고도 불린다.)는 앞에서 설명한 TP 모니터의 발전된 버전이다. 새롭게 태동중인 제품군인 객체 모니터는 TP 모니터의 기능을 그대로 제공하지만, 바로 아래에서 설명될 객체요구브로커(ORB) 모델들과 같은 객체-지향 표준에 따라 작성된다는 점이 다르다. ORB 모델을 사용하기 때문에, 기업은 애플리케이션에 손을 대지 않고도 TP 모니터에 의해 제공되는 서비스들을 수정할 수 있다.

전형적인 사용처
온라인 쇼핑 장바구니 및 관련 주문처리 애플리케이션들 같은 전자상거래 애플리케이션이 객체 모니터를 사용하는 경향이 있다. 이것은 전자상거래 애플리케이션들이 서로 다른 많은 원천들로부터 데이터를 끌어올 필요가 있고, 갈수록 늘어나는 기능성에 맞춰 자주 수정될 필요가 있기 때문이다. 이에 필요한 유연성으로 인해 컴포넌트 기반의 아키텍처가 인기를 끌고 있는데, 이 아키텍처는 시스템의 다른 부분에 영향을 주지 않으면서도 시스템의 한 부분을 바꿀 수 있는 능력을 제공하기 때문이다. 또 객체 모니터는 웹 상거래시 필요한 고도의 데이터 무결성과 초대규모의 거래 용량 처리 능력을 제공한다.

객체요구브로커(ORBs)와 아키텍처

아키텍처 표준들
코바(Corba, Common Object Request Broker Architecture) - OMG(Object Management Group)엔터프라이즈 자바빈즈(EJB, Enterprise JavaBeans) - 썬 마이크로 시스템즈COM+(Component Object Model) - 마이크로소프트

설명
ORB는 애플리케이션과 네트웍 서비스(보안, 성능 모니터링, 프린트 등) 사이에서 정보를 전달한다. ORB는 서비스들과 상호운영 애플리케이션들을 위한 더 넓은 아키텍처 표준들의 핵심 부분이다. 위에 나열한 세 가지는 이런 표준 가운데 가장 유명한 주자들이다. 이 표준 가운데 하나를 구현한 실제 미들웨어 제품의 한 예가 최신 코바 표준 3.0에 기초하고 있는 아이오나(Iona) 테크놀러지로스社의 ‘오빅스 2000(Orbix 2000)’이다.ORB의 기본 전제는 애플리케이션들이 다른 애플리케이션들뿐 아니라 동일한 서비스들에도 접근할 필요가 있다는 것이다. 오늘날의 컴퓨팅 현실은 이기종 컴퓨팅 하드웨어와 운영체제 플랫폼 및 다양한 개발 도구들과 언어들로 구축된 애플리케이션들이 혼재돼 있다. 이 모든 컴포넌트(구성요소)가 서로 통신할 수 있도록 하기 위해서, 기업은 일관된 객체-지향 아키텍처가 필요한 것이다.그리고 비즈니스 파트너나 공급자들과 데이터 공유를 해야 하는 기업의 애플리케이션들이 늘어나면서, 이런 종류의 표준화된 접근법은 통합 작업을 크게 단순화시켜 줄 수 있다.코바는 역사적으로 유닉스 환경에 초점을 맞추고 있으며, 반면 엔터프라이즈 자바빈즈는 자바 언어로 개발하고 있는 기업에 가장 잘 맞는 아키텍처다. 좋은 소식은 이 두 표준이 서로 협력하고 있으며, 조화를 이루고 있다는 것이다. 코바 지지자들은 최소한의 작업으로 자바 개발 프로젝트를 통합할 수 있게 될 것이다.

그러나 부쉐는 현시점에서 코바 모델로 개발된 서버 객체들이 COM+ 모델로 개발된 서버 객체들과 잘 통신되지 않는다는 점을 지적한다.(반대도 마찬가지) 이것은 기업들이 이 2개 ORB 아키텍처 가운데 어느 한쪽을 선택해 사용해야지, 혼합 사용해서는 안된다는 것을 의미한다. 윈도우 NT/2000 서버 사용자들은 COM+에 의해 최적의 서비스를 받을 수 있다. 반면 유닉스 서버 사용자들(마이크로소프트의 윈도우를 탑재한 데스크탑 컴퓨터에 의해 접근되는 경우에도)은 코바가 최고의 선택일 것이다.

특별히 주목할 사항

마이크로소프트의 미들웨어 구조와 제품 계획들은 계속 진화되고 있으며, 그에 따라 관련 용어도 바뀌고 있다. 따라서 이 회사의 계획을 세심하게 따라가지 않는 사람들에겐 이것이 혼란의 한 원인이 될 수 있다. COM+의 원래 명칭은 단순히 COM이었다. 그러다 DCOM(Distributed Common Object Model)이 되었다. 부쉐에 따르면, 마이크로소프트는 현재 DCOM에서 벗어나 현재의 이름인 COM+으로 옮겼다고 한다. 그러나 COM+도 미들웨어 범주를 넘은 제품과 서비스를 포함하고 있는 DNA(Distributed Network Architecture)란 더 커다란 마이크로소프트 아키텍처 계획의 일부일 뿐이다.

기업 애플리케이션 통합(EAI)

제품
액티브엔터프라이즈(ActiveEnterprise) - 팁코 소프트웨어(Tibco Software)네온 임팩트(NEON Impact) - 뉴 에라 오브 네트웍스(New Era of Networks)이-게이트(e-Gate) - STC(Software Technologies Corp.)비즈니스웨어(BusinessWare) - 비트리아 테크놀러지(Vitria Technology)제네바 엔터프라이즈 인티그레이터(Geneva Enterprise Integrator) - 레벨 8 시스템즈(Level 8 Systems)(그 외 다수)

설명
EAI 업체들은 EAI 제품을 미들웨어라고 부르는데 커다란 거부감을 느끼고 있다. 기업(enterprise)이란 매력적인 단어를 포함하고 있는 EAI에 미들웨어란 명칭은 어울리지 않는다는 것이다. 그러나 EAI의 근본 개념은 통합이다. 불행하게도 EAI란 단어는 마케팅 목적에 아주 유용하기 때문에, 많은 업체가 각자의 제품이 제공하는 기능성들이 그처럼 폭이 넓음에도 불구하고 이 용어를 굳이 사용하고 있는 것이다. EAI는 미들웨어 이상이다. ORB와 같이 EAI 도구들은 일반적으로 데이터 전송을 위한 기저 메커니즘으로 메시지 브로커(broker)를 사용한다. 여기에 EAI 도구들은 데이터를 받으려는 각각의 특정한 애플리케이션의 입맛에 맞춘 형태로 데이터를 분석, 복제, 변환할 수 있다. 대기업의 경우, MOM과 EAI를 모두 사용할 수는 있지만, 아주 탄탄한 EAI 제품을 사용하고 있다면, MOM 같은 더 낮은 수준의 통합 도구를 사용하지 않아도 된다.EAI 도구들이 제공하게 될 차세대 기능성(이 기능성으로 인해 EAI와 다른 종류의 미들웨어는 한층 명확히 구분이 될 것이다.)은 비즈니스 프로세스 규칙들(rules)의 지원이다. EAI는 사용자가 적절한 비즈니스 프로세스를 정의하고 이런 규칙에 따라 데이터를 통합할 수 있게 해 준다. 일례로 적절한 권한자에 의해 승인을 받기만 하면, 구매 애플리케이션에서 수취 계정 애플리케이션으로 데이터를 자동으로 이동시키도록 규칙을 정할 수 있다.허위츠 그룹에 따르면, 비트리아社의 제품이 이런 종류의 비즈니스 프로세스 규칙을 지원한 최초의 제품이라 한다. 현재 다른 경쟁사들도 기업의 내부 및 공급망 전체에 이 기능을 추가할 수 있도록 각사 제품에 대해 작업하고 있다.XML(eXtensible Markup Language) 지원은 EAI 제품의 최대 장점중 하나다. 또한 EAI 제품은 비쯔톡(BizTalk, 마이크로소프트가 후원하는 B2B 통신 프로토콜)과 로제타넷(RosettaNet, 전자 업계 통신 프로토콜을 만들기 위한 이 업계 컨소시엄) 등 표준도 지원한다.

대부분의 EAI 제품의 경우, 사용자는 중앙 모듈을 구매한 후 각자가 필요로 하는 특정 인터페이스만을 선택적으로 구매할 수 있다. 일례로 STC의 이-웨이(e-Way) 제품군은 SAP, 시벨, 로터스 노츠, 다양한 후방지원 데이터베이스들을 위한 개별적인 ‘어댑터들(adapters)’을 포함하고 있다. 또한 대부분의 EAI 업체는 고객이 자체적으로 개발한 애플리케이션들을 연결할 필요가 있을 때, 고객의 프로그래밍 작업을 지원하는 서비스 부서를 갖고 있다. “그들은 80-20 법칙을 따르는 것처럼 보인다. 다시 말해 인터페이스의 80%는 미리 구축된 것을 사용하도록 하고, 나머지 20%는 고객이 작업을 하도록 하는 것이다.”라고 컨설팅 업체인 ARC의 부사장 존 캠패네일은 말한다.

전형적인 사용처

EAI는 많은 애플리케이션들을 통합해야 하는 대기업에 적합하다. 일례로 카길은 ERP, 유지보수 관리, 재고, 비용 회계 시스템 등 다양한 애플리케이션들을 연결하기 위해 BEA 시스템즈社의 이링크(eLink) EAI 제품을 사용하고 있다.

결론
당신의 회사에 적합한 미들웨어는 어떤 것인가? 유일한 대답은 없다. 서로 다른 애플리케이션과 통합 요구에 맞춰 각기 다른 미들웨어를 사용해야 한다. 반면 단일화된 접근법은 규모의 경제성을 제공하고 개발에 따른 수고를 덜어줄 것이다. 어느 경우든 각 용어가 무엇을 의미하는지 알고 있을 때, 선택의 고민은 훨씬 가벼워질 것이다.




http://www.ciokorea.com/001101/c74.htm
Posted by theYoungman
engineering/Network Eng.2006. 8. 7. 00:23
출처 블로그 > kdnnetwork님의 블로그
원본 http://blog.naver.com/kdnnetwork/140000675195
제 목 : 서버 모니터링 툴의 강자, RRDtool 가이드 (작성중. alpha 버전)
작성자 : 좋은진호(truefeel)
작성일 : 2003.9.22(월)~

그래픽 모니터링 툴인 RRDtool과 그 프론트엔드 툴 HotSaNIC의 설치, 운영가이드이다.

1. RRDtool의 이해
2. RRDtool 설치
3. HotSaNIC 설치
4. RRDtool 직접 다루기
5. 문제 해결
6. 이용 사례



1. RRDtool의 이해

RRDtool에 대해 들어가기 전에 먼저 MRTG 툴을 설명할 필요가 있을 듯 하다.
MRTG(Multi Router Traffic Grapher)는 이름에서도 드러난대로, SNMP 프로토콜을 사용하여
라우터를 거쳐가는 트래픽을 실시간 그래픽을 통해 모니터링하는데 가장 많이 사용한다.
이외에 시스템을 모니터링하는 여러 addon들이 있다.
DISK 사용량, CPU사용량, 메모리 사용량, 데몬, 세션 개수 등..
심지어는 P2P인 당나귀의 트래픽, 프락시 서버인 Squid 트래픽까지 실시간(실시간이라기
보다는 특정 시간간격으로 변화하여 보여준다는게 더 정확하지만)으로 웹에서 볼 수 있다.

RRDtool은 MRTG처럼 실시간 그래픽 모니터링 기능을 가지고 있으면서 보다 더 개선된 형태의
툴이다. 보다 빠르고 시스템 로드를 덜 잡아먹는다. 또한 MRTG의 제약이었던 2개 이상의 데이터를
하나의 그래픽을 통해 표시할 수 있다. 그래픽의 유연성(?)면에서도 단연 RRDtool이 압도한다.

[ MRTG로 트래픽 모니터링하는 화면 ]


[ RRDtool과 HotSaNIC으로 CPU 사용률을 모니터링하는 화면 ]


2. RRDtool 설치

RRDtool :
http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/

RRDtool의 시스템 요구사항은 다음과 같다.

Perl 5.005 (컴파일시에 문제가 발생하면 더 최신 것을 설치해본다.)
GNU make
GNU gcc

위 RRDtool 사이트에서 최신 버전을 받아온다. /usr/local/rrdtool에 하는 것으로 가정한다.


# tar xvfz rrdtool-1.0.45.tar.gz
# cd rrdtool-1.0.45
# ./configure --prefix=/usr/local/rrdtool
# make install
# make site-perl-install
... 중략 ...
Installing /usr/lib/perl5/site_perl/5.8.0/RRDp.pm
Installing /usr/share/man/man3/RRDp.3pm
... 생략 ...


3. HotSaNIC 설치

HotSaNIC :
http://hotsanic.sourceforge.net/archive/

HotSaNIC은 RRDtool을 사용하는 툴로 시스템 통계정보를 그래프로 생성해준다.

* 시스템 요구 사항

- RRDtool
- iptables 또는 ipchains (네트워크 트래픽 통계용으로 쓰기 위함)

위 사이트에서 받은 최신 버전은 컴파일없이 환경설정만으로 바로 사용하므로
/usr/local에서 압축을 푼다.


# cd /usr/local
# tar xvf HotSaNIC-0-5-0-pre3.tgz ( HotSaNIC/ 디렉토리가 생성된다. )
# cd HotSaNIC



1) 제공하는 모듈

HotSaNIC은 어떤 모듈을 통해 시스템 통계를 제공하는지 알아보고,
그 모듈을 사용할 것인지 안할 것인지를 판단해보자.


---------   ----------------------------------------------------------- ---------------
모듈      처리하는 통계 정보                      truefeel의 권장
---------   ----------------------------------------------------------- ---------------
APCUSV    APC UPS의 현황 (apcaccess 툴 사용)             N
         (APC UPS를 사용하지 않고 또한 있더라도 서버와 연결하여

                   모니터링중이 아니라면 N)
APPS     데몬, 응용프로그램별 프로세스 현황                Y
          (프로세스 이름 별도 설정 필요)
DISKIO     각 HDD별(파티션별이 아님) 입출력                   Y
         (별도 설정 필요)
DNET     Distributed.Net관련 RC5, OGR, DES, CSC ???         N
NETWORKS  네트워크 트래픽 (별도 설정 필요)                     Y
PART    파티션별 사용량                                  Y
PING     지정한 서버로 ping time 결과 (ping서버 설정 필요)        ping할 서버가

                                                                                                           있다면
SENSORS CPU, 마더보드 등의 온도, 전압등의 수치              원하는대로
SHOUTCAST 지정한 서버와 포트로의 스트링 현황 (서버, 포트 설정 필요)  N
SYSTEM  시스템의 프로세스 수, CPU 사용률, load, 메모리 사용률, ...      Y
TRAFFIC  네트워크 인터페이스별(eth0, ...) 트래픽                   Y
       (SNMP를 통해 라우터나 다른 서버의 트래픽도 모니터링 가능,
         물론 이 때는 별도 설정 필요)
WORMS  웹로그 파일을 이용한 님다, 코드레드 등의 웜 공격 건수           Y
      (웹로그 경로 설정 필요. 문자열 지정으로 다른 웜 공격도 설정 가능)
--------- ----------------------------------------------------------- ----------------


2) setup.pl로 기본 환경 파일 생성

이제 setup.pl 으로 기본 환경 설정을 해보자.
과정은 길지만 간단하다. 모듈을 보고 Y로 할 것인, N로 할 것인지를 결정한다.
이 설정은 나중에 ./setup.pl으로 변경할 수 있으므로 맘 편하게 진행해라.
(반복되는 내용이라 메시지 중간중간 생략하였다.)


# ./setup.pl
Configuring modules:


Module found: APCUSV
----------------------------------------
Do you want to use this module ? (Y)es / (n)o > n

Module found: APPS
----------------------------------------
Do you want to use this module ? (Y)es / (n)o >
Do you want to show this module's graphs on the webpage ? (Y)es / (n)o >

... 중략 ...

Module found: DISKIO  ... 중략 ...
Module found: DNET   ... 중략 ...
Module found: NETWORKS
----------------------------------------
Do you want to use this module ? (Y)es / (n)o >
Do you want to show this module's graphs on the webpage ? (Y)es / (n)o >

setting up networks ...

Configuring local interfaces.
(i)nternal means an interface pointiong to your local machines (intranet)
(e)xternal means an interface connecten with the internet
(n)one means you don't want to account this interface.

Please answer these:
found: eth0 - (i)nternal, (e)xternal or (n)one ? e

found: lo - (i)nternal, (e)xternal or (n)one ? n

... 중략 ...

Module found: PART   ... 중략 ...
Module found: PING   ... 중략 ...
Module found: SENSORS  ... 중략 ...
Module found: SHOUTCAST ... 중략 ...
Module found: SYSTEM  ... 중략 ...
Module found: TRAFFIC
----------------------------------------
Do you want to use this module ? (Y)es / (n)o >
Do you want to show this module's graphs on the webpage ? (Y)es / (n)o >

setting up traffic ...

Configuring local interfaces. Please answer these:
found: eth0 - (y)es or (n)o ? y

found: lo - (y)es or (n)o ? n


Please check the settings file and adapt it to satisfy your needs.
If you have any interfaces slower than 100 MBit, please change the
corrosponding default values.

... 중략 ...

Module found: WORMS  ... 중략 ...
----------------------------------------
Ok.
Writing main settings ...
 checking for OS-type (current: not configured)
OSTYPE="Linux"
 checking path to "rrdtimer" (current: not configured)
DAEMONDIR="/usr/local/HotSaNIC"
 checking path to "rrdtool" (current: not configured)
the following possibilities have been detected:
0 /usr/bin
1 /usr/local/rrdtool/bin

which one shall i use (0=default ... 1) ? > 1 ( rrdtool이 2군데 설치된 경우이다.)
BINPATH="/usr/local/rrdtool/bin" (RRDtool 실행이 있는 디렉토리)
LOGDIR="$DAEMONDIR/var/log/"   (로그가 저장될 디렉토리)
PIDFILE="$DAEMONDIR/var/rrdtimer.pid"
DIAGRAMLOG="last"
LOGSIZE="200000"
LOGBACKUPS="5"
DEBUGLEVEL="-1"
STIME="120"
SCHEDULE_MIN="100"
SCHEDULE_MAX="200"
RUN="apcusv apps diskio dnet networks part ping sensors shoutcast system traffic worm
s"
WEBDIR="not configured"
WIDTH="600"
HEIGHT="200"
IMAGEFORMAT="gif"
SHOW="apcusv apps diskio dnet networks part ping sensors shoutcast system traffic wor
ms"
ORDER="traffic system part ping dnet sensors"
DTIME="15" (15분 간격으로 이미지를 갱신한다.)
CTIME="24" (24시간 간격으로 통계화면 메인에 표시될 작은 크기의 이미지를 갱신한다.)
 guessing convert method...
 checking for Image::Magick perl module... not found
 checking path to "convert" from ImageMagick (current: not configured)
detected: /usr/bin/convert
is this corrrect? (y)
 checking path to "snmpwalk" (current: not configured)
detected: /usr/bin/snmpwalk
is this corrrect? (y)
SNMPWALK="/usr/bin/snmpwalk"
 checking path to "snmpget" (current: not configured)
detected: /usr/bin/snmpget
is this corrrect? (y)
SNMPGET="/usr/bin/snmpget"
checking path to "snmpbulkwalk" (current: not configured)
detected: /usr/bin/snmpbulkwalk
is this corrrect? (y)
SNMPBULKWALK="/usr/bin/snmpbulkwalk"

--- Main settings generated. ---

Writing start/stop script "rrdgraph" ... Ok.

Now adapt all settings files to satisfy your needs.
They are all linked to the directory /var/settings .


3) 필요한 디렉토리 생성

이제 RRDtool의 웹용 이미지와 html이 저장될 디렉토리와 로그 파일 저장 디렉토리를 생성한다.
디폴트로 로그는 HoSaNIC 홈의 var/log에 생성된다.
(html 홈은 /usr/local/apache/htdocs/ 라고 가정)


# mkdir /usr/local/apache/htdocs/rrdtool
# mkdir var/log


4) 환경 파일의 주요 설정

HoSaNIC 홈/settings가 주 설정 파일이고
HoSaNIC 홈/modules/모듈명/settings는 각 모듈별 설정 파일이다.

주 settings 파일에서 주요 설정을 살펴보자.(반드시 확인할 것에 * 표시해둠)


# BINPATH  = rrdtool 실행 파일이 있는 경로 (*)
BINPATH="/usr/local/rrdtool/bin"

# LOGDIR   = HoSaNIC의 로그 파일 경로
# LOGSIZE  = 로그 파일 크기
# LOGBACKUPS = 지정한 개수만큼 로그는 로데이터션되어 백업된다.
#       로그 파일명은 HotSaNIC.log, HotSaNIC.log.1, ...
LOGDIR="$DAEMONDIR/var/log/"
LOGSIZE="200000"
LOGBACKUPS="5"

# RUN  = 실행할 모듈 목록 (*)
# SHOW = 웹페이지로 표시할 모듈 목록 (*)
# ORDER = 표시할 모듈의 순서를 지정(먼저 쓴 것부터 왼쪽에 표시함)
RUN="apps diskio networks part ping sensors system traffic"
SHOW="apps diskio networks part ping sensors system traffic"
ORDER="traffic system part ping sensors"

# WEBDIR   = 생성된 이미지, html이 저장될 디렉토리 (*)
# IMAGEFORMAT = 이미지 파일 형식 (gif 또는 png)
WEBDIR="/usr/local/apache/htdocs/rrdtool"
IMAGEFORMAT="gif"

# DTIME = 지정한 간격으로 이미지를 생성한다. (단위는 분)
# CTIME = 지정한 간격으로 모니터링 메인화면의 작은 이미지를 생성한다. (단위는 시간)
#     따라서 처음 설치한 후 지정한 시간내에 convert.pl 명령을 하지 않으면 메인화면의
#     이미지는 최소 지정 시간동안 볼 수 없다.
DTIME="15"
CTIME="24"

# CONVERTPATH = ImageMagick 를 사용하여 이미지를 생성한다. convert 경로를 지정한다.
CONVERTPATH="/usr/bin/convert"

# REFRESH = 지정한 초단위로 웹페이지를 리프레쉬해서 보여준다. 기본 300초(5분)
REFRESH="300"



각 모듈별 설정은 해당 디렉토리의 settings을 보면 자세히 설명이 되어 있다.
여기서는 ping, diskio, apps에 대해서만 예를 들어본다.

* ping 모듈 ( HoSaNIC홈/modules/ping/settings )

 192.168.123.15(파일서버)에 대해 ping을 한다면, 다음을 추가하면 된다.


HOST=192.168.123.15,File Server


 설정했는데 ping 이미지가 생성안된다면 '5. 문제해결'에 해결방법을 설명해뒀다.

* diskio 모듈 ( HoSaNIC홈/modules/ping/settings )

/proc/stat 에서 disk_io 라인을 살펴보면 다음과 같이 되어 있다.

disk_io: (2,0):(1,1,2,0,0) (3,0):(306090,39930,942826,266160,5212040)
(3,1):(55015,28746,1435800,26269,909568) (8,0):(50,50,253,0,0)

여기서 (3,0) = hda, (3,1) = hdb, (8,0) = sda를 각각 의미한다.
따라서 hda와 hdb의 disk 입출력을 보려면 다음과 같이 설정한다.


DEV=3_0,hda
DEV=3_1,hdb


* apps 모듈 ( HoSaNIC/modules/apps/settings )


APP=httpd,Apache
APP=sendmail,Sendmail
APP=mysqld,Mysql Server
APP=hanterm,hanterm
APP=xmms,xmms
APP=MozillaFirebird-bin,Mozilla Web Browser


5) 실행

자~ 이제 웹페이지를 생성하고 rrdgraph만 실행하면 모니터링할 수 있다.


# ./makeindex.pl
# ./rrdgraph start



이제 웹브라우저를 띄우고 보면 된다. 아직 이미지도 안나온는데 뭘 보라는 것일까?
최소 15분(settings의 DTIME)이 지내야 모듈내의 큰 이미지들이 생성되고
24시간(CTIME)이 지나면 메인의 작은 이미지가 보일 것이다.
24시간 전이라도 적당한 시기에 ./convert.pl을 실행하면 메인에서도 이미지를 볼 수 있다.

부팅할 때 자동으로 rrdgraph가 실행되록 하려면 어떻게 해야할까?
rrdgraph 스크립트를 /etc/rc.d/init.d 에 복사를 한 후 chkconfig로 서비스를 추가한다.


# cp rrdgraph /etc/rc.d/init.d
# chkconfig -add rrdgraph



4. RRDtool 직접 다루기

HoSaNIC은 이미 정해진 모듈을 통해서 RRDtool을 다루는 것이다.
이제 시스템관리자가 원하는 데이터를 RRDtool로 직접 조작하여 통계용 이미지를 생성하는
방법을 알아본다. 간단히 과정을 정리해보면.

- RRDtool용 자체 DB(일반적으로 .rrd로 지정)를 생성한다.(create) ->
- 데이터를 업데이트하거나 (update) 가져온다.(fetch) ->
- 이미지를 생성한다. (graph)

1) rrdtool 명령 익히기

DB 생성, 이미지 만드는 것은 모두 RRDtool홈/bin/rrdtool 명령을 통해서 한다.


* 형식 : rrdtool [명령] [명령 옵션...]
* 예  : rrdtool create coffeenix_status.rrd DS:....


rrdtool에서 사용 가능한 명령은 무엇이 있을까?


---------- -----------------------------------------------------------------------
명 령   설 명
---------- -----------------------------------------------------------------------
create   새로운 RRD DB를 만든다.
update   DB에 새 데이터를 저장한다.
graph    저장된 DB자료를 이용해서 이미지를 생성한다. (.gif 또는 .png)
dump    RRD DB의 데이터를 XML 포맷으로 뽑아준다.
restore   XML 포맷에서 RRD DB로 저장한다.
fetch    RRD DB에서 데이터를 얻어온다.
tune    RRD DB의 설정을 변경한다.
last    RRD DB의 최종 업데이트 시간을 알려준다.
info    RRD DB의 헤더 정보를 보여준다. (파일명, 최근업데이트일, 설정값...)
rrdresize  RRA 크기를 변경한다. 가능하면 사용하지 말기를
xport    RRD DB의 데이터를 XML 포맷으로 뽑아준다. (출력 포맷 지정)
---------- -----------------------------------------------------------------------


2) 샘플 DB 생성

3) 이미지 만들기

5. 문제 해결

1) HoSaNIC 로그 파일을 보니 Can't locate RRDs.pm in @INC (@INC contains... 오류가 있습니다.

  RRDtool 설치할 때 make site-perl-install 를 하지 않아 RRDs.pm 펄 모듈이
  설치되지 않아서 입니다.
  RRDtool 소스 디렉토리에 가서 make site-perl-install을 하세요.
 
2) makeindex.pl 실행할 때 다음 오류가 발행합니다.
  WEBDIR (path to HotSaNIC's output directory) does not exist.

  시스템 모니터링 결과가 저장될 웹디렉토리를 생성하지 않았다.
  위 글중 '3 - 3) 필요한 디렉토리 생성'을 확인해봐라.

3) 시간이 한참지났는데 ping 이미지가 생성이 안됩니다. 물론 ping설정은 했습니다.
  로그를 보니 Can't locate asm/unistd.ph in @INC (did you run h2ph?).. 가 있습니다.

  펄용 헤더 파일이 없기 때문입니다. 펄 헤더로 변환해주는 h2ph로 해결할 수 있습니다.

  cd /usr/include; h2ph -r -l .

6. 이용 사례

  • http://kornet.hanirc.org/chanstat/
     HanIRC의 채널별 사용자 통계를 보여준다. 5분간격의 데이터를 1시간 단위로 자동 업데이트한다.
     장혜식님의 py-rrdtool을 사용한 페이지
    http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/gallery/

    * 참고 자료
  • RRDtool 매뉴얼
     
    http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/manual/index.html
  • itup님의 RRDtool 튜토리얼, 논문 자료
     
    http://myhome.hanafos.com/~itup/index.html
  • 이은태님의 'RRDTool로 서버의 상황을 파악하자.'
     
    http://kltp.kldp.org/stories.php?story=03/02/13/1717339
  • Posted by theYoungman
    engineering/Network Eng.2006. 8. 7. 00:22

    수동으로 OS를 판별하는 대표적인 방법으로 TTL 값을 이용한 방법이 있다.
    각 OS마다 고유한 TTL 값이 있기 때문에, ping이나 traceroute 명령으로 TTL 값을 확인할수 있고 OS를 추측할수 있는 것이다.

    TTL

    OS

    128

    Windows 98,2000

    247

    Solaris 2.x

    255

    Accel linux, linux

    244

    Irix & linux

    54

    Windows NT

    31

    Firmware

    246

    Redhat linux, unix 4.0

    248

    Unix 4.0

    255

    Cisco router



    바로 위에서 언급한 TTL 값은 네트워크 환경에 따라서 크게 달라질 수가 있다.
    아래의 예와 같이 ping 명령을 이용해 특정 IP를 스캔하면, TTL값을 확인할수 있다. 예로 쓰인 '218.52.198.73'의 TTL 값이 '128' 임을 알수 있고, 이를 통해 해당 OS가 'Windows 98/2000' 임을 짐작할수 있는 것이다.^^

    Posted by theYoungman
    engineering/Network Eng.2006. 8. 7. 00:21
    출처 블로그 > nirvana2k님의 블로그
    원본 http://blog.naver.com/nirvana2k/60003799955
    침입탐지시스템(IDS)은 침입차단시스템과 달리 애플리케이션 계층에 대한 심화된 분석을 수행함한다. 물론 애플리케이션에서의 분석이라는 측면에서 애플리케이션 프록시 게이트웨이 방식의 침입차단시스템도 이러한 기능은 수행할 수 있지만, 성능 문제로 인해서 현재는 많이 사용되지는 않고 있다. 이번 연재에서는 IDS 관리에 있어서 겪게 될 대다수의 어려움, 그러한 어려운 점을 극복하기 위해 IDS 도입 시 고려해야 할 사항은 무엇인지를 이야기하고자 한다. <편집자>


    지난 호에서 침입차단시스템에 대해 이야기했지만 최적의 침입차단시스템을 도입하고 그것을 잘 관리하는 것만으로 모든 보안은 해결됐다고 볼 수는 없다. 침입차단시스템은 침입차단시스템이 정책상 허용하는 서비스에 대해서는 보호할 수 없기 때문이다.

    물론 URL 필터링, 액티브X, 자바 필터링과 같은 기능을 제공하기도 하고 CIS(Content Inspection Server) 제품군과의 연동을 통해 이러한 단점을 극복하려고 시도도 하지만 그것만으로는 많은 기대를 할 수 없다. 침입차단시스템 운영 시 염두할 점은 SMTP, DNS, WWW, 미디어 등과 같이 외부의 모든 클라이언트에 대해 연결을 허용할 수밖에 없는 서비스는 언제라도 공격의 위험을 갖고 있다는 것이다. 그리고 침입차단시스템은 기본적으로 애플리케이션 정보에 대한 검사는 수행하지 않기 때문에 그러한 공격에 대해 별다른 감사 로그조차 없이 무방비가 될 수 있고, 이 점을 극복하기 위해 침입탐지시스템(Intrusion Detection System, IDS)이 소개됐다.


    IDS의 개념

    IDS는 그 분석을 위한 자료 수집원에 따라 네트워크 기반 IDS와 호스트 기반 IDS로 나뉠 수 있으며 이 글에서는 네트워크 기반 IDS에 대해서 이야기하는 것으로 그 범위를 한정하겠다.

    네트워크 기반 IDS는 네트워크 관문의 스위치에 포트 미러링의 형태나 TAP(Test Access Port)로 설치된다. 따라서 들어오고 나가는 트래픽을 모두 수집해 기존에 정의된 룰에 매칭해 이것이 침입인지 아닌지를 파악하고 침입이라면 관리자에게 여러 가지 방법을 동원해 통보한다.

    방화벽과 가장 큰 차이라면 애플리케이션 계층에 대한 심화된 분석을 수행함으로써, 방화벽은 그 초점이 주로 네트워크 계층 정보에 대한 필터링을 수행한다는 점이다. 물론 애플리케이션에서의 분석이라는 측면에서 애플리케이션 프록시 게이트웨이 방식의 방화벽도 이러한 기능은 수행할 수 있으나 성능 문제로 인해서 현재는 많이 사용되지는 않고 있다. 그리고 IDS는 수동적인(Passive) 장비라서 네트워크에 영향을 미치지 않으며 패킷을 수집해 분석을 수행하고 차단보다는 탐지에 보다 더 초점을 맞췄다는 점이다.


    IDS 운영의 어려움

    IDS 솔루션을 실제 도입해 운영한 적이 있는 관리자라면 누구라도 처음에 많은 어려움에 부딪히게 된다. 일단 네트워크에 설치된 이후 수많은 로그 화면에 압도당하게 되며 어떤 것이 정말 위험하고 어떤 것이 무시해도 될 로그인지 알 수가 없다. 방화벽과 IDS를 도입해 구축이 완료되면 기업 내 보안 수준이 높은 수준으로 향상됐다고 생각하기 쉬우나 실질적으로 제품을 커스터마이징해 가면서 그러한 기대도 한풀 꺾이게 된다.

    극단적으로 말해서 IDS를 설치해 처음 나타나는 로그의 90%가 의미 없는 오탐지라면, 오탐지가 아닌 나머지 10% 정도만이 실질적으로 의미 있게 봐야 할 공격이다. 그리고 IDS는 침입을 막아주는 것보다는 탐지를 통한 사후 분석의 개념이 강하기 때문에 24시간 그것을 지속적으로 모니터링하면서 실시간으로 대응할 보안 전문가의 노력이 없다면 해킹은 막을 수 없다.


    1. 관리적 어려움

    ① IDS 커스터마이징

    IDS 도입 후 제일 처음 관리자가 부딪히게 될 어려움은 너무나도 많은 양의 로그다. 초기 설치된 채로 유지돼 1개월도 채 안 돼 수십 기가에 달하는 로그 서버의 하드디스크 공간을 잠식해 버린 업체를 본 적이 있다. 콘솔 상에서 너무나도 많은 이벤트가 빠르게 지나가는데 실질적으로 그만큼 많은 공격이 네트워크 상에서 이루어지고 있는 것일까? 그것은 확실히 아니다. 따라서 환경에 맞는 커스터마이징은 필수적이다. 커스터마이징 과정에서 겪게 될 어려운 점은 일반적으로 다음과 같다.

    - 무의미한 룰에 대한 미탐지 설정

    우선 관리자가 보안에 대해서 많은 지식을 가지고 있지 않다면 해당 룰이 의미 있는 공격인지 그렇지 않은지 알 수 없다. 그렇다고 해서 위험도가 낮다고 한 룰은 탐지하지 않도록 할 것인가? 이런 판단을 하게 되는 관리자도 종종 본 적이 있지만 위험도란 관점은 상대적인 개념이다. 즉 IDS 벤더에서 위험도가 낮다고 한 룰이 오히려 그 사이트에서는 가장 중요한 룰이 될 수가 있고, 위험도가 높다고 한 룰이 오히려 무의미한 룰일 수 있다. 따라서 그런 룰에 대해 IDS 벤더에서 위험도가 낮다고 해서 미탐지를 할 것이라고 결론 내리기에는 이르다.

    - 파라미터 튜닝 설정

    일부 서비스거부(DoS) 공격, 브루트 포스(brute force) 공격, 스캐닝(scanning) 공격 등은 특정 접근 시도가 특정 시간 내에 특정 회수 이상만큼 나타나면 경고를 발생하도록 설계돼 있다. 이러한 종류의 공격들은 설정 가능한 파라미터가 존재해 어느 정도 적절한 수치를 주느냐에 따라 효율적으로 탐지하거나 그렇지 않을 수 있다. 문제는 어느 정도 적절한 수치를 어떻게 결정하느냐 하는 것인데 그것이 쉬운 일이 아니다.

    당연히 자사의 인터넷 회선으로 T1 라인을 사용하는 경우와 OC-3를 사용하는 경우가 그러한 파라미터는 다를 수밖에 없는데 IDS 벤더에서 자사의 환경에 맞는 최적의 값을 제안한 것은 아니다. 실제로 특정 IDS 업체에서 제공하는 기본값을 그대로 사용할 경우, 단지 특정 서버로 핑(ping)을 지속적으로 실행시키기만 해도 핑 플루딩(ping flooding)이라는 경고가 발생하는 경우를 볼 수 있었다. 그렇다면 어떻게 파라미터를 정할 것인가?

    - 신뢰 IP의 지정

    그나마 커스터마이징 과정에서는 가장 쉬운 부분일 수 있다. 많은 공격 탐지에 대해 소스IP나 목적지IP가 동일한 양상을 보인다면 그것에 대한 IP 정보를 확인함으로 신뢰 IP를 지정할 수 있다. 예를 들어 SNMP를 통해 인터페이스 정보를 수집했다는 공격이 특정 소스IP로부터 많은 탐지를 보였는데, 해당 소스IP가 SNMP를 통한 정보 수집 기능을 하는 NMS 장비였다면 이것은 정상적인 네트워크 활동에 대해 탐지된 것으로 볼 수 있다. 이런 경우 해당 공격에 대해 신뢰IP를 지정해 그 IP에 대한 공격은 탐지하지 않도록 설정하는 것이다.

    그런데 이러한 설정이 어려운 경우가 있다. 보다 복잡한 공격(예를 들어 쿠키의 내용 중에 바이너리 코드가 포함돼 있어서 탐지된다는 등)에 대해서는 해당 공격에 대한 경고가 발생하는 조건이 무엇인지, 그리고 왜 발생한 것인지에 대한 상세한 로그를 IDS에서 제공하는 상세 로그 분석을 통해 확인해야 하는 경우다.

    ② 엔진 및 패턴 업데이트

    IDS는 벤더에서 구현한 시그니처를 기반으로 탐지한다는 점에서 안티 바이러스 제품과 매우 흡사하다. 물론 그렇기 때문에 엔진 및 패턴 업데이트가 중요하다. 최근에는 제로 데이 어택(zero-day attack)의 시대여서, 취약성 릴리즈와 그에 대한 공격 코드 발표일의 차이가 아주 짧아지고 있는 추세다.

    새로운 취약성이 나타났을 때 해당 취약성에 대해 IDS 벤더에서는 해당 취약성에 대한 패턴 업데이트를 얼마나 빨리 발표할 것인지 그것을 IDS 관리자는 얼마나 빨리 업데이트를 할 것인지는 이제 효율적인 공격 탐지에 필수적이다.

    ③ 실시간 대응

    IDS 도입 이후 겪게 될 가장 큰 혼란과 어려움 중 하나는 실시간 대응에 대한 문제다. IDS 무용론을 이야기한 가트너 그룹에서 그 이유로 이야기하는 점은 IDS는 기본적으로 설치 이후 로그양이 너무 많아서 그것에 대한 분석 및 커스터마이징을 위해 보안전문가라는 인력이 필요하다는 점, 그리고 IDS는 차단보다는 탐지에 초점을 맞췄기 때문에 그러한 보안전문가가 24시간 계속 콘솔을 전담 모니터링해야 한다는 점이다.

    물론 이러한 점은 IDS 벤더도 오래 전부터 이해하고 있었기 때문에 ‘방화벽과의 연동’, ‘TCP 세션 끊기’를 통한 능동 차단 기능을 구현하고 있다. 하지만 IDS의 고질적인 오탐지(false positive) 문제가 해결되지 않는 상황에서 능동 차단 기능을 적용할 수는 없는 노릇이다.

    ④ 룰에 대한 상세한 정보

    침입탐지 이벤트가 발생했을 때 관리자는 룰에 대해서 이것이 오탐지는 아닌지, 그리고 오탐지가 아니라면 얼마나 위협적인 공격인지를 파악해야 한다. 그것을 위해서는 룰에 대한 상세한 정보(해당 룰에 의한 침입탐지 이벤트가 발생하는 조건, 해당 룰과 관련된 애플리케이션, 취약성 발표된 시기, 취약성에 대한 설명, 오탐지가 발생할 수 있는 조건 등)가 온라인으로 확인할 수 있어야 하며 관리자가 쉽게 이해할 수 있어야 한다.

    2. 탐지 기능의 문제점

    과거 많은 IDS가 탐지 기능의 문제점을 가졌다. 원래 IDS는 단순히 패킷에서 해킹에 해당되는 패턴이 있는지 검색하는 패킷 그래핑(packet grepping) 수준이었다. 하지만 이후 너무나도 많은 회피 기법에 의해 IDS를 속일 수 있다는 것이 알려졌다. 이러한 모든 회피 기법의 아이디어는 ‘해킹 당하는 대상을 IDS가 정확히 이해하지 못한다’는 것이다.

    ① 공격에 사용되는 프로토콜을 인지하지 못하는 경우

    공격에 사용되는 프로토콜을 정확히 파악하지 못해서 생기는 문제는 다양하다.

    1. ‘GET /scripts/..%c1%1c../winnt/system32/cmd.exe?/ c+dir HTTP/1.0’
    2. ‘get /scripts/..%c1%1c../winnt/system32/cmd.exe?/ c+dir http/1.0’
    3. ‘GET /scripts/..%c1%1c../winnt/system32/cmd.exe?/ c+dir HTTP/1.0’

    위의 세 가지 요청은 HTTP 프로토콜 상에서 동일한 의미를 가진다. 하지만 실제 어떤 IDS 제품은 1번은 탐지하나, 2번이나 3번 둘 중의 하나, 혹은 두 가지 모두를 탐지하지 못 하는 경우도 본 적이 있다. 그밖에 웹 서버의 포트 번호가 달라져도 탐지를 못 하는 경우가 있어서 그러한 IDS 제품에 테스트의 목적으로 2123 포트에 운영 중인 웹 서비스에 관련 공격이 들어온다면 무방비 상태가 되는 것이다.

    ② 각종 URL 회피 기법

    휘스커(Whisker) 툴에 기반한 닉토(nikto)는 휘스커 툴에서 사용할 수 있었던 각종 URL 회피 기법을 테스트할 수 있다. 이러한 URL 회피 기법의 몇 가지 예를 보면 다음과 같다. IDS 제품에서 이러한 회피 기법을 모두 지원하는 경우도 있지만 그렇지 않은 경우도 있다. 테스트는 쉽게 닉토 툴로 할 수 있다.

    · Self-reference directory: ‘GET /cgi-bin/jj’ → ‘GET /./cgi-bin/./jj’
    · URL encoding: ‘GET /cgi-bin/jj’ → ‘GET /%63%67%69% 2d%62%69%6e/%6a%6a’
    · Reverse traversal: ‘GET /cgi-bin/jj’ → ‘GET /test/../cgi-bin/jj’
    · Windows delimiter: ‘GET /cgi-bin/win-c-sample.exe’ → ‘GET \cgi-bin\win-c-sample.exe’
    · NULL method: ‘GET /cgi-bin/win-c-sample.exe’ → ‘GET%00 /cgi-bin/jj’

    ③ IP 프레그멘테이션·조각난 TCP 스트림을 이용한 IDS 회피

    가장 잘 알려진 IDS 회피 기법이라면, IP 프레그멘테이션(fragmentation)을 이용한 IDS 회피, 그리고 조각난 TCP 스트림을 이용한 IDS 회피를 예로 들 수 있다.

    이들을 제대로 탐지하기 위해서는 IP 디프레그멘테이션(defragmentation)과 TCP 스트림 리어셈블리(stream reassembly) 기능이 구현돼 있어야 한다. 이를 테스트하기 위한 유명한 툴은 더그 송(Dug Song)의 프레그라우트(fragroute)다. 프레그라우트 실행화면 예제는 <그림 3>과 같다.

    ④ 성립되지 않은 세션에서의 TCP 공격

    TCP 스트림과 같이 세션에 의한 문제를 야기할 수 있는 것을 한 가지 더 보자. 스틱(stick)이라는 툴이 있다. 이 툴은 IDS를 테스트하기 위한 툴 중 하나인데, 대표적인 기능 중 하나가 세션을 맺지 않고 TCP 공격 패킷을 보내는 기능이다. TCP는 연결 지향 프로토콜로서 정보를 교환하기 전에 먼저 3웨이 핸드쉐이크(handshake)에 의해 연결을 성립한 후 정보를 보내고 제대로 받았다는 것을 인정하는 절차를 거친다. 즉 세션을 맺지 않고 TCP 공격 패킷을 보낸다면 응답으로 RST(리셋) 패킷을 받게 될 것이다.

    이럴 경우 공격은 이뤄지지 않았지만, IDS는 경고 이벤트를 발생하게 된다. 가장 쉽게 알 수 있는 문제점은 소스 IP를 엉뚱한 IP로 속여서 다수의 경고를 발생시킬 수 있다. 단순히 재미 삼아서, 혹은 어떤 뚜렷한 목표를 가지고 특정 소스 IP를 범죄자로 오인 받게 만드는 것이 가능하다. 앞서 말한 능동 대응이 활성화된 경우에 이러한 공격을 하게 되면 큰 문제가 야기될 것을 짐작할 수 있다.

    위와 같이 IDS를 운영하고 BMT 하면서 겪은 다양한 난제들이 있으며, 이 밖에도 운영하면서 많은 어려움을 접하게 될 수가 있다고 예상된다. 자사에 IDS 도입을 할 때에도 이러한 점들을 염두에 두고 필요한 기능을 고려해 도입해야 할 것으로 보인다.


    IDS 도입시 고려 사항

    1. 제품 선정 과정에서의 고려 사항
    이러한 침입탐지시스템 도입을 위해 제품 선정 과정에서 고려해야 할 사항은 <표 1>과 같이 정리될 수 있다.

    2. 제품 설치 과정에서의 고려 사항
    제품을 도입한 후 실환경에 적용하는 과정에서 고민돼야 할 점들은 다음과 같다.

    - IDS의 네트워크 구성 상에서의 위치는 어떻게 할 것인지(만약 방화벽을 운영한다면 인터넷 쪽에 둘 것인지 DMZ에 둘 것인지, 내부 네트워크에 둘 것인지)
    인터넷 쪽에 IDS를 두게 된다면 방화벽을 통과하지 않게 될 공격까지 탐지돼 많은 오탐지를 발생할 수 있다는 단점, 내부 네트워크에 둔다면 포트스캐닝 공격과 같은 리커네선스(reconnaissance) 공격은 대부분의 스캐닝 패킷이 방화벽에 차단돼 IDS에서 탐지되지 않는다는 단점이 일반적이다. 이 점을 극복하기 위해 모든 포인트에 IDS를 배치할 수도 있겠지만 그만큼 비용이 증가한다는 점도 잊지 말아야 한다.

    - 스위치의 포트 미러링 세팅으로 설치할 것인지, TAP 장비를 이용할 것인지
    스위치에서 포트 미러링을 설정할 경우 스위치의 성능 저하 문제가 있지 않을까 걱정에서 이런 영향을 전혀 고려할 필요가 없는 TAP 장비를 추가하는 경우가 있다. TAP 장비는 장비 자체에서 장애가 나더라도 정상적인 트래픽 송수신에 이상이 없고 네트워크 성능에 영향을 미치지 않기 때문에 선호된다. 하지만 포트 미러링 설정으로 인한 스위치의 성능 저하 문제도 무시할 수 있을 만큼 작아졌고 없는 경우도 많기에 성능 문제로 크게 고민할 필요는 없다.

    3. 제품 운영 과정에서의 고려 사항

    IDS는 방화벽보다 특히 운영 과정에서 보안 지식이 많이 필요한 솔루션이다. 이것을 효율적으로 운영하기 위해서는 체계적인 교육을 받은 보안전문가라는 전담인력이 필요하고 모니터링은 어떻게 할 것인지 고민돼야 한다.
    IDS 도입을 하게 되는 많은 기업이 힘들어하게 되는 부분인데 이 부분에 대해서는 보안관제서비스(Managed Security Service)를 이용해 비용대비 효과를 극대화시키는 것도 고려할만하다. 자체 인력으로 해결하든 아웃소싱을 통해 해결하든 간에 IDS 도입으로 기대효과를 극대화하기 위해서는 무엇보다도 적절한 운영 및 대응 프로시저 마련이 필요함을 염두에 둬야 한다.


    결론

    이제까지 침입탐지시스템을 운영하면서 겪을 수 있는 어려운 점들, 그리고 그러한 어려운 점들을 해소하기 위해 제품 도입 시 고려해야할 점들을 살펴봤다. IDS의 한계를 극복하기 위해 많은 시도가 있고 그 결과 침입방지시스템(IPS)이라는 능동형 보안 솔루션도 나타나고 있다. 그러나 오탐지의 극소화, 네트워크 관문에 설치돼 방어도 가능하게 한다는 IPS 역시 기본적으로는 IDS에 이론적 밑바탕을 두고 있기 때문에 IPS가 IDS를 완전히 대치하게 될 것인지는 좀 더 두고 볼 일이다.

    무엇보다도 IDS는 설치 이후 자사의 환경에 맞는 커스터마이징 작업, 무수한 침입탐지 이벤트에서 실제로 의미 있는 이벤트에 대한 분석을 할 수 있는 보안전문지식이 필요한 솔루션이다. IDS를 도입했지만 그것을 제대로 관리를 하지 못해 업데이트한지 오랜 시간이 지난 엔진으로 단순한 로그 수집으로 방치하고 있는 관리자를 본 적도 많이 있다.

    관리자는 모든 것이 해결돼 안심할 수 있는 방안을 찾고자 한다. 보안에 있어서 지속적인 모든 것을 100% 근본적으로 해결해줄 방법은 없다. 지속적이고 꾸준한 관리가 없는 보안을 하는 것은 하지 않는 것과 다를 바 없다.

    [NETWORK TIMES 2004년 05월호 이용학 코코넛 기술본부 대리 ]
    Posted by theYoungman