레이블이 network인 게시물을 표시합니다. 모든 게시물 표시
레이블이 network인 게시물을 표시합니다. 모든 게시물 표시

2020-01-17

[EVE-NG] Eve-NG Fortigate Firewall 설치 및 사용


 Fortigate는 중기업 또는 대기업에서 널리 사용되고 있는 방화벽 장비 중 하나이다. 
 EVE-NG 에서도 Fortigate를 사용하여 가상 시뮬레이션을 돌려 Lab 및 테스트 등을 할 수 있다. 




< 사용 가능한 Fortigate 이미지들 >
 EVE-NG 에서 사용할 수 있는 Fortigate 이미지는 다음과 같다. ( 최신 버전 6.0 까지 지원이 가능하다 )



1. Fortigate KVM 이미지 준비.

   위의 이미지는 교육 목적으로 만 제공이 되며 이미지는 개인적으로 준비해야 한다. 
   Fortigate 라이선스 권한이 있다면 아래 웹사이트에서 다운로드 받을 수 있다.




Fortinet SSO

customersso1.fortinet.com

2. 준비한 이미지를 EVE-NG 에 업로드 한다.

 업로드는 Winscp, Filezilla 등을 사용하면 되며, 경로는 /opt/unetlab/addons/qemu/ 로 업로드 하면 된다.

  

3. 업로드한 파일 압축 해제

   -  unzip fortinet-FGT-v5-build1484.zip

root@eve-ng:/opt/unetlab/addons/qemu# unzip fortinet-FGT-v5-build1484.zipArchive: fortinet-FGT-v5-build1484.zipinflating: virtioa.qcow2root@eve-ng:/opt/unetlab/addons/qemu#


4. 이미지 파일명 변경

  -  mv fortios.qcow2 virtioa.qcow2

압축을 해제 하면  fortinet-FGT-v5-build1484 디렉토리 아래에  fortios.qcow2 라는 이미지 파일이 생성이 된다.    EVE-NG에서는 지원되는 파일 이미지 이름이 제한이 되어 있어서 이름을 변경을 해 주어야 한다.  


fortinet-FGT-v5-build1484# ls fortios.qcow2fortinet-FGT-v5-build1484#mv fortios.qcow2 virtioa.qcow2fortinet-FGT-v5-build1484# ls virtioa.qcow2/opt/unetlab/wrappers/unl_wrapper -a fixpermissions

 EVE-NG 에서 지원되는 이미지 파일 이름에 대한 안내 참고 =>  QEMU images used under EVE


5. Permision 수정
/opt/unetlab/wrappers/unl_wrapper -a fixpermissions

6. EVE-NG 접속 후 이미지 추가 후 사용
   EVE-NG 접속 후 Node를 추가하면 Forinet Fortigate Template 가 활성화 된다. 


Forinet Fortigate선택 후 Ethernet 수, CPU, Ram 갑 세팅 후 저장 후에 사용하면 된다.



2020-01-13

Ansible Backup Cisco IOS Switch Config

Ansible은 누구나 쉽게 인프라를 관리할 수 있는 자동화 도구로 Agent가 필요하지 않으며, 특히 네트워크 장비를 가장 완벽하게 관리할 수 있는 자동화 도구이다.

Ansible은 기타 다른 자동화 도구와는 다르게 Agent가 필요없으며, 기본적으로 SSH를 통한 암호화 통신을 통해 원격 접근 및 자동화 관리가 가능하다. 따라서 Cisco 스위치를 Ansible을 이용해서 관리하기 위해서는 SSH 통신이 되도록 우선 설정이 되어 있어야 한다.
  Cisco 장비 SSH 설정방법은 아래 블로그 내용을 확인해 보면 된다.

Cisco Switch SSH 접속 설정 하기



네트워크 엔지니어로 가장 중요한 스위치 Config 백업을 Ansible을 활용하여 구성하는 방법에 대해 설명해보도록 하겠다.  

1. Ansible host에 스위치 정보 입력.

 - vi /etc/ansible/hosts

## Host 그룹 및 host 지정
## []에 그룹명을 지정해 주고 하위에 hostname 및 host ip 정보등을 입력해 주면 그룹에 host가 등록이 된다.
[CiscoSW]
SW01 ansible_host=192.168.254.101

## 그룹에 대한 환경 변수 등록.
## [groupname:vars]형식으로 작성
[CiscoSW:vars]
ansible_network_os=ios
ansible_user=backup             ## User name 입력.
ansible_password=backupPW       ## User password 입력.
ansible_authorize=yes
ansible_connection=network_cli  
ansible_become=yes
ansible_become_method=enable
ansible_become_pass=enablePW    ## enable passwd 입력. ansible-vault를 이용하여 패스워드 등 
                                ## 중요한 정보를 암호화 하여 처리할 수 있다. 
                                ## vault에 대해서는 나중에 별도 섹션으로 포스팅하도록 하겠다.
                                


