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에 스위치 및 라우터 이미지 등록 및 토폴로지 구성하는 방법에 대한 포스팅을 하도록 하겠다. 

2019-05-21

Router EIGRP Summarzation(Auto,Manual Summary)




Distance vector 프로토콜은 전통적으로 Classfull 라우팅 프로토콜을 사용하며 라우팅 정보를 업데이트 할 때 mask 정보를 교환하지 않는다. 
EIGRP 라우팅 프로토콜은 Distance vector 계열 프로토콜 중의 하나이며(RIP,IGRP 등) 기본적으로 Classfull로 네트워크 정보를 자동 요약하여 전달을 한다.
 Auto-Summary의 장점은 더 작은 라우팅 테이블을 만들어서 라우팅 업데이트시에 더 적은 bandwidth를 사용하여 네트워크 Performance를 향상시켜 준다.
또한 EIGRP 라우팅 프로토콜은 VLSM/CIDR을 지원하여, summarization 하지 않고 실제 네트워크의 Subnetmask 정보를 전달할 수 있으며, 수동으로 summarization 할 수 있어서 자신의 네트워크 상황에 맞도록 장비를 구성할 수 있다.
네트워크 정보를 전달할때 기본값으로 auto-summary가 되어 classfull로 네트워크 정보를 전달하며, auto-summary를 사용하지 않을 경우 no auto-summary command를 사용하여 Eigrp 라우팅을 구성할 수 있다. 

I. Topology
 아래와 같이 네트워크를 구성하여 Eigrp로 라우팅을 구성하였고,  R1,R2는 summary 하지 않고 R3 에서만 summary를 구성하였다. 
그리고 외부 인터넷 라우터에는 172.16.0.0/16으로 라우팅 정보를 전달하도록 수동으로 구성하였다.


II. EIGRP Configuration
  1) R1, R2  Eigrp config.
conf t
router eigrp 100
network 10.0.0.0
network 172.16.0.0
no auto-summary
 ==> no auto-summary 로 summary 되지 않도록 구성하여 10.0.0.0 네트워크 대역에 172.16.1.0 서브넷과 
        172.16.2.0 서브넷이 전달되도록 구성.

  2) R3 Eigrp config.
conf t
router eigrp 100
network 10.0.0.0
network 192.168.4.0
 ==> 10.0.0.0 과 192.168.4.0 네트워크를 전달하고 기본값으로 auto-summary 되도록 구성. 

  3) WWW Eigrp config.
conf t
router eigrp 100
network 192.168.4.0

III. Confirm Routing Table
 auto-summary로 라우팅 정보를 전달하게 되면 Eigrp는 즉시 summary된 라우팅 정보를 만들고 interface가 null0로 향하도록 설정을 하게 된다. ( 즉 Drop이 되게 된다.)
 이는 라우팅 정보 전달시 Looping을 예방하기 위한 메커니즘이다.

 <R3 EIGRP Routing table>

  

 그리고 위와 같이 구성할 경우 R3에서는 172.16.1.0과 172.16.2.0은 summary 되지 않는다. 왜냐하면 R3가 auto-summary로 구성되었다고 하더라도 172.16.0.0 서브넷이 R3에 속해 있지 않기 때문이다.
 즉 위와 같이 구성하게 되면 WAN 구간으로 172.16.1.0/24 서브넷과 172.16.2.0/24 서브넷이 전달되게 된다.

<WWW Eigrp routing table> 

   
  라우팅 테이블에 172.16.1.0과 172.16.2.0 이 summary 되지 않고 전달되는 것을 확인할 수 있다.

  만약 R1 구간과 R2 구간에 수십개 이상의 사설 네트워크 구간이 있다고 가정한다면 Wan 구간 라우터의 라우팅 테이블은 수십개 이상 늘어나게 되어 라우팅 업데이트시에 더 많은 트래픽을 사용하게 되고, 라우터의 성능을 저하시키는 문제가 발생하게 된다.
  혹, R1과 R2에서 auto-summary로 네트워크 정보를 전달하는 것을 생각할 수 있겠지만, 그럴 경우에 172.16.1.0 과 172.16.2.0 이 R1, R2에서 모두 172.16.0.0/16 으로 라우팅 정보를 전달하게 되어 결과적으로 자신과 동일한 라우팅 정보를 받게 되고 루핑 방지를 위한 split-Horizon에 의해서 전달된 라우팅 정보를 받지 않게 되어 통신이 불가능하게 된다.

< R1,R2에서 auto-summary 구성할 경우>

  
라우팅 테이블 정보를 보면 172.16.0.0/16으로 summary 된 정보가 확인이 되며 interface는 null로 Drop 된다.

