CentOS 7, OpenVAS 9 에서 PDF 파일 생성되지 않을때

리눅스/Security|2019. 2. 7. 12:07
반응형

CentOS 7 에 설치된 OpenVAS 9 에서 PDF 리포트가 생성되지 않을때 확인할 방법입니다.


먼저 아래와 같이 명령을 실행하면 PDF 리포트 가능 여부가 확인됩니다.

# openvas-check-setup


 ...

 Step 9: Checking presence of optional tools ...

       OK: pdflatex found.

       WARNING: PDF generation failed, most likely due to missing LaTeX packages. The PDF report format will not work.

       SUGGEST: Install required LaTeX packages.

 ...


그러면 아래와 같이 필요 패키지를 설치해보세요

 # yum install texlive-collection-latexextra

그래도 The package texlive-collection-latexextra is not available 라는 메세지가 출력되며 설치되지 않는다면, 아래와 같은 방법으로 해결해야 합니다.


1) 기존 설치 파일 모두 제거

# yum remove openvas openvas-manager


2) textlive 설치

# cd/usr/local/src

# wget http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz

# tar xvzf install-tl-unx.tar.gz

# cd install-tl-*

# ./install-tl


"options (O)" 누른 뒤 "create symlinks (L)" 를 선택 합니다.


for the texlive-binaries to: /usr/bin

manpages to: /usr/share/man

to: /usr/share/info


다시 메인페이지로 돌아가서 설치를 합니다.

Now return (R) to the main menu an install (I) texlive 


그다음, openvas-manager 를 설치해야 하는데, 그냥 yum install 할 경우 textlive 가 잘못 설치되어질 수 있으므로

openvas-manager 패키지만 받아 의전성 무시하고 설치를 합니다.


# yum install --downloadonly --downloaddir=/tmp openvas-manager

# rpm -i --nodeps openvas-manager-*.rpm


그리고 나머지 openvas 를 설치합니다. openvas 설치시 greenbone-security-assistant 도 같이 설치됩니다.

# yum install openvas


추가 파일 설치 및 환경 설정을 합니다.

# openvas-setup


gsad 구동 상태에서 아래와 같이 설정 상태를 체크하면, PDF 리포트 생성 가능한것이 보입니다.


 # openvas-check-setup

 ...

 Step 9: Checking presence of optional tools ...

       OK: pdflatex found.

       OK: PDF generation successful. The PDF report format is likely

 to work.

 ...



[출처] http://alfaiacomlinux.blogspot.com/2018/04/openvas-dont-download-pdf-files-in.html

반응형

댓글()

패스워드 복잡성 설정

리눅스/Security|2018. 2. 27. 17:40
반응형

1. 패스워드 사용 기간 제한

$> vi /etc/login.defs

PASS_MAX_DAYS 90

PASS_MIN_DAYS 0

PASS_MIN_LEN   8

PASS_WARN_AGE  7


설정 이후에 생성한 계정에 한해 적용 됩니다.

아래는 수동으로 chage 명령어를 이용한 정책 변경하는 방법입니다.
chage 명령어에 ‘-m’, ‘-M’, ‘-W’옵션을 이용해서 정책을 변경 할 수 있습니다. 
– 정책 확인


# chage -l root
Last password change : Mar 24, 2016
Password expires : Apr 23, 2016
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 0


# chage -m 1 root
Last password change : Mar 24, 2016
Password expires : Apr 23, 2016
Password inactive : never
Account expires : never
Minimum number of days between password change : 1
Maximum number of days between password change : 99999
Number of days of warning before password expires : 0


# chage -M 30 root
Last password change : Mar 24, 2016
Password expires : Apr 23, 2016
Password inactive : never
Account expires : never
Minimum number of days between password change : 1
Maximum number of days between password change : 30
Number of days of warning before password expires : 0


# chage -W 7 root
Last password change : Mar 24, 2016
Password expires : Apr 23, 2016
Password inactive : never
Account expires : never
Minimum number of days between password change : 1
Maximum number of days between password change : 30
Number of days of warning before password expires : 7


2. 기타 비밀번호 설정 (복잡성)

$>vi /etc/pam.d/system-auth

password    requisite     pam_cracklib.so try_first_pass retry=3 minlen=8 ucredit=-1 dcredit=-1 ocredit=-1 lcredit=-1

 

(설명)

password    requisite     pam_cracklib.so try_first_pass retry=3 minlen=8 ucredit=-1 dcredit=-1 ocredit=-1 lcredit=-1

-->

retry=N : 패스워드 입력 실패 시 재시도횟수             

difok=N : 기존 패스워드와 비교. 기본값10 (50%)             

minlen=N :  크레디트를 더한 패스워드최소길이               

dcredit=N : 숫자에 주어지는 크레디트값. 기본 1             

udredit=N : 영어대문자에 주어지는 크레디트값               

lcredit=N : 영어 소문자에 주어지는 크레디트값              

ocredit=N : 숫자, 영어대/소문자를 제외한 기타문자

(각 항목에서 -1 값을 주면 반드시 해당하는 문자를 포함시켜야 함. 즉 dcredit=-1 이라면 패스워드에 숫자가 반드시 포함되어야 함.)