2. Ansible 스위치 Config Backup Playbooks 작성.

   - vi /etc/ansible/playbooks/swbackup.yaml 

---
- hosts: CiscoSW
  gather_facts: no

  tasks:
    
    - name: Backup switch (ios)
      ios_config:
        backup: yes
      register: backup_ios_location
      when: ansible_network_os == 'ios'

    - name: Create backup dir    ## 백업 Directory 경로 설정(없을 경우 자동 생성)
      file:
        path: "/tmp/backups/{{ inventory_hostname }}"
        state: directory
        recurse: yes

    - name : copy switch config backup to backup directory
      copy:
       src: "{{ backup_ios_location.backup_path }}"
       dest: "/tmp/backups/{{ inventory_hostname }}/{{ inventory_hostname }}_running-config.txt"


3. ansible-playbooks 실행

[root@ansible]# ansible-playbook /etc/ansible/playbooks/swbackup.yaml 

4. 실행 결과

[root@ansible]# ansible-playbook /etc/ansible/playbooks/swbackup.yaml 

PLAY [CiscoSW] *************************************************************************************************
TASK [Backup switch (ios)] *************************************************************************************
changed: [SW01]

TASK [Create backup dir] ***************************************************************************************
changed: [SW01]

TASK [copy switch config backup to backup directory] *******************************************************
changed: [SW01]

PLAY RECAP ****************************************************************************************************
SW01                       : ok=3    changed=3    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

[root@ansible]#


5. 백업 파일 확인.

[root@ansible]# cd /tmp/backups/SW01/
[root@office_zabbix SW01]# ls -al
drwxr-xr-x 2 root root    37 1227 18:03 .
drwxr-xr-x 4 root root    31 1227 18:03 ..
-rw-r--r-- 1 root root 10506 1227 18:03 SW01_running-config.txt
[root@ansible]#


  /tmp/backups/SW01/ 경로에 SW01_running-config.txt 이름으로 스위치 Config가 백업 된 것을 확인할 수 있다.

위에서는 1대의 장비만 가지고 구성하였는데 수십대 및 수백대의 장비가 있다고 하더라고 Hosts 파일에 등록 해 놓으면 아주 편하게 스위치 장비를 백업 할 수 있다. 

Strongswan IPSEC-VPN Configuration For CentOS


구글 이나 AWS 등의 Public Cloud 를 사용하는 경우, 또 해외 등에 IDC를 운영할 경우 터미널이나 중요한 포트 접근시 중계서버를 거치거나 공인IP를 통해 접속을 해야하는 경우가 발생하게 된다.

 이 경우 DB 서버나 개인정보등 중요한 데이터를 보관하고 있는 서버는 공인IP가 아닌 사설 IP만으로 통신하게 구성하는것이 안전하다. 이를 위해서는 VPN 가상 사설 망을 구성하여 내부 사설 IP끼리 통신이 가능하도록 구성할 수 있다.

  AWS나 구글 클라우드와 같은 유명 클라우드 업체에서는 전용 VPN 솔루션을 제공해 주고 있으며 약간의 비용을 지불하여 해당 VPN을 사용하는 것이 운영 측면에서 훨신 편리하다.  
 그러나 VPN 을 제공해주지 않는 업체도 있어서 이럴경우에 오픈소스를 활용하여 별도 VPN을 구축하여 사용할 수 있다. 이 글에서는 오픈소스 VPN 중 StrongSwan 에 대해 알아보고 설치 및 설정하는 방법을 설명하려고 한다. 

StrongSwan
  - StrongSwan은 OpenSource IPsec 기반 VPN 솔루션으로 IKEv1 및 IKEv2 ( RFC 7296 ) 키 교환 프로토콜을 모두 구현하며, 가장 강력한 인증 메커니즘에 포커스를 맟춘 프로젝트 이다.
  - 또한 멀티플랫폼 IPSEC을 구현하여, 타사 벤더의 방화벽이나 VPN 장비와 문제 없이 연동이 가능하다.

<구성도 예시 >
 아래와 같이 본사 방화벽과 클라우드간 VPN 을 구성하려고 한다. 


1. StrongSwan 설치.
  - strongswan Repository 추가 및 설치
     wget http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-12.noarch.rpm 
     rpm -Uvh epel-release-7-12.noarch.rpm 
     yum install strongswan

2. 패킷 포워딩 활성화
  - vi 편집기 로 /etc/sysctl.conf 파일 내용 추가

net.ipv4.ip_forward=1net.ipv4.conf.all.accept_redirects = 0net.ipv4.conf.all.send_redirects = 0net.ipv4.ip_no_pmtu_disc = 1

3. ipsec.conf 터널 파일 설정

# ipsec.conf - strongSwan IPsec configuration file
# basic configuration
    strictcrlpolicy=no
    uniqueids = no
    charondebug="cfg 2, ike 2, knl 2"