R1에서 172.16.2.0/24 라우팅 정보가 있어야 하지만 172.16.0.0/16으로 전달을 받게되었고, 172.16.0.0/24는 자기 자신의 네트워크여서 실제적으로 정보를 받지 않게 되어 라우팅 테이블에는 아무런 정보도 나타나지 않게 된다.
그리고 R3에서는 R1과 R2로부터 172.16.0.0/16을 동시에 받게 되어 172.16.0.0/16으로 로드밸런싱이 된다.

 이에 대한 해결 방법으로 앞에서 간단히 설명한 manual summary 이라는 방법이 있다. 

IV. Manual Summarization config.
  Manual Summurization 은 말 그대로 수동으로 네트워크 정보를 요약하여 전달하는 것을 의미한다. 
  첫째, 네트워크 정보를 전달할 Interface를 선택한다.
  둘째, ip summary-address eigrp as-number address mask [admin-distance]  로 summarization.

<Command>
   interface select interface   ip summary-address eigrp as-number address mask [admin-distance]  
     
[admin-distance] : (Optional) Administrative distance. A value from 0 to 255
conf t
int serial 3/0
ip summary-address eigrp 100 172.16.0.0 255.255.0.0

==> 결과
<WWW routing table>

   

172.16.0.0/16으로 Summary 되어 라우팅 테이블에 저장이 되었다.

 Manual Class의 장점은 Eigrp가 CIDR을 지원하기 때문에 /23, /20 등으로 슈퍼넷팅이 가능하다는 것이다. 
위의 예문에서는 172.16.1.0과 172.16.2.0을 172.16.0.0/16으로 Major Network로 Summarization 하였지만,
만약 172.16.0.0 ~ 172.16.7.255 까지의 네트워크 대역을 사용 할 경우에는 172.16.0.0 255.255.248.0 으로
Summarization 할 수도 있다.

NSClient - ERROR: Could not get data for 5 perhaps we dont collect data this far back?


NSClient - ERROR: Could not get data for 5 perhaps we dont collect data this far back?


Nagios 모니터링시 위와 같은 메시지 나올 경우 해결 방법. 


에러가 발생하는 서버에 접속.
CMD 창 모드에서 아래와 같은 메시지 입력..



lodctr /R





위와 같은 에러는 윈도우 서버 성능 카운터 관련된 문제로 명령어로 성능 카운터 설정을 다시 해 주면 된다.


Install Docker on Ubuntu



Install Docker on Ubuntu 14.04 LTS



   1. Check current kernel version use  uname -r     uname -r
     3.19.0-25-generic

   2. Update apt source.     apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys     
     58118E89F3A912897C070ADBF76221572C52609D

   3. Open /etc/apt/sources.list.d/docker.list file and Remove existing entries.
     vi /etc/apt/sources.list.d/docker.list
     if the file doesn't exist, create it.
 
   4. Add below enties.  
     deb https://apt.dockerproject.org/repo ubuntu-trusty main

   5. Save and close. 

   6. Update Ubuntu pakage
     Docker#apt-get update

   7. install both the required and optional packages.
     Docker#apt-get install linux-image-generic-lts-trusty

   8. reboot your host
     Docker#reboot



Install Docker

 
  1. Login your Ubuntu Host, as a root or user with sudo privileges.
     apt-get update

  2. Install Docker
   apt-get install docker-engine

  3. Verifi Docker Service running.
    service docker start
    start: Job is already running: docker
    docker -v
    Docker version 1.9.1, build a34a1d5

Stop / Remove all Docker Containers.



Stop / Remove all Docker Containers.


 Use the following command.


 1) Stop all Containers.
   docker stop $(docker ps -a -q)

 2) Remove all Containers.


docker rm $(docker ps -a -q)

Selinux disable setting



기본적으로 SELINUX는 활성화 되어 있다. 서버 작업시 SELINUX 로 인해 제한을 받는 경우가 종종 발생하게 
되는데 아래와 같이 SELINUX 를 disabled 로 변경하면 비활성화가 된다. 

SELINUX=disabled

SELIX 설정 파일은 아래와 같다. 
Centos   :   vi  /etc/sysconfig/selinux
Ubuntu  :    vi /etc/selinux/config

   # This file controls the state of SELinux on the system.
   # SELINUX= can take one of these three values:   #     enforcing - SELinux security policy is enforced.   #     permissive - SELinux prints warnings instead of enforcing.   #     disabled - No SELinux policy is loaded.   SELINUX=enforcing        ##   ==>   SELINUX=disabled 로 변경.
   # SELINUXTYPE= can take one of these two values:   #     targeted - Targeted processes are protected,   #     mls - Multi Level Security protection.   SELINUXTYPE=targeted

바로 적용은 되지 않으며 재부팅을 해야 적용이 된다.

재부팅을 하지 않고 현재 접속된 터미널에 한해 변경된 내용을 적용하고 싶을 경우 다음의 명령어를 실행하면 된다. 