출처: http://oktopbang.tistory.com/entry/패스워드-복잡성-적용-방법 [옥탑방람보]

반응형

댓글()

iptables 멀티 포트 사용하기

리눅스/Security|2017. 11. 8. 16:52
반응형

형식은 아래와 같다.


-A FW-INPUT -p tcp -m multiport --dports 22,80 -j ACCEPT


위에서 --dport 가 아니고 --dports 로 사용 하는 것 주의.

반응형

댓글()

clamav 안티 바이러스, 악성코드 프로그램 설치 & 우분투 PC 적용

리눅스/Security|2017. 8. 11. 09:02
반응형

1. 설치


# yum install clamav clamd


* 바이러스 감염 파일이 필요한 경우 clamav-testfiles 패키지도 같이 설치해줍니다.

   파일 경로는 /usr/share/clamav-testfiles/ 입니다.


설치가 되지 않을 경우 epel-release 를 먼저 설치해줍니다.


# yum install epel-release



2. DB 업데이트


최신 DB 를 업데이트 합니다.


# freshclam


DB 다운로드 사이트에 접속이 잘 안되므로 업데이트가 되지 않을 경우 명령을 몇 번 더 재실행 해봅니다.



3. 검사


실시간으로 검사하지는 않으므로 cron 등을 이용해 주기적으로 로그를 남기도록 하는것이 좋습니다.


1) 특정 디렉토리 검사


# clamscan -r /디렉토리명


* 명령 실행 후 멈춘 것 같은 현상이 나타나는데, 실제 스캔을 시작하기까지 어느 정도의 시간이 소요됩니다.

   파일 개수나 용량이 적은 디렉토리의 경우도 동일합니다. 기다려보세요~!


2) 로그 생성


# clamscan -r /디렉토리명 -l scan.log



※ 팁


# service clamd start 이후


# clamdscan -r /디렉토리명 과 같이 구동하면 스캐닝 시간이 단축 됩니다.


항상 데몬형태로 떠있으며 엔진을 알아서 받아와서 적용하기때문에 clamscan 할때마다

엔진 버전 체크하는 시간이 줄어들어서 그런것으로 알고 있습니다.



※ 우분투 PC


우분투 PC 에 실제로 적용한 사례를 기술하였습니다. 필요하신 분은 내용을 참고하여 환경에 맞게 수정해 사용하시기 바랍니다.


(root 계정에서)


# apt -y install inotify-tools asciidoctor


# mkdir scan_result


# vi scan.sh


#!/bin/bash


find /root/scan_result/ -ctime +30 -exec rm -f {} \;

date=`date +%Y%m%d`

clamscan -r / -l /root/scan_result/${date}.log

cut_from=`cat -n /root/scan_result/${date}.log |grep "SCAN SUMMARY" |tail -n 1 |awk {'print $1'}`

cut_to=`cat -n /root/scan_result/${date}.log |tail -n 1 |awk {'print $1'}`


echo $date > /home/sysdocu/scan_result.txt

sed -n "${cut_from},${cut_to}p" /root/scan_result/${date}.log >> /home/sysdocu/scan_result.txt


# vi /etc/crontab


00 9    * * *   root    sh /root/scan.sh    # 추가 


clamav 를 매일 아침 9시에 root 권한으로 실행하도록 하였습니다.



(sysdocu 계정에서)


스캐닝이 완료되면 브라우저를 통해 결과를 띄우도록 합니다.


$ touch scan_result.txt


$ vi scan_result.sh


#!/bin/bash


while :

do


    # 파일 변화 감지

    inotifywait -qm --event modify --format '%w' scan_result.txt | asciidoctor scan_result.txt


    # 파일 생성 대기

    sleep 10


    # 결과가 있는 경우

    LINE=`cat scan_result.txt |grep "SCAN SUMMARY" |wc -l`

    if [ "$LINE" == "1" ]; then

        # chrome 으로 결과를 확인 할 경우

        sudo -u sysdocu /opt/google/chrome/chrome "scan_result.txt" &

        # gedit 로 결과를 확인 할 경우

        #sudo -u sysdocu gedit "scan_result.txt" &

    fi


    # 브라우저 뜰 때까지 내용 초기화 대기

    sleep 10


    # 내용 초기화

    cat /dev/null > scan_result.txt


    # 만약을 위해 10분 대기

    sleep 600


done


* 자칫 잘못하면 inotifywait 에서 기다리지 않고 넘어가면 작업이 불가능할 정도로 크롬 브라우저 창이 계속 생성될 수 있으므로 안전하게 sleep 600 을 꼭 주도록 합니다.


PC 부팅시 실행되도록 하고, 현재 세션에서도 실행을 한 번 해줍니다.


$ echo "bash /home/sysdocu/scan_result.sh &" >> /home/sysdocu/.profile


$ bash /home/sysdocu/scan_result.sh &


반응형

댓글()

[OpenVAS] CentOS 7 에서 pdf 리포트가 0 byte 로 생성될 경우

리눅스/Security|2016. 12. 12. 16:02
반응형