# Add connections here.
conn officevpn
    authby=secret
    auto=start
    type=tunnel
    leftauth=psk
    rightauth=psk
    left=2.2.2.2          // Local IP Assress 
    leftsubnet=10.10.10.0/24,10.10.20.0/24  // Local VPN 사용 대역
    right=1.1.1.1       // Remote VPN IP
    rightsubnet=192.168.0.0/24, 172.16.100.0/24  // Remote VPN 대역 IP
    leftfirewall=no
    keyexchange=ikev2         // ikev2 사용(Multisubnet 지원)
    ike=aes128-sha1-modp2048    // pharse 1 인증 방식 설정.
    ikelifetime=28800             // pharse 1 key lifetime
    esp=3des-md5-modp2048     // pharse 2 인증 방식 설정.
    lifetime=3600                 // pharse 2 key lifetime
    compress=no
    keyingtries=%forever

※ 참고로 MultiSubnet을 사용할 경우 인증키는 ikev1이 아닌 ikev2로 사용을 해야 한다. 확인해본 결과 ikev1은 여러개 서브넷을 지원하지 않고 가장 마지막에 설정한 IP대역만 할당하는 것을 확인하였다. 

4. 암호화 인증키 값 설정
 인증방법은 인증서를 사용하거나 presharedkey 값을 통한 인증방식이 있으며, 여기서는 presharedkey를 통한 인증 방법을 사용하였다. 추후 기회가 되면 인증서를 활용하는 방법에 대해서도 포스팅을 해 보겠다.
 - ipsec.secret 값 설정. ( vi /etc/strongswan/ipsec.secret , 패스워드는 임의의 값 지정. )

1.1.1.1 : PSK "password"
2.2.2.2 : PSK "password"

5. strongswan 시작 및 상태 확인.

 - strongswan start
 - strongswan statusall 


[root@vpn ~]# strongswan statusall
Status of IKE charon daemon (strongSwan 5.7.2, Linux 3.10.0-957.21.3.el7.x86_64, x86_64):
  uptime: 2 hours, since Nov 20 10:30:51 2019
  malloc: sbrk 2801664, mmap 0, used 624976, free 2176688
  worker threads: 11 of 16 idle, 5/0/0/0 working, job queue: 0/0/0/0, scheduled: 6
  loaded plugins: charon pkcs11 tpm aesni aes des rc2 sha2 sha1 md4 md5 mgf1 random nonce x509 revocation constraints acert pubkey pkcs1 pkcs7 pkcs8 pkcs12 pgp dnskey sshkey pem openssl gcrypt fips-prf gmp curve25519 chapoly xcbc cmac hmac ctr ccm gcm curl attr kernel-netlink resolve socket-default farp stroke vici updown eap-identity eap-sim eap-aka eap-aka-3gpp eap-aka-3gpp2 eap-md5 eap-gtc eap-mschapv2 eap-dynamic eap-radius eap-tls eap-ttls eap-peap xauth-generic xauth-eap xauth-pam xauth-noauth dhcp led duplicheck unity counters
Listening IP addresses:
  2.2.2.2
Connections:
   officevpn:  2.2.2.2...1.1.1.1  IKEv2
   officevpn:   local:  [2.2.2.2] uses pre-shared key authentication
   officevpn:   remote: [1.1.1.1] uses pre-shared key authentication
   officevpn:   child:  10.10.0.0/16 === 192.168.0.0/24 172.16.100.0/24 TUNNEL
Security Associations (1 up, 0 connecting):
   officevpn[3]: ESTABLISHED 2 hours ago, 2.2.2.2[2.2.2.2]...1.1.1.1[1.1.1.1]
   officevpn[3]: IKEv2 SPIs: 6fd2c767e22898ba_i 03421dd57066da71_r*, pre-shared key reauthentication in 5 hours
   officevpn[3]: IKE proposal: AES_CBC_128/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_2048
   officevpn{6}:  INSTALLED, TUNNEL, reqid 2, ESP SPIs: c4dcdcf1_i a88939db_o
   officevpn{6}:  3DES_CBC/HMAC_MD5_96/MODP_2048, 6383 bytes_i (67 pkts, 0s ago), 6689 bytes_o (43 pkts, 7s ago), rekeying in 32 minutes
   officevpn{6}:   10.10.0.0/16 === 192.168.0.0/24 172.16.100.0/24
[root@vpn ~]#

DHCP Snooping - 비인가 DHCP 사용 차단.


사내 네트워크 운영하다보면 사용자 부주의 혹은 허용되지 않은 공유기등을 통해서 내부에 DHCP가 도는 경우가 종종 발생하게 된다.
  이를 방지할 수 있는 방법으로 Cisco 장비에서 지원하는 DHCP Snooping 기능이 있어서 소개하고자 한다. 
 1. DHCP Snooping
   - Snooping 은 '기웃거리다, 염탐하다' 라는 의미로, dhcp snooping은 dhcp 패킷의 내용을 중간에서 엿보는 것처럼 탐지 하여 DHCP 응답이 오면 차단을 하는 기능이다.
  - 각 인터페이스에 대해 신뢰여부를 판단하여 신뢰하지 않는 인터페이스에 대해서는 DHCP 응답 패킷을 모두 차단하여 불법 DHCP 서버등으로 부터의 공격을 차단할 수 있다.
