랩베리 피에 꿀단지를 넣어보도록 하겠습니다.

개시하다


어떤 방문이 있을지 Raspberry Pi에 Dionaea를 넣고 싶어요
해봤어.
(이미 투고했지만 정보는 1년여 전의 것)
(Qiita에서도 같은 기사가 나왔고 백업을 겸해서 가져왔습니다)

프로그램


OS 관계


Raspberry Pi에 OS 추가

  • raspbian-streatch with Desktop을 다운로드하여 메모리 카드에 넣기
  • Win32 Disk Imager( https://sourceforge.net/projects/win32diskimager/ )
  • 포맷 시 SD 메모리 카드 포맷기https://www.sdcard.org/jp/downloads/formatter_4/
    먼저 포맷
  • Raspberry Pi
  • 를 시작하기 위해 이미지가 포함된 SD 카드 설정
  • 최신 상태로 업데이트
  • $ sudo apt-get update
    $ sudo apt-get dist-upgrade
    

    사용자 관련 설정 수정


    pi 사용자가 유효하면 무서워서 다른 사용자를 만든 후에 비활성화됩니다.
  • 사용자의 제작(사용자를 허니로 설정)
  • 
    $ sudo useradd -m -s /bin/bash honey 
    
  • sudo권한의 변경
  • $ sudo visudo
    
    @@ -20,8 +20,7 @@
     root   ALL=(ALL:ALL) ALL
     
     # Allow members of group sudo to execute any command
     %sudo        ALL=(ALL:ALL) ALL
    +honey        ALL=(ALL:ALL) ALL
     
     # See sudoers(5) for more information on "#include" directives:
    
    $ sudo vi /etc/sudoers.d/010_pi-nopasswd
    
    @@ -1 +1 @@
    -pi ALL=(ALL) NOPASSWD: ALL
    +#pi ALL=(ALL) NOPASSWD: ALL
    
  • pi 사용자의 무효화
  • $ sudo usermod -L pi
    

    ssh 로그인을 키 인증으로 제한


    잠시 키 인증에만 로그인합니다.
  • 제작 키
  • $ ssh-keygen
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/honey/.ssh/id_rsa): 
    Created directory '/home/honey/.ssh'.
    Enter passphrase (empty for no passphrase): 
    Enter same passphrase again: 
    Your identification has been saved in /home/honey/.ssh/id_rsa.
    Your public key has been saved in /home/honey/.ssh/id_rsa.pub.
    The key fingerprint is:
    ===(masked)===============================================
    The key's randomart image is:
    +---[RSA 2048]----+
    | (masked)        |
    |                 |
    |                 |
    |                 |
    |                 |
    |                 |
    |                 |
    |                 |
    |                 |
    +----[SHA256]-----+
    
  • ssh 로그인을 키 인증으로만 설정
  • 먼저 키 인증을 유효하게 한 다음 서비스를 시작합니다
  • .
  • Root 사용자의 로그인 무효화와 함께 설정
  • $ sudo vi /etc/ssh/sshd_config
    
    @@ -29,15 +29,15 @@
     # Authentication:
     
     #LoginGraceTime 2m
    -#PermitRootLogin prohibit-password
    +PermitRootLogin no
     #StrictModes yes
     #MaxAuthTries 6
     #MaxSessions 10
     
    -#PubkeyAuthentication yes
    +PubkeyAuthentication yes
     
     # Expect .ssh/authorized_keys2 to be disregarded by default in future.
    -#AuthorizedKeysFile    .ssh/authorized_keys .ssh/authorized_keys2
    +AuthorizedKeysFile     .ssh/authorized_keys .ssh/authorized_keys2
     
     #AuthorizedPrincipalsFile none
    
  • ssh 서비스의 재시작
  • $ sudo service ssh restart
    

  • 키 인증을 통해 로그인할 수 있는지 확인

  • 암호 로그인 해제
  • $ sudo vi /etc/ssh/sshd_config
    
    @@ -53,8 +53,8 @@
     #IgnoreRhosts yes
     
     # To disable tunneled clear text passwords, change to no here!
    -#PasswordAuthentication yes
    -#PermitEmptyPasswords no
    +PasswordAuthentication no
    +PermitEmptyPasswords no
     
     # Change to yes to enable challenge-response passwords (beware issues with
     # some PAM modules and threads)
    
  • ssh 서비스의 재시작
  • $ sudo service ssh restart
    

    Dionaea 설치


    Ubuntu라면 appt-get install 가능한데 Raspbian이 갈지 안 갈지 몰라서
    컴파일해서 넣기로 했어요.

    소스 파일 다운로드, 컴파일 및 설치

  • 다운로드 소스
  • $ cd
    $ git clone https://github.com/DinoTools/dionaea.git
    $ cd  dionaea
    
  • 필수 패키지 설치
  • $ sudo apt-get install \
        build-essential \
        check \
        cmake3 \
        cython3 \
        libcurl4-openssl-dev \
        libemu-dev \
        libev-dev \
        libglib2.0-dev \
        libloudmouth1-dev \
        libnetfilter-queue-dev \
        libnl-dev \
        libpcap-dev \
        libssl-dev \
        libtool \
        libudns-dev \
        python3 \
        python3-dev \
        python3-bson \
        python3-yaml
    
    여기는 cmake3이 없다고 해서 cmake로 다시 도전합니다.
    $ sudo apt-get install cmake
    $ cmake -version
    cmake version 3.7.2
    
    CMake suite maintained and supported by Kitware (kitware.com/cmake).
    
    버전이 3개 이상 있어서 괜찮을 수도 있으니 다른 것도 도전해보세요.
    $ sudo apt-get install \
        build-essential \
        check \
        cython3 \
        libcurl4-openssl-dev \
        libemu-dev \
        libev-dev \
        libglib2.0-dev \
        libloudmouth1-dev \
        libnetfilter-queue-dev \
        libnl-dev \
        libpcap-dev \
        libssl-dev \
        libtool \
        libudns-dev \
        python3 \
        python3-dev \
        python3-bson \
        python3-yaml
    
    컴파일 설치.
    $ mkdir build
    $ cd build
    $ cmake -DCMAKE_INSTALL_PREFIX:PATH=/opt/dionaea ..
    $ make
    $ sudo make install
    

    프로파일


    공식 홈페이지에서 직접 사용할 수 있는 설정 파일이 있어 유용했다.
    dionaea.cfg
    [dionaea]
    download.dir=@LOCALESTATEDIR@/dionaea/binaries/
    modules=curl,python,nfq,emu,pcap
    processors=filter_streamdumper,filter_emu
    
    listen.mode=getifaddrs
    # listen.addresses=127.0.0.1
    # listen.interfaces=eth0,tap0
    
    # Country
    # ssl.default.c=GB
    # Common Name/domain name
    # ssl.default.cn=
    # Organization
    # ssl.default.o=
    # Organizational Unit
    # ssl.default.ou=
    
    [logging]
    default.filename=@LOCALESTATEDIR@/dionaea/dionaea.log
    default.levels=all
    default.domains=*
    
    errors.filename=@LOCALESTATEDIR@/dionaea/dionaea-errors.log
    errors.levels=warning,error
    errors.domains=*
    
    [processor.filter_emu]
    name=filter
    config.allow.0.protocols=smbd,epmapper,nfqmirrord,mssqld
    next=emu
    
    [processor.filter_streamdumper]
    name=filter
    config.allow.0.types=accept
    config.allow.1.types=connect
    config.allow.1.protocols=ftpctrl
    config.deny.0.protocols=ftpdata,ftpdatacon,xmppclient
    next=streamdumper
    
    [processor.streamdumper]
    name=streamdumper
    config.path=@LOCALESTATEDIR@/dionaea/bistreams/%Y-%m-%d/
    
    [processor.emu]
    name=emu
    config.limits.files=3
    #512 * 1024
    config.limits.filesize=524288
    config.limits.sockets=3
    config.limits.sustain=120
    config.limits.idle=30
    config.limits.listen=30
    config.limits.cpu=120
    #// 1024 * 1024 * 1024
    config.limits.steps=1073741824
    
    [module.nfq]
    queue=2
    
    [module.nl]
    # set to yes in case you are interested in the mac address  of the remote (only works for lan)
    lookup_ethernet_addr=no
    
    [module.python]
    imports=dionaea.log,dionaea.services,dionaea.ihandlers
    sys_paths=default
    service_configs=@SYSCONFDIR@/dionaea/services-enabled/*.yaml
    ihandler_configs=@SYSCONFDIR@/dionaea/ihandlers-enabled/*.yaml
    
    [module.pcap]
    any.interface=any
    

    사용자 작성 및 소유자 변경


    사용자를 만들었습니다. 지금까지 루트의 소지품인 다이애나 세트입니다.
    소유자를 변경합니다.
    $ sudo useradd -m dionaea
    $ cd /opt
    $ sudo chown -R dioanaea
    
    여기까지 하면 디오니아가 움직일 거야.

    DionaeaFR 설치


    시각화 도구가 있으니 넣어보세요.

    각 패키지 설치


    $ sudo pip install Django
    $ sudo pip install pygeoip
    $ sudo pip install django-pagination
    $ sudo pip install django-tables2
    $ sudo pip install django-compressor
    $ sudo pip install django-htmlmin
    $ sudo pip install django-filter
    $ sudo pip install uwsgi
    $ cd
    $ git clone https://github.com/benjiec/django-tables2-simplefilter
    $ cd django-tables2-simplefilter
    $ sudo python setup.py install
    $ cd
    $ git clone git://git.bro-ids.org/pysubnettree.git
    $ cd pysubnettree
    $ sudo python setup.py install
    $ cd
    $ wget https://nodejs.org/dist/v8.11.2/node-v8.11.2.tar.gz
    $ tar zxvf node-v8.11.2.tar.gz
    $ cd node-v8.11.2/
    $ ./configure
    $ make
    $ sudo make install
    $ sudo npm install -g less
    $ sudo apt-get install python-netaddr
    

    DionaeaFR 설치

  • 소스 확보
  • $ cd
    $ git clone https://github.com/rubenespadas/DionaeaFR.git
    
  • 지리적 정보를 얻고 DionaeaFR 디렉터리에 저장
  • $ wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
    $ wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
    $ gunzip GeoLiteCity.dat.gz
    $ gunzip GeoIP.dat.gz
    $ mv GeoIP.dat DionaeaFR/DionaeaFR/static
    $ mv GeoLiteCity.dat DionaeaFR/DionaeaFR/static
    
  • DionaeaFR 디렉토리를 이동하여 소유자 변경
  • $ sudo mv DionaeaFR /opt/
    $ cd /opt
    $ sudo chown -R dionaea:dionaea DionaeaFR
    
    이렇게 하면 DionaeaFR도 움직일 거예요.

    DionaeaFR에 대한 외부 액세스 차단


    외부 방문이 상당히 느슨하기 때문에 노드입니다.js에서 수리하는 DionaeaFR
    localhost에서만 볼 수 있는 상태로 변경합니다.
  • UFW 설치
  • $ sudo apt-get install ufw
    
  • 규칙 설정
  • 허니 보온병에 쓰일 의도를 철저히 완화시키기 위해 일부러 기본값을allow로 설정했다.
    
    

    자, 실행하자...!

  • Dionaea의 실행
  • $ sudo /opt/dionaea/bin/dionaea -D -u dionaea -c /opt/dionaea/etc/dionaea/dionaea.cfg -w /opt/dionaea -p /opt/dionaea/var/run/dionaea.pid
    
  • DionaeaFR의 실행
  • $ cd ~/DionaeaFR
    $ sudo python manage.py collectstatic
    $ sudo python manage.py runserver 0.0.0.0:53521
    

    사이트 축소판 그림

  • 공식 홈페이지https://dionaea.readthedocs.io/en/latest/installation.html#rd-party-packages
  • VPS에 벌꿀단지(Dionaea)http://takahoyo.hatenablog.com/entry/2014/05/26/023409
  • 를 넣어봤습니다.
  • VPS에 Dionaea 로그 분석 도구인 DionaeaFRhttp://takahoyo.hatenablog.com/entry/2014/06/07/233059
  • 를 넣어 보세요.

    좋은 웹페이지 즐겨찾기