# yum -y install texlive-changepage texlive-titlesec


# mkdir -p /usr/share/texlive/texmf-local/tex/latex/comment


# cd /usr/share/texlive/texmf-local/tex/latex/comment


# wget http://mirrors.ctan.org/macros/latex/contrib/comment/comment.sty 


# chmod 644 comment.sty


# texhash



[출처] http://miotramemoria.blogspot.jp/2014/08/centos-7-openvas-pdf-reports.html



잘 안되면 그냥 yum install texlive* textlive-* 로 전부 설치해버립니다. (경험)

반응형

댓글()

[OpenVAS] WARNING: Cannot connect to KB at '/tmp/redis.sock': Connection refused'

리눅스/Security|2016. 12. 12. 13:50
반응형

9392 포트로 접속하여 스캐닝 실행시 에러 출력이 아래와 같다면..


Install OpenVAS 7 On CentOS 7 – Run Vulnerability Assessments and Pen Tests



[root@localhost bin]# yum -y install redis


[root@localhost bin]# echo "unixsocket /tmp/redis.sock" >> /etc/redis.conf


[root@localhost bin]# sed -i 's/enforcing/disabled/g' /etc/selinux/config /etc/selinux/config


[root@localhost bin]# systemctl enable redis.service


Created symlink from /etc/systemd/system/multi-user.target.wants/redis.service to /usr/lib/systemd/system/redis.service.


[root@localhost bin]# reboot



[출처] Install OpenVAS 7 On CentOS 7 – Run Vulnerability Assessments and Pen Tests

반응형

댓글()

iptables 구동 잘 안될때 명령어로 셋팅하기

리눅스/Security|2016. 4. 11. 09:37
반응형

스크립트 만들어서 실행하면 빠르게 적용됩니다.


# vi set_iptables.sh



iptables -F

iptables -X

iptables -A INPUT -i lo -j ACCEPT

iptables -A INPUT -d 0.0.0.0/0.0.0.0 -p tcp -m tcp ! --tcp-flags SYN,RST,ACK SYN -j ACCEPT

iptables -A INPUT -d 0.0.0.0/0.0.0.0 -p udp -m udp --dport 53 -j ACCEPT

iptables -A INPUT -s 0.0.0.0/0.0.0.0 -p udp -m udp --sport 53 -j ACCEPT

iptables -A OUTPUT -o lo -j ACCEPT

iptables -A OUTPUT -p udp -m udp --dport 20 -j ACCEPT

iptables -A OUTPUT -p tcp -m tcp --dport 21 -j ACCEPT

iptables -A OUTPUT -p tcp -m tcp --dport 22 -j ACCEPT

iptables -A OUTPUT -p udp -m udp --dport 53 -j ACCEPT

iptables -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT

iptables -A OUTPUT -p tcp -m tcp --dport 443 -j ACCEPT

iptables -A OUTPUT -p tcp -m tcp --dport 3389 -j ACCEPT


반응형

댓글()

Encoders & Decoders

리눅스/Security|2015. 11. 10. 09:09
반응형

http://tools.web-max.ca/encode_decode.php

반응형

댓글()

OMP (OpenVAS CLI 명령어) 사용방법

리눅스/Security|2015. 1. 27. 09:00
반응형

- Update : 2019. 07. 23



1. scan config id 확인


scan config 는 스캐닝 스타일을 의미합니다.

아래 와 같이 리스트를 출력 시킨 후 원하는 id 값을 확인하여 둡니다. (id 값은 바뀌지 않음)


명령

[root@sysdocu ~]# omp -u admin -w [암호] -g


결과

8715c877-47a0-438d-98a3-27c7a6ab2196  Discovery

085569ce-73ed-11df-83c3-002264764cea  empty

daba56c8-73ec-11df-a475-002264764cea  Full and fast

698f691e-7489-11df-9d8c-002264764cea  Full and fast ultimate

708f25c4-7489-11df-8094-002264764cea  Full and very deep

74db13d6-7489-11df-91b9-002264764cea  Full and very deep ultimate

2d3f051c-55ba-11e3-bf43-406186ea4fc5  Host Discovery

bbca7412-a950-11e3-9109-406186ea4fc5  System Discovery



2. target id 값 도출


탐색할 서버 IP 와 포트 범위를 지정하여 target id 값을 생성합니다.


명령

[root@sysdocu ~]# omp -u admin -w [암호] --xml='

<create_target>

<name>Test Server</name>

<hosts>192.168.10.2</hosts>

<port_range>1-65535</port_range>

</create_target>'

* 기본 제공하는 OpenVAS portlist 를 사용하고 싶을 경우, 위의 명령어에서 <port_range>1-65535</port_range> 부분을 빼면 됩니다.

* 또한 포트 범위는 '21,23,80' 으로 하거나 '1-1500,32000-33000' 또는 'T:1-65535,U:1-1024' 와 같은식으로 TCP, UDP 별로 스캔 범위를 정할 수 있습니다.


결과

<create_target_response status="201" status_text="OK, resource created" id="18154082-8471-4b81-9f90-523055255732"></create_target_response>



3. task id 생성