2. 스위치 설정 방법
SW#conf t
SW(config)#ip dhcp snooping
SW(config)#ip dhcp snooping vlan [vlan id]
SW(config)#interface range gigabitEthernet 0/1 ~ 10  
SW(config)#ip dhcp snooping limit rate [num]
SW(config)#interface gigabitEthernet 0/24
SW(config)#ip dhcp snooping trust
- ip dhcp snooping
   : dhcp snooping 기능 활성화. 
- ip dhcp snooping vlan [vlan id]
   : dhcp snooping 기능을 사용할 Vlan을 정해준다. 기본적으로 모든 인터페이스는 신뢰할 수 없는 인터페이스가 된다. 
- interface range gigabitEthernet 0/1 ~ 10
- ip dhcp snooping limit rate [num]
   : 신뢰하지 않는 인터페이스에 들어가서 초당 dhcp 패킷 수를 조정한다. 혹시 내부에서 dos 공격이 있을 경우 차단하기위한
    옵션이다. 
- interface gigabitEthernet 0/24 
- ip dhcp snooping trust
   : 사용하는 dhcp 서버가 연결되어 있는 인터페이스가 있다면 신뢰 인터페이스로 변경해 준다. 
3. DHCP Snooping 상태 확인
SW#sh ip dhcp snooping  
Switch DHCP snooping is enabled
Switch DHCP gleaning is disabled
DHCP snooping is configured on following VLANs:
1
DHCP snooping is operational on following VLANs:
1
DHCP snooping is configured on the following L3 Interfaces:

Insertion of option 82 is enabled
   circuit-id default format: vlan-mod-port
   remote-id: 6c6c.d38d.c280 (MAC)
Option 82 on untrusted port is not allowed
Verification of hwaddr field is enabled
Verification of giaddr field is enabled
DHCP snooping trust/rate is configured on the following Interfaces:
Interface                  Trusted    Allow option    Rate limit (pps)
-----------------------    -------    ------------    ----------------   
GigabitEthernet0/24        yes        yes             unlimited  
Custom circuit-ids:
SW#

SW#sh ip dhcp snooping statistic
  Packets Forwarded                                     = 106
 Packets Dropped                                         = 0
 Packets Dropped From untrusted ports       = 0
SW#

네트워크 모니터링 툴 - NTOP





다소 추상적으로 들릴 수 있겠지만 네트워크를 구축, 운영, 관리하다보면 담당자는 ‘최소’와 ‘최대’사이에서 많은 고민에 빠지게 된다. ‘최소’라 함은 ping이나 traceroute, MRTG 등을 이용해 주로 네트워크의 연결 여부와 사용량 정도 등을 확인하고 모니터링하는 수준이고, ‘최대’라 함은 주로 대규모 사이트에서 별도의 네트워크 담당자가 대형화면을 통해 Domain Manager나 오픈뷰, 유니센터TNG 등 고가의 NMS를 활용해 네트워크 상태 분석과 품질 추이까지를 모두 분석하는 수준을 의미한다.
이는 네트워크의 경우뿐만 아니라 시스템 관리에도 마찬가지인데, 물론 어느 분야에서나 이런 고가의 툴이 없다고 관리가 불가능한 것도 아니고, 있다고 하더라도 단순히 장애여부 외의 용도에 활용하지 못한다면 무용지물이다. 따라서 이 두가지의 중간 수준에서 담당자들에게 꼭 필요한 기능만을 제공하면서도 부담이 없는 도구에 대한 필요성이 날로 높아지고 있다. 시스템 분야에서는 이같이 꼭 필요한 기능만 제공해 널리 사용되는 TOP이라는 툴이 있으며, 네트워크 분야에서 TOP의 역할을 하겠다는 NTOP 또한 네트워크 분야에서 폭넓게 사용되고 있다.
활용 목적에 따른 설치 방법
먼저 NTOP을 사용하기위한 설치단계에서 관리자는 활용할 목적을 미리 정해야 한다. 즉, NTOP을 활용하는 방식으로 특정 시스템 단위로 인/아웃바운드되는 트래픽에 대한 상세분석을 원할 경우와, 네트워크 전반에 흐르는 트래픽을 분석할 경우가 있다. 이같은 방식의 차이에 따라 설치하는 환경을 다르게 해야 원하는 결과를 얻을 수 있기 때문이다.
먼저 특정 시스템 단위의 상세 분석을 위해서는 NTOP 프로그램을 해당 시스템에 직접 설치하면 되고, 후자의 경우에는 NTOP 전용 시스템을 별도로 지정해서 설치하는 것이 바람직하다. 스위칭 환경의 네트워크 구성(일반적인 구성)이라면, 백본이나 WAN-LAN 연결지점의 스위치에서 미러링 포트를 잡아 NTOP 전용으로 연결하거나 네트워크 TAP 장비를 이용해 모든 포트를 경유하는 트래픽을 NTOP의 모니터링 NIC으로 전달하도록 구성해야 한다. 이때 트래픽량에 따른 NTOP 시스템의 하드웨어 사양에 대한 고려가 필수적이며(예를 들어 기가비트 환경이라면, 64비트 PCI/66Mhz이상의 슬롯이 지원되는 시스템), 여유가 있을 경우에는 ‘NetFlow’라는 플러그인을 이용해 여러 네트워크의 복사된 트래픽들을 복수의 인터페이스에 각각 연결하면 통합 관리 환경에서 인터페이스별로 각각의 리포팅이 가능하다.