/usr/sbin/setenforce 0 

Adding Ubuntu 16.04 LTS Template in XenServer 6.2



Many people have been having a few issues when installing Ubuntu 16.04 LTS or 14.04 LTS template on a XenServer 6.2 since they dont normally see the templates on the installation screen. Hope the following solution will help. Following some research online and trial and error, i found a solution on how to Add Ubuntu 16.04 LTS Template in XenServer 6.2

The firstt thing you need to do is update the  pygrub in Xenserver, to do so edit

 /usr/lib/python2.4/site-packages/grub/GrubConf.py

drop down to line 428, change the following lines


Change

if arg.strip() == "${saved_entry}":
to:
 if arg.strip() == "${saved_entry}" or arg.strip() == "${next_entry}":

Create new templates for Ubuntu

To add Ubuntu 16.04 LTS template on the  XenServer host, you need to type in the following commands.

For Ubuntu 16.04 Template

$ UUID=`xe template-list name-label="Ubuntu Precise Pangolin 12.04 (64-bit)" params=uuid --minimal`
$ NEW_UUID=`xe vm-clone uuid=$UUID new-name-label="Ubuntu Xenial 16.04 (64-bit)"`
$ xe template-param-set other-config:default_template=true other-config:debian-release=xenial uuid=$NEW_UUID

For Ubuntu 14.04 Template

$ UUID=`xe template-list name-label="Ubuntu Precise Pangolin 12.04 (64-bit)" params=uuid --minimal`
$ NEW_UUID=`xe vm-clone uuid=$UUID new-name-label="Ubuntu Trusty 14.04 (64-bit)"`
$ xe template-param-set other-config:default_template=true other-config:debian-release=trusty uuid=$NEW_UUID

Now open XenCenter and right click on XenServer host and click New VM, you should see the template on the list, the rest of the steps are easy, just follow the directions on the screen.

Xen Server Bootoption 설정



1. VM machine uuid 확인.

   $ xe vm-list

     uuid ( RO)           : 79ce516a-d6e2-97bc-ee76-178a50d62691
         name-label ( RW): Name of VMMachine
         power-state ( RO): running


2. VM Machine bootoption 변경. 

  $ xe vm-param-set uuid=79ce516a-d6e2-97bc-ee76-178a50d62691 HVM-boot-policy=BIOS\ order


3. result

before
 


after

장비 Serial Number 확인 방법



Windows Machine Serial Number check



1. Window 

   => wmic bios get SerialNumber

   



Ntopng Install & configuration



NTOPNG                                                              Ntopng는 기존 Ntop에서 업그레이드 된 버전으로 웹 인터페이스를 통하여 관리 메니징이  가능하며, 훨신 깔끔해지고 보기 편한 UI를 제공한다. 또한 CPU와 메모리 사용량을 감소시켜 자원 활용에도 용이하다.


 필자는 가상화에서도 Ntop을 테스트 해 보았는데 무리없이 동작하는 것을 확인하였다. 단 가상화에서의 이슈가 발생하여 물리 서버로 Ntop서버를 설치하였는데.. 가상화 이슈에 대해서는 추후에 포스팅 해 보도록 할 예정이다.

 Ntopng 는 유닉스(Lunux, *BSD, and MacOSX) 및 윈도우(including windows7/8) 플랫폼을 모두 지원한다.

 Ntopng에 대한 자세한 사항은 홈페이지 참조 : http://www.ntop.org/products/ntop/ 


Ntop 설치 방법 

준비 사항 : NTOP 서버 1대(물리서버), 랜포트 2개 이상
  - Management용 1개, 트래픽 모니터링용 1개, 
  - OS : CentOS6.5 64bit

EPEL6 Repositoiry 추가

yum -y install http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

vi 편집기로 ntop.repo 파일 오픈 후 ntop repository 추가

vi /etc/yum.repos.d/ntop.repo

아래의 내용 추가

[ntop]
name=ntop packages
baseurl=http://www.nmon.net/centos/$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://www.nmon.net/centos/RPM-GPG-KEY-deri


repository 업데이트 및 ntopng 및 패키지 설치.

yum clean all
yum update
!
yum install pfring n2disk nProbe ntopng ntopng-data


ntopng.start 파일 수정.

vi /etc/ntopng/ntopng.start


모니터링할 IP 대역 설정.

--local-networks "192.168.0.0/24"
--interface 0


ntopng.conf.sample 파일 복사

cp /etc/ntopng/ntopng.conf.sample /etc/ntopng/ntopng.conf

방화벽에 Ntopng Management Port 허용

vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3000 -j ACCEPT

방화벽 재시작 및 ntopng 시작

service iptables restart
!
service redis start
service ntopng start


설정 완료 후 http://ntopserverIP:3000 으로 접속. 

기본 ID/PW는 admin/admin

Elasticsearch Heap Size

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