위에서 확인한 scan config id 와 target id 를 이용하여 하나의 task id 로 만듭니다.


명령

[root@sysdocu ~]# omp -u admin -w [암호] --xml='

<create_task>

<name>Daily scan</name>

<comment>Deep scan on Server 3</comment>

<config id="74db13d6-7489-11df-91b9-002264764cea"/>

<target id="18154082-8471-4b81-9f90-523055255732"/>

</create_task>'


결과

<create_task_response status="201" status_text="OK, resource created" id="1167bd8a-ea67-46f5-8a00-4dc5ce2748c9"></create_task_response>



4. scan 시작


최종적으로 만든 task id 를 이용하여 스캐닝을 시작합니다.

명령을 실행할때 리포트 id 값이 출력되고, 나중에 이 id 값으로 결과를 확인할 수 있습니다.


명령

[root@sysdocu ~]# omp -u admin -w [암호] --xml='<start_task task_id="1167bd8a-ea67-46f5-8a00-4dc5ce2748c9"/>'


결과

<start_task_response status="202" status_text="OK, request submitted"><report_id>db2ef78b-9ebe-455b-9890-7e00e4b0d6e8</report_id></start_task_response>



5. 스캐닝 진행 상태 확인


명령

[root@sysdocu ~]# omp -u admin -w [암호] -G


결과

1167bd8a-ea67-46f5-8a00-4dc5ce2748c9  Running 30%  Daily scan    // 진행 중일 때

1167bd8a-ea67-46f5-8a00-4dc5ce2748c9  Done  Daily scan                  // 완료 되었을 때



6. 리포트 생성


출력 가능한 포맷은 어떤 것이 있는지 확인하고 PDF 로 추출하기 위해 id 값을 확인합니다. (id 값은 바뀌지 않음)


명령

[root@sysdocu ~]# omp -u admin -w [암호] --get-report-formats


결과

5057e5cc-b825-11e4-9d0e-28d24461215b Anonymous XML 910200ca-dc05-11e1-954f-406186ea4fc5 ARF 5ceff8ba-1f62-11e1-ab9f-406186ea4fc5 CPE 9087b18c-626c-11e3-8892-406186ea4fc5 CSV Hosts c1645568-627a-11e3-a660-406186ea4fc5 CSV Results 6c248850-1f62-11e1-b082-406186ea4fc5 HTML 77bd6c4a-1f62-11e1-abf0-406186ea4fc5 ITG a684c02c-b531-11e1-bdc2-406186ea4fc5 LaTeX 9ca6fe72-1f62-11e1-9e7c-406186ea4fc5 NBE c402cc3e-b531-11e1-9163-406186ea4fc5 PDF 9e5e5deb-879e-4ecc-8be6-a71cd0875cdd Topology SVG a3810a62-1f62-11e1-9219-406186ea4fc5 TXT c15ad349-bd8d-457a-880a-c7056532ee15 Verinice ISM 50c9950a-f326-11e4-800c-28d24461215b Verinice ITG a994b278-1f62-11e1-96ac-406186ea4fc5 XML


명령

[root@sysdocu ~]# omp -u admin -w [암호] --get-report db2ef78b-9ebe-455b-9890-7e00e4b0d6e8 --format c402cc3e-b531-11e1-9163-406186ea4fc5 > report.pdf


결과

report.pdf 리포트 파일 생성


pdf 로 출력이 되지 않을 경우 (0 byte) 아래 매뉴얼을 참고합니다.

   https://sysdocu.tistory.com/1332


반응형

댓글()

서버 취약점 점검 툴 (OpenVAS 20.8.0) 설치하기 - Ubuntu 20.04

리눅스/Security|2015. 1. 27. 09:00
반응형

OpenVAS 9, 10, 11 버전은 2020 기준으로 EOL 로 인해 사용이 불가능합니다.

아래는 Ubuntu 20.04 버전에 OpenVAS 20.8.0 버전 설치하는 방법을 기술하였습니다.

메모리는 4G 이상이 필요합니다.



1. 패키지 설치


# apt -y update

apt -y install build-essential cmake gnutls-bin pkg-config libgnutls28-dev libssh-dev libssl-dev redis-server libhiredis-dev libxml2-dev doxygen xsltproc libldap2-dev libgcrypt-dev libpcap-dev libgpgme-dev libradcli-dev graphviz bison libksba-dev libical-dev libpq-dev postgresql postgresql-contrib postgresql-server-dev-all libopenvas-dev heimdal-dev libpopt-dev xmltoman gcc-mingw-w64 nmap libmicrohttpd-dev npm nodejs virtualenv python3-paramiko python3-lxml python3-defusedxml python3-pip python3-psutil

# npm install -g yarn --prefix /usr/



2. 사용자 환경 설정


# echo 'export PATH="$PATH:/opt/gvm/bin:/opt/gvm/sbin:/opt/gvm/.local/bin"' | sudo tee -a /etc/profile.d/gvm.sh

# chmod 0755 /etc/profile.d/gvm.sh

# source /etc/profile.d/gvm.sh



3. GVM 라이브러리 경로 추가


# vi /etc/ld.so.conf.d/gvm.conf