NTOP 프로그램 설치
NTOP은 소스코드까지 완전히 공개돼 있을뿐 아니라 운영체제 플랫폼에 독립적인 구조로 코딩돼 있어 리눅스나 유닉스 환경뿐 아니라 윈도우 환경까지 지원한다. 다만 Win32 바이너리의 경우에는 상용화돼 있기 때문에 별도로 구매해야 한다.
따라서 대부분 유닉스나 리눅스에 설치하게 되며, 이때 리포팅에 필요한 gd-1.8.3 이상, libpng-1.2.4 이상, zlib-1.1.4와 패킷 캡처를 위한 libcap 등 동작에 필요한 필수 라이브러리가 많기 때문에 리눅스 기반에서 바이너리 패키지로의 설치방식을 권장한다. 설치를 위해 소스를 컴파일하고 복잡한 준비과정을 거치는 것은 그리 효과적인 일이 아니기 때문이다.
리눅스 환경에서는 www.ntop.org에서 제공하는 rpm 패키지로 설치하고, 솔라리스의 경우는 sunfreeware.com에서 지원되는 바이너리 패키지 파일로 설치하면 된다.
다음은 각 운영체제에서의 설치 방법이다.
★ 솔라리스 : pkgadd -d ./(디렉토리명)/ntop.2.2(패키지명)
★ 리눅스 : rpm --install ./(디렉토리명)/ntop.2.2.rpm
★ 윈도우 : ntop-2.2(demo).exe 실행(설치 단계에서 pcap 2.3이 함께 설치된다)
★ 소스 설치 : pcap.2.2.gz를 압축 해제하고 tar를 푼 다음 해당디렉토리에서 ./configure;make;make install 하면 된다.  설치후 관리환경에 접속하기 위해서는 ‘Interactive Mode’라 불리는 유닉스 셸의 CLI 화면을 통해 텍스트 기반으로 접속하거나 웹브라우저를 통해 관리포트(default: 3000번)로 접속해 GUI로 된 관리 메뉴에 접속할 수 있다.
주로 실시간 분석이 꼭 필요한 경우를 제외하고는 웹 관리 화면으로 접속하면 더 풍부한 데이터와 리포트를 통해 많은 정보를 얻을 수 있다. 이때 NTOP에서 제공하는 웹 엔진은 인증 등 보안 요소가 없기 때문에 보안에 문제를 일으킬 수 있다(인가받지 않은 사용자가 NTOP의 관리 환경에 접속).
이때에는 방화벽을 통해 인가된 IP만 관리 포트에 접속하게 한다거나 NTOP을 사설 IP로 구성한 다음 공인 IP의 아파치 서버를 프록시로 구성해 연결한 후 아파치를 통해 인증을 받은 후 사용하게 할 수 있다. 이같은 경우는 인가된 사용자만 뒷단의 NTOP 서버의 컨텐츠를 이용할 수 있도록 네트워크를 구성할 수 있다.
NTOP의 내부 구조
NTOP은 크게 네트워크에서 패킷을 수집하는 ‘Packet Sniffer’, 수집된 패킷을 필터링하고 분석하는 ‘Packet Analyzer’, 그리고 분석한 자료를 관리자가 읽을 수 있도록 보고서를 만드는 ‘Report Engine’으로 구성돼 있다.
특히 패킷 캡처와 패킷 필터링 기능의 상당부분을 libcap(unix)이나 pcap(win32)를 활용하기 때문에 플랫폼에 종속적이지 않고 작으면서도 다양한 시스템에 포팅할 수 있도록 구성돼 있다. 또한 이같은 범용 패킷 캡처 라이브러리가 작은 버퍼를 가지고 있어 패킷 로스가 발생하는 것을 보완하기 위해 애플리케이션 레벨에서 충분한 2차 버퍼를 만들어 제공한다.
또한 ‘Packet Analyzer’ 모드에서는 기존의 IP 레벨로 노드를 구분하고, 부가정보로 MAC 등을 제공하는 것이 아니라 MAC 기반으로 노드를 분석한다. 따라서 TCP/IP 외에도 OSPF, IPX, Appletalk, UDP, STP 등 다양한 프로토콜에 대해 원활하게 지원할 수 있다. 그리고 ‘Report Engine’에서는 앞서 언급했듯이 웹기반 관리모드와 실시간 데이터가 갱신되는 셸에서의 CLI를 제공해 ‘Packet Analyzer’에서 분석한 데이터를 가공해 보여준다.