# gmv-libs location

/opt/gvm/lib



4. 사용자 계정 생성


# mkdir /opt/gvm

# adduser gvm --disabled-password --home /opt/gvm/ --no-create-home --gecos ''

# usermod -aG redis gvm

# chown gvm:gvm /opt/gvm/

# su - gvm



5. 소스 디렉토리 생성


$ mkdir src

$ cd src/

$ export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH



6. GVM 라이브러리 생성


$ git clone -b gvm-libs-20.08 --single-branch https://github.com/greenbone/gvm-libs.git

$ cd gvm-libs/

$ export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH

$ mkdir build

$ cd build

$ cmake -DCMAKE_INSTALL_PREFIX=/opt/gvm ..

$ make

$ make doc

$ make install

$ cd /opt/gvm/src/



7. OpenVAS samba 설치


$ git clone -b master --single-branch https://github.com/greenbone/openvas-smb.git

$ cd openvas-smb/

$ export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH

$ mkdir build

$ cd build/

$ cmake -DCMAKE_INSTALL_PREFIX=/opt/gvm ..

$ make install

$ cd /opt/gvm/src/



8. OpenVAS scanner 설치


$ git clone -b openvas-20.08 --single-branch https://github.com/greenbone/openvas.git

$ cd openvas/

$ export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH

$ mkdir build

$ cd build/

$ cmake -DCMAKE_INSTALL_PREFIX=/opt/gvm ..

$ make

$ make doc

$ make install

$ exit



9. Redis 설정


# export LC_ALL="C"

# ldconfig

# cp /etc/redis/redis.conf /etc/redis/redis.orig

# cp /opt/gvm/src/openvas/config/redis-openvas.conf /etc/redis/

# chown redis:redis /etc/redis/redis-openvas.conf

# echo "db_address = /run/redis-openvas/redis.sock" > /opt/gvm/etc/openvas/openvas.conf

# systemctl enable redis-server@openvas.service

# systemctl start redis-server@openvas.service



10. GVM 사용자 권한 설정


# vi /etc/sudoers


기존 설정 유지하고 파란색 부분만 추가 합니다.


Defaults        env_reset

Defaults        mail_badpass

Defaults    secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/opt/gvm/sbin"


gvm ALL = NOPASSWD: /opt/gvm/sbin/openvas

gvm ALL = NOPASSWD: /opt/gvm/sbin/gsad



11. 취약점 룰 업데이트


# su - gvm

$ greenbone-nvt-sync



12. OpenVAS 매니저 설치


$ cd /opt/gvm/src/

$ git clone -b gvmd-20.08 --single-branch https://github.com/greenbone/gvmd.git

$ cd gvmd/

$ export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH

$ mkdir build

$ cd build/

$ cmake -DCMAKE_INSTALL_PREFIX=/opt/gvm ..

$ make

$ make doc

$ make install

$ exit



13. PostgreSQL 설정


# sudo -u postgres bash

$ export LC_ALL="C"

$ cd    // 출처에는 해당 항목이 없는데 그냥 진행하면 아래 명령시 퍼미션 에러 출력되므로 디렉토리 이동해준다.

$ createuser -DRS gvm

$ createdb -O gvm gvmd


$ psql gvmd

gvmd=# create role dba with superuser noinherit;

gvmd=# grant dba to gvm;

gvmd=# create extension "uuid-ossp";

gvmd=# create extension "pgcrypto";

gvmd=# exit

$ exit



14. GVM 인증서 생성


$ sudo su - gvm

$ gvm-manage-certs -a



15. GVM admin 생성


$ /opt/gvm/sbin/gvmd --create-user=admin --password=admin

$ gvmd --get-users --verbose

// 출력된 admin 계정의 UUID 확인 : ad77ed01-f2ce-4bb3-a3c5-c8df70f38332

$ gvmd --modify-setting 78eceaec-3385-11ea-b237-28d24461215b --value ad77ed01-f2ce-4bb3-a3c5-c8df70f38332

// 출력되었던 admin 계정의 UUID 입력, 실행


16. Greenbone Feed 갱신


$ greenbone-feed-sync --type GVMD_DATA

$ greenbone-feed-sync --type SCAP

$ greenbone-feed-sync --type CERT



17. Greenbone Security Assistant 구축


$ cd src/

$ git clone -b gsa-20.08 --single-branch https://github.com/greenbone/gsa.git

$ cd gsa/

$ export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH

$ mkdir build

$ cd build/

$ cmake -DCMAKE_INSTALL_PREFIX=/opt/gvm ..

$ make

$ make doc

$ make install

$ touch /opt/gvm/var/log/gvm/gsad.log


* make 진행중 npm install 중에 문제가 생기면 여러번 시도를 해보고,
'npm ERR! code EINTEGRITY' 라는 에러가 출력 될 경우
npm cache verify 실행 후 다시 make 를 시도합니다.


18. Python 으로 가상 환경 설정

$ exit
# python3 --version
# add-apt-repository ppa:deadsnakes/ppa
# apt -y update
# apt -y install python3.7 python3.7-dev

$ sudo su - gvm
$ cd /opt/gvm/src
$ export PKG_CONFIG_PATH=/opt/gvm/lib/pkgconfig:$PKG_CONFIG_PATH
$ virtualenv --python python3.7  /opt/gvm/bin/ospd-scanner/
$ source /opt/gvm/bin/ospd-scanner/bin/activate


19. 스캐너 래퍼용 ospd  클래스 다운로드 및 설치

(ospd-scanner) gvm@ubuntu:~$ git clone -b ospd-20.08 --single-branch https://github.com/greenbone/ospd.git
(ospd-scanner) gvm@ubuntu:~$ mkdir /opt/gvm/var/run/ospd/
(ospd-scanner) gvm@ubuntu:~$ cd ospd/
(ospd-scanner) gvm@ubuntu:~$ pip3 install .
(ospd-scanner) gvm@ubuntu:~$ cd /opt/gvm/src


20. 원격 제어를 위한 ospd-openvas 설치


(ospd-scanner) gvm@ubuntu:~$ git clone -b ospd-openvas-20.08 --single-branch  https://github.com/greenbone/ospd-openvas.git

(ospd-scanner) gvm@ubuntu:~$ cd ospd-openvas/

(ospd-scanner) gvm@ubuntu:~$ pip3 install .



21. systemd 설정


$ exit

$ sudo su

# vi /etc/systemd/system/gvmd.service


[Unit]

Description=Open Vulnerability Assessment System Manager Daemon

Documentation=man:gvmd(8) https://www.greenbone.net

Wants=postgresql.service ospd-openvas.service

After=postgresql.service ospd-openvas.service


[Service]

Type=forking

User=gvm

Group=gvm

PIDFile=/opt/gvm/var/run/gvmd.pid

WorkingDirectory=/opt/gvm

ExecStart=/opt/gvm/sbin/gvmd --osp-vt-update=/opt/gvm/var/run/ospd.sock

ExecReload=/bin/kill -HUP $MAINPID

KillMode=mixed

Restart=on-failure

RestartSec=2min

KillMode=process

KillSignal=SIGINT

GuessMainPID=no

PrivateTmp=true


[Install]

WantedBy=multi-user.target



# vi /etc/systemd/system/gsad.service


[Unit]

Description=Greenbone Security Assistant (gsad)

Documentation=man:gsad(8) https://www.greenbone.net

After=network.target

Wants=gvmd.service


[Service]

Type=forking

PIDFile=/opt/gvm/var/run/gsad.pid

WorkingDirectory=/opt/gvm

ExecStart=/opt/gvm/sbin/gsad --drop-privileges=gvm

Restart=on-failure

RestartSec=2min

KillMode=process

KillSignal=SIGINT

GuessMainPID=no

PrivateTmp=true


[Install]

WantedBy=multi-user.target



# vi /etc/systemd/system/ospd-openvas.service


[Unit]

Description=Job that runs the ospd-openvas daemon

Documentation=man:gvm

After=network.target redis-server@openvas.service

Wants=redis-server@openvas.service


[Service]

Environment=PATH=/opt/gvm/bin/ospd-scanner/bin:/opt/gvm/bin:/opt/gvm/sbin:/opt/gvm/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Type=forking

User=gvm

Group=gvm

WorkingDirectory=/opt/gvm

PIDFile=/opt/gvm/var/run/ospd-openvas.pid

ExecStart=/opt/gvm/bin/ospd-scanner/bin/python /opt/gvm/bin/ospd-scanner/bin/ospd-openvas --pid-file /opt/gvm/var/run/ospd-openvas.pid --unix-socket=/opt/gvm/var/run/ospd.sock --log-file /opt/gvm/var/log/gvm/ospd-scanner.log --lock-file-dir /opt/gvm/var/run/ospd/

Restart=on-failure

RestartSec=2min

KillMode=process

KillSignal=SIGINT

GuessMainPID=no

PrivateTmp=true


[Install]

WantedBy=multi-user.target 


데몬 재시작 및 부팅시 자동 활성화 설정


# systemctl daemon-reload

# systemctl enable gvmd

# systemctl enable gsad

# systemctl enable ospd-openvas

# systemctl start gvmd                          // 매니저

# systemctl start gsad                            // 웹UI

# systemctl start ospd-openvas        // 스캐너


데몬 상태 확인


# systemctl status gvmd



22. 관리 페이지 접근


브라우저로 아래 URL 을 입력합니다.

https://192.168.0.1


* 초기 로그인 계정 : admin / admin

* 로그인 후 비밀번호 변경 필수


로그인 후 우측 상단의 사람 아이콘에 마우스를 올려놓으면 출력되는 My Settings 메뉴를 선택합니다. 좌측의 노트 모양의 Edit 버튼을 눌러 'Timezone (Asia/Seoul)' 과 'Change Password' 를 변경합니다.



[참고] https://www.libellux.com/openvas/#install-openvas-20-08-from-source

[코멘트] sysdocu.tistory.com


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


위 내용을 진행하며 부족했던 부분은 추가로 작성 하였습니다.


1. CLI 사용하기


OpenVAS 신 버전에서는 구버전에서 사용하던 openvas-manager 나 omp 명령이 없습니다.