NTOP의 주요 기능
모든 설치 과정을 마치고 NTOP의 관리환경에 접속하면, 상단의 기능 탭에서 ‘total’, ‘Recv’, ‘Sent’, ‘Stats’, ‘IP Traffic’, ‘IP protocol’, ‘Admin’ 등을 확인할 수 있다(그림 1).
(그림
먼저 Total 메뉴에서는 NTOP이 설치된 시스템(이하 NTOP 스테이션)에 인/아웃바운드 되는 모든 트래픽에 대해 노드별로 정렬해 전체 프로토콜, TCP/UDP, 처리량, 호스트 상태 등을 확인할 수 있는 화면이 제공되고, 원하는 프로토콜별, 호스트별, 시간별로 정렬할 수 있다(그림 2). 특히 TCP/UDP의 경우에는 telnet, ftp, mail 등을 비롯해 메신저, edonkey, kazaa등 기존의 잘 알려진 서비스에 대해서도 미리 분류돼 있기 때문에 네트워크 관리자가 쉽게 각 서비스별 통계를 확인할 수 있다(그림 3). 또한 호스트 상태는 시간대별로 시스템의 총 트래픽에 대한 통계를 제공해 어느 시간대에 얼마나 사용했는지 확인할 수 있다(그림 4).
(그림
(그림
(그림
‘Recv’와 ‘Sent’에서는 ‘Total’에서 합한 인바운드와 아웃바운드 트래픽에 대해 구분해 정보를 제공하고, ‘Stats’에서는 시스템에 맺어진 세션을 중심으로 세션을 물고 있는 노드들의 상세정보, 트래픽 통계, 네트워크 부하 그래프, 멀티캐스트에 대한 통계를 확인할 수 있다.
(그림
또한 ‘IP traffic’과 ‘IP Protocol’에 대한 별도의 상세메뉴에서는 라우팅과 어드레스 네이밍 등 TCP/IP 네트워크 송신에 가장 중요한 IP 프로토콜에 대한 일반적인 통계 정보 외에도 상세하고 고급 가공 데이터를 제공한다(그림 5). 이를 통해 현재 맺어진 네트워크 세션에 대한 상세 정보와 네트워크 관리자가 쉽게 로컬의 인가/비인가 라우터를 찾아낼 수 있는 기능, VLAN 등에 대한 데이터 수집과 잘못된 설정 등을 찾아낼 수 있도록 해주는 등 다양하게 활용할 수 있다.
(그림

NTOP의 활용
이런 NTOP의 기능들은 얼핏 단순하게 여겨질 수 있으나, 네트워크 관리자가 실시간 또는 짧은 시간동안의 트래픽 분석에 필요한 정보와 통계를 충분히 제공하기 때문에, 구성된 네트워크에 대해 진단할때 편리하게 이용할 수 있다.
NTOP은 MRTG 정보와 같은 통계 위주의 데이터나 스니퍼 등의 툴처럼 지정된 시간동안 패킷을 캡처해 오랜시간 분석하는 것이 아니라 실시간으로 연결한 각 네트워크 세그먼트에 현재 흐르는 트래픽상의 모든 세션과 통계를 제공하고 VLAN이나 OSPF등 현황을 파악할 수 있게한다.
따라서 장비의 잘못 설정된 사항 뿐 아니라 통신 애플리케이션 단계에서 문제가 발생한 부분의 트래픽 상황 파악을 통해 네트워크를 최적화하고 오남용을 방지하고 네트워크 효율성을 높이는데, 충분히 필요한 정보를 제공한다.
또한 NTOP은 네트워크 운영을 위한 모니터링뿐만 아니라 보안에도 응용할 수 있다. 예를 들어 현재의 해킹 추세가 시스템 크래킹에서 지난 1.25 대란처럼 주로 네트워크를 통하여 시스템을 마비시키는 형태로 전이되고 있다.
이때 NTOP을 이용하면 그 어떤 IDS보다도 룰셋이 필요없는 모니터링 도구로 활용할 수 있다. NTOP은 특정 포트나 프로토콜(UDP, 1434port)의 과부하에 대해 하나의 화면에서 직관적으로 알려주며, 또한 시스템별로 DoS 공격을 감지하기 위해 맺어진 세션을 모두 확인하고 세션을 맺은 시스템에 대한 정보를 얻을 수 있다. 또한 네트워크 내에서 인터넷공유 등 인가되지 않은 라우팅 기능을 하는 PC나 장비를 찾아낼 수도 있다. 또한 스니핑을 위한 인터페이스(promiscuous mode)를 감지해 관리자가 쉽게 해킹에 대응할 수 있다.
NTOP의 한계
지금까지는 NTOP의 장점에 대해 살펴봤다. NTOP을 실제 현장에서 사용하면서 몇가지 아쉬운 점에 대해 언급한다면, 무엇보다도 실시간 트래픽에 대한 모니터링 도구인 만큼 데이터들이 모두 휘발성이라는 것이다.
관리자가 디버깅이나 장애처리를 위해 항상 모니터링하는 것 이외에 잠시라도 자리를 비우면 그 시간의 데이터는 텅비게되어 분석할 수 없으므로 이럴 경우 NTOP은 적합하지 않다. 또한 리포팅 모듈에서 데이터 익스포트(Export) 기능이 있긴 하지만 단순히 텍스트만으로 보내기때문에 엑셀 등의 별도의 툴을 이용해야 하는 등 여러모로 번거롭다.
네트워크와 보안 관리자에게 큰 도움
최근 성능 문제를 해결하기위해 한 업체의 네트워크 진단을 의회한 적이 있다. 방화벽이 3차로 구성되고 주로 VRRP와 OSPF 구성에 최종 스위치까지 모두 이중화 또는 그 이상으로 구성되는 등 설계가 매우 복잡한 구조였기에 전문 업체에 최적화에 대한 검증을 부탁한 것이었다.
그런데 소위 전문가들도 ping이나 traceroute, Exceed 등과 Nettools에 들어있는 몇가지 도구로부터 나오는 간단한 결과와 그동안의 경험에 따른 감으로 네트워크를 분석하는 정도라는 것에 놀라움을 금치못했다. 물론 상세분석을 위해 사용하는 스니퍼 역시 모니터링을 할 시점만을 캡처해 분석하거나 실시간 분석 역시 거의 로(raw) 데이터를 그냥 뿌려주는 형태여서 숙련된 전문가가 아니면 스니퍼와 같은 툴로 원하는 결과를 얻기는 정말 어려운 일이라는 것을 절감했다.
이제 최소한 네트워크에 한번도 연결되지 않은 시스템은 거의 존재하지 않을 만큼 네트워크가 중요해진 상황에서 네트워크의 접속 여부만 체크하거나 대역폭 모니터링 정도를 하는 담당자라면 점차 자동화된 툴에 밀려 도태될 것이다.
이런 사람에게는 아무리 좋은 툴과 시간을 준다 해도 언제나 답은 네트워크 회선의 고속화와 장비 증설일 것이기 때문이다. 점차 네트워크 엔지니어의 설자리가 좁아지는 현실에서 네트워크 자원이 풍족해지고 장비가 좋아질수록 기계가 할 수 없는 네트워크의 품질을 분석하고 향후를 예측하는 일과 네트워크를 통해 애플리케이션의 문제를 지적해 낼 수 있는 능력을 갖춰야 한다. 이에 NTOP은 모든 네트워크 관리자들에게 충분한 분석능력을, 보안 관리자에게는 IDS보다도 뛰어난 사전탐지 능력을 제공한다.
이 기사는 ZDNet Korea의 자매지인 on the Net에 게재된 내용입니다.

출처 : http://www.zdnet.co.kr/view/?no=00000010066962

2019-12-20

EVE-NG #2. Use Cisco IOU (IOS on Linux) on EVE-NG

EVE-NG를 설치했다면 이번엔 Cisco IOU 이미지를 업로드 하여 EVE-NG 에서 Cisco 스위치를 사용하는 방법에 대해 작성해 보겠다.
  IOU는 IOS on Linux의 약자로 IOL이라고도 한다. Cisco 내부에서만 사용가능한 이미지로, i386 아키텍처로 컴파일된 리눅스 버전이다. 
EVE-NG에서 사용가능한 IOU 버전은 아래의 두가지이다.
 ( 참고 : https://www.eve-ng.net/index.php/documentation/howtos/howto-add-cisco-iol-ios-on-linux/ )




IOU 이미지는 반드시 .bin 확장자로 되어 있어야 하며, 라이선스 파일 또한 같은 경로에 있어야 한다.
1. IOU 이미지 업로드
 - 먼저 해당 이미지를 filezilla나 winscp 등을 통해 sftp 로 접속하여 파일을 업로드 한다. 



Winscp를 통한 EVE-NG 접속

 - /opt/unetlab/addons/iol/bin/ 경로 이동후 이미지 업로드




- 메시지 창이 나오면 확인 




2. Permission 수정.
 - EVE-NG SSH 접속 후 아래 Command 실행하여 Permission 수정.
/opt/unetlab/wrappers/unl_wrapper -a fixpermissions
 위 명령어 실행후 아래와 같이 permission_denied 오류가 발생할 경우 unl_wrapper 파일 권한을 수정해 주면 된다.
root@eve-ng:~# /opt/unetlab/wrappers/unl_wrapper -a fixpermissions 
  -bash: /opt/unetlab/wrappers/unl_wrapper: Permission denied
 root@eve-ng:~#chmod 755 /opt/unetlab/wrappers/unl_wrapper
3. 라이선스 파일 생성 및 등록.
 - IOUkeygen.py 키젠 파일을 같은 경로에 업로드한다. 



IOUkeygen.py 파일 업로드


- python IOUkeygen.py 실행하여 라이선스 생성.




 - iourc 파일 생성후 라이선스 생성
  생성된 라이선스 정보(노란색 표시)를 iourc 파일을 만든 후 입력하여 저장한다.  
 vi iourc 
 
 [license] 
 eve-ng = 972f30267ef51616;  
 
 :wq
4. EVE-NG에서 이미지 부팅 확인. - eve-ng 웹 접속후 신규 랩을 생성



원하는 이름 선택후 저장(Save)
Node Object 추가


 - Cisco IOL Template 에서 원하는 이미지 선택 후 , 이름, Icon, Ethernet portgroups 등 적절하게 설정 한 후 저장. 




  - 스위치 부팅 후 접속 확인



IOUkeygen.py

2019-11-11

EVE-NG #1. 네트워크 가상 에뮬레이터 EVE-NG 설치 및 소개 (Network Virtual Emulator - Introduce and Install)

네트워크 가상화 에뮬레이터중 대부분의 네트워크 실습이 가능한 EVE-NG를 설치해 보자.

필자는 패킷 트레이서, dynamips, gns3 등 네트워크 가상화 에뮬레이터를 여러종류를 사용해 본 경험이 있으며, 
그중 EVE-NG가 원하는 실습환경을 최대한 동일하게 구성할수 있었고, 주니퍼, 포티 등 방화벽 장비 지원 뿐만 아니라 리눅스 가상화 플랫폼도 지원하여 여러가지 시스템과 연동하여 구성할 수 있어서 에뮬레이터 중이 가장 강력한 도구라고 생각한다. 
EVE-NG는 VirtualBox 나 VMWare 등 가상 머신에 사용할 수 있는 OVA 이미지 와 ISO 설치 이미지를 제공하고 있으며, 원하는 방식으로 설치가 가능하다. 여기에서는 가상 머신에 설치할 수 있는 OVA 파일을 통해 설치해 본다. 
1. 설치 파일 다운로드 
   - EVE-NG 홈페이지(https://www.eve-ng.net/) 접속 후  - Downloads - EVE-NG Community 에서 EVE-NG OVA 파일 다운로드. 
     구글 다운로드 링크 :  구글 Mirror Download 





2. EVE-NG 설치 
   다운로드가 완료 되면  EVE Community VM.ova 라는 파일이 생성이 된다. 해당 파일은 가상머신에서 바로 사용이 가능한 VM 이미지 이다.  가상머신은 무료버전인 VMWare Workstation 15 Player를 사용하였다.

1) VMWare Player에서 가상 이미지 파일 열기 
    Player - File - Open => EVE Community VM.ova 파일 선택 후 열기.





2) VM 이름 및 저장 위치 변경 후 Import 





3) Virtual Machine Setting 에서 Processors의 Virtualize Intel VT-x/EPT or AMD-V/RVI 선택. 





4) Network Adapter 에서 Network Connetcion Nat 선택.





5) 부팅이 완료 되면 로그인 후 추가 세팅을 진행한다. 
   부팅이 되면 할당된 IP 정보 확인이 가능하며,  초기 로그인 정보는 ID : root  / PW : eve 이다. 세팅이 완료 되면 화면에 나와있는 IP URL로 접속하면 된다. 




Root 패스워드 설정 




Hostname 설정




도메인 이름 설정(옵션)




IP 주소 선택. Nat 모드로 구성하였으므로 DHCP 선택. 
( Bridge 모드사용시 PC의 인터페이스 설정과 동일하게 dhcp 나 Static 중 선택 후 사용하면 된다. )




NTP(시간동기화 프로토콜) 설정 ( 사용하는 NTP 서버가 있을경우 설정, 없으면 생략 가능)




프록시 서버 설정 ( 프록시 사용하지 않을 경우 direct connection 선택 ) 




설정이 완료 되면 다시 재부팅이 되며 부팅이 완료 되면 아래와 같이 로그인 창이 보이게 된다.




로그인창에 있는 URL(IP)로 접속하면 eve-ng 웹 UI 접속이 가능하다. ( id : admin / pw : eve )




다음에는 EVE-NG에 스위치 및 라우터 이미지 등록 및 토폴로지 구성하는 방법에 대한 포스팅을 하도록 하겠다. 

Elasticsearch Heap Size

  Elasticsearch는 Java 기반으로 동작을 합니다. Java는 가비시 컬렉터 (garbage-collected)에 의해서 관리가 되며, Java 객체는 힙(Heap) 이라고하는 메모리의 런타임 영역에 상주합니다.  Elasticsear...