이를 대체하기 위한 명령어로는 gvm-cli 가 있으며, gvm-tools 패키지를 설치해서 사용이 가능합니다.


1) gvm-cli 설치

# python3 -m pip install gvm-tools


2) pdf 생성용 패키지 설치 

# apt -y install texlive-latex-base texlive-fonts-recommended texlive-fonts-extra texlive-latex-extra


3) 스캐닝을 위해 사용자 전환

# sudo su - gvm


4) 스캐닝


타겟 생성 (스캐닝 대상 서버 IP 와 스캐닝할 포트 범위)

$ gvm-cli --gmp-username admin --gmp-password admin socket --socketpath /opt/gvm/var/run/gvmd.sock\

 --xml "<create_target><name>test1</name>\

<hosts>192.168.10.2</hosts>\

<alive_tests>Consider Alive</alive_tests>\

<port_list id='33d0cd82-57c6-11e1-8ed1-406186ea4fc5'></port_list>\

</create_target>"


태스크 생성 (파란색 글씨는 고정 : Full and Fast scan)

$ gvm-cli --gmp-username admin --gmp-password admin socket --socketpath /opt/gvm/var/run/gvmd.sock\

 --xml "<create_task><name>test2</name>\

<target id=\"681ea656-785d-42b0-8f49-ce35f01ec6cd\"></target> \

<config id=\"daba56c8-73ec-11df-a475-002264764cea\"></config></create_task>"


스캐닝 시작 

$ gvm-cli --gmp-username admin --gmp-password admin socket --socketpath /opt/gvm/var/run/gvmd.sock\

 --xml '<start_task task_id="589082e6-0245-4553-8501-aabcc6bbd4bb"/>'


스캐닝 상태 확인 

$ gvm-cli --gmp-username admin --gmp-password admin socket --socketpath /opt/gvm/var/run/gvmd.sock\

 --xml  "<get_tasks task_id=\"589082e6-0245-4553-8501-aabcc6bbd4bb\"/>" |sed -e "s/></>\n</g" |grep -E "progress|scan_start|scan_end|severity"


리포트 저장 (파란색 글씨는 고정 : pdf 문서 코드)

$ gvm-cli --gmp-username admin --gmp-password admin socket --socketpath /opt/gvm/var/run/gvmd.sock\

 --xml "<get_reports report_id=\"8f1114a3-a37a-402c-b01c-c872864abc83\" format_id=\"c402cc3e-b531-11e1-9163-406186ea4fc5\" details='True' filter='apply_overrides=0 levels=hml rows=100 min_qod=70 first=1 sort-reverse=severity' />" | grep -oP '(?<=</report_format>)[^<]+' | base64 -d > report.pdf



2. 트러블 슈팅

스캐닝이 되지 않고 바로 종료되거나,
Error Message 가 아래와 같이 출력 된 경우 해결 방법입니다.

(에러)
Could not connect to Scanner

(해결)
unix-socket 을 확인합니다.
# systemctl status  ospd-openvas
/opt/gvm/var/run/ospd.sock

사용자를 전환 합니다.
# sudo su - gvm

아래 명령으로 출력된 OpenVAS 스캐너 ID 를 확인 합니다.
$ gvmd --get-scanners

확인했던 unix-socket 과 OpenVAS 스캐너 ID 를 갱신해 줍니다.
$ gvmd --modify-scanner=08b69003-5fc2-4037-a479-93b440211c73 --scanner-host=/opt/gvm/var/run/ospd.sock

그리고 나서 스캐닝을 재시도 합니다.



------------------------------- End-Of-Life ---------------------------------


Ubuntu 18.04, 19.04, 20.04 에서 설치 방법 (OpenVAS)


# apt -y update


# apt -y install openvas


# openvas-setup


설치 마지막에 아래와 같이 패스워드가 출력되므로 잊지않고 메모해두기 바랍니다.


User created with password '609e5e80-4be1-4ac4-8072-6185b9a75589'.


패스워드를 분실 하였을때는 아래와 같이 초기화가 가능합니다.


# openvasmd --user=admin --new-password=new_password


가동 및 중지

# openvas-start

# openvas-stop




CentOS 7.x 에서 설치 방법 (OpenVAS)


OS 종류별 설치 방법은 아래 사이트를 참고하세요.

http://www.openvas.org/



1) selinux 중지

/etc/sysconfig/selinux 수정


2) OS환경 업데이트

yum -y update


3) 필수 구성요소 설치

# yum -y install wget bzip2 texlive net-tools alien gnutls-utils


4) 리포지토리 추가

# wget -q -O - https://www.atomicorp.com/installers/atomic | sh


5) OpenVAS 9 설치

# yum -y install openvas


6) /etc/redis.conf 파일에 아래 내용 주석 해제

unixsocket /tmp/redis.sock

unixsocketperm 700


/etc/redis.conf 파일 없는경우 (yum install redis)


7) Redis 시작

# systemctl enable redis

# systemctl start redis


8) OpenVAS 설정

# openvas-setup


9) 방화벽에 tcp/9392 포트 오픈


이제 https://<IP-ADDRESS>:9392 에 접속해 로그인 후 스캐닝이 가능하다.


CLI (omp) 를 사용하려면 아래 명령을 필수로 수행해야 합니다.

# openvasmd -p 9390 -a 127.0.0.1


또한 pdf 로 출력이 되지 않을 경우 (0 byte) 아래 매뉴얼을 참고합니다.

https://sysdocu.tistory.com/1332



[추가 설정 - Timezone 변경]

https://IP:9392

관리자 계정으로 로그인 후

Extras > My Settings 들어가면

상단 제목 부분에 '연장' 아이콘이 있습니다. 그것을 클릭해서 Timezone 변경이 가능합니다.




CentOS 7.x 에서 설치 방법 (GVM)

같은 OpenVAS 9 버전임에도 설치 해야 하는 패키지, 명령어 등이 바뀌어서 새로운 설치 방법을 찾아보게 되었습니다.

아래 절차대로만 실행하면 CentOS 7 에서 새로운 OpenVAS 9 사용이 가능해질 것입니다.

OpenVAS 설치시 openvas-manager, omp 사용이 불가하고 강제적으로 GVM 이 설치되어 gvm-cli 명령을 이용해야 합니다.

그마저도 GCE (커뮤니티 에디션) 에서는 지원이 안된다는 얘기가 있습니다.


[설치]


# vi /etc/sysconfig/selinux

SELINUX=disabled


# yum -y update

# yum -y install wget

# wget -q -O - https://updates.atomicorp.com/installers/atomic | sh
wget -q -O – https://www.atomicorp.com/installers/atomic | sh 도 상관없음

# yum -y install greenbone-vulnerability-manager

# vi /etc/redis.conf

아래 옵션 두 줄 주석 해제
unixsocket /tmp/redis.sock
unixsocketperm 700

# systemctl enable redis


# systemctl restart redis

# openvas-setup
설치중 관리자 계정 등록

# echo 'OPTIONS="--listen=0.0.0.0 --port=9392"' > /etc/sysconfig/gsad

# systemctl restart gsad
netstat -nltp 로 확인시 9392 포트가 안열려 있으면 gsad 를 재가동

* 취약점 검사 결과 리포트 PDF 추출을 위한 패키지 설치
# yum -y install texlive-collection-fontsrecommended texlive-collection-latexrecommended texlive-changepage texlive-titlesec

# mkdir -p /usr/share/texlive/texmf-local/tex/latex/comment
# cd /usr/share/texlive/texmf-local/tex/latex/comment
# wget http://mirrors.ctan.org/macros/latex/contrib/comment/comment.sty
# chmod 644 comment.sty
# texhash

*gvm-tools 설치를 위한 python 3.6 설치

gvm-tools 를 설치해야 gvm-cli 를 사용할 수 있음

# yum -y install https://centos7.iuscommunity.org/ius-release.rpm
# yum -y update
# yum install -y python36u python36u-libs python36u-devel python36u-pip python36-defusedxml python36-lxml

gvm-cli 명령을 실행해서 옵셜 설명이 나오면 정상. 그 외 에러가 출력되면 맨 아랫줄 메세지를 참고하여 패키지를 추가 설치하거나 별도 해결책을 찾아봐야 합니다.


반응형

댓글()

rkhunter 사용 방법

리눅스/Security|2015. 1. 27. 08:58
반응형

]# tar xvfz rkhunter-xxxxxxxxx

]# cd rkhunter-xxxx

]# sh installer.sh --install

Checking system for:
 Rootkit Hunter installer files: found
 A web file download command: wget found
Starting installation:
 Checking installation directory "/usr/local": it exists and is writable.
 Checking installation directories:
  Directory /usr/local/share/doc/rkhunter-1.3.8: creating: OK
  Directory /usr/local/share/man/man8: exists and is writable.
  Directory /etc: exists and is writable.
  Directory /usr/local/bin: exists and is writable.
  Directory /usr/local/lib: exists and is writable.
  Directory /var/lib: exists and is writable.
  Directory /usr/local/lib/rkhunter/scripts: creating: OK
  Directory /var/lib/rkhunter/db: creating: OK
  Directory /var/lib/rkhunter/tmp: creating: OK
  Directory /var/lib/rkhunter/db/i18n: creating: OK
 Installing check_modules.pl: OK
 Installing filehashsha.pl: OK
 Installing stat.pl: OK
 Installing readlink.sh: OK
 Installing backdoorports.dat: OK
 Installing mirrors.dat: OK
 Installing programs_bad.dat: OK
 Installing suspscan.dat: OK
 Installing rkhunter.8: OK
 Installing ACKNOWLEDGMENTS: OK
 Installing CHANGELOG: OK
 Installing FAQ: OK
 Installing LICENSE: OK
 Installing README: OK
 Installing language support files: OK
 Installing rkhunter: OK
 Installing rkhunter.conf: OK
Installation complete


]# rkhunter --update

]# rkhunter --propupd

]# rkhunter --check

 

[출처] DB분리수거 | 분리수거 (http://blog.naver.com/nkyle9361?Redirect=Log&logNo=110106892778)

반응형

댓글()