既存環境のバージョンをまるっとVuls0.5に入れ替えました。
アップデートでいじるより一旦削除してクリーンインストールの方が楽かな~!
vulsユーザの既存のものを削除
$ cd $ rm -rf *
goのインストール
$ sudo yum -y install sqlite git gcc make wget mailx $ wget https://dl.google.com/go/go1.10.1.linux-amd64.tar.gz $ sudo tar -C /usr/local -xzf go1.10.1.linux-amd64.tar.gz $ mkdir $HOME/go
環境変数設定
$ vi /etc/profile.d/goenv.sh export GOROOT=/usr/local/go export GOPATH=$HOME/go export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
環境変数反映
$ source /etc/profile.d/goenv.sh
go-cve-dictionary
$ sudo chown vuls:vuls /var/log/vuls $ sudo chmod 700 /var/log/vuls $ mkdir -p $GOPATH/src/github.com/kotakanbe $ cd $GOPATH/src/github.com/kotakanbe $ git clone https://github.com/kotakanbe/go-cve-dictionary.git $ cd go-cve-dictionary $ make instal
CVE
$ cd $HOME $ for i in `seq 2002 $(date +"%Y")`; do go-cve-dictionary fetchnvd -years $i; done
OVAL
$ cd $HOME $ goval-dictionary fetch-redhat -dbpath=$HOME/oval.sqlite3 5 6 7
gost
$ sudo mkdir /var/log/gost $ sudo chown vuls:vuls /var/log/gost $ sudo chmod 700 /var/log/gost $ mkdir -p $GOPATH/src/github.com/knqyf263 $ cd $GOPATH/src/github.com/knqyf263 $ git clone https://github.com/knqyf263/gost.git $ cd gost $ make install 取得 Redhat $ gost fetch redhat --after 2016-01-01 取得 Debian $ gost fetch debian --after 2016-01-01
※取得に失敗した場合は1か月毎に範囲指定して結合させると回避できます。
$ gost fetch redhat --after 2019-03-01 --before 2019-04-01 $ gost fetch redhat --after 2019-02-01 --before 2019-03-01 $ gost fetch redhat --after 2019-01-01 --before 2019-02-01 $ gost fetch redhat --after 2018-11-01 --before 2018-12-01 ・・・ $ gost fetch redhat --after 2015-12-01 --before 2016-01-01
(Redhat側でWEBサーバのタイムアウト指定を厳しくしたのかな?
go-explitdb
$ cd $HOME $ sudo mkdir /var/log/go-exploitdb $ sudo chown $USER /var/log/go-exploitdb $ sudo chmod 700 /var/log/go-exploitdb $ mkdir -p $GOPATH/src/github.com/mozqnet $ cd $GOPATH/src/github.com/mozqnet $ git clone https://github.com/mozqnet/go-exploitdb.git $ cd go-exploitdb $ make install 取得 $ go-exploitdb fetch -deep
もくじ
Vuls
a. 以前にインストールしていた場合
$ rm -rf $GOPATH/pkg/linux_amd64/github.com/future-architect/vuls/ $ rm -rf $GOPATH/src/github.com/future-architect/vuls/ $ mkdir -p $GOPATH/src/github.com/future-architect $ cd $GOPATH/src/github.com/future-architect $ git clone https://github.com/future-architect/vuls.git $ cd vuls $ make install
b. 新規でインストールする場合
$ mkdir -p $GOPATH/src/github.com/future-architect $ cd $GOPATH/src/github.com/future-architect $ git clone https://github.com/future-architect/vuls.git $ cd vuls $ make install
設定ファイル
$ vi /home/vuls/config.toml [email] smtpAddr = "localhost" smtpPort = "25" from = "VulsServer@example.net" to = ["user@example.net"] subjectPrefix = "[vuls]" [servers] # localhost [servers.localhost] host = "localhost" port = "local" # HOGEサーバ [servers.HOGE] host = "54.xxx.xxx.113" port = "xxx22" user = "vuls" keyPath = "/home/vuls/.ssh/id_rsa"
構文テスト
# vuls configtest
スキャンとレポート出力
$ vuls scan $ vuls report -ovaldb-sqlite3-path=$HOME/oval.sqlite3 -cvedb-sqlite3-path=$HOME/cve.sqlite3 -gostdb-sqlite3-path=$HOME/go/src/github.com/knqyf263/gost/gost.sqlite3 --lang=ja -format-one-line-text -config=./config.toml
GUIモード
# vuls tui
Vuls Repo
$ cd $ git clone https://github.com/usiusi360/vulsrepo.git $ cd $HOME/vulsrepo/server
$ cp vulsrepo-config.toml.sample config.toml $ vi config.toml [Server] rootPath = "/home/vuls/vulsrepo" resultsPath = "/opt/vuls/results" serverPort = "5111" #[Auth] #authFilePath = "/home/vuls-user/.htdigest" #realm = "vulsrepo_local" ↓変更 [Server] rootPath = "/home/vuls/vulsrepo" resultsPath = "/home/vuls/results" serverPort = "5111" #[Auth] #authFilePath = "/home/vuls/.htdigest" #realm = "vulsrepo_local"
サーバ起動
$ nohup ./vulsrepo-server &
アクセスする
http://192.168.xxx.224:5111/
脆弱性データベース更新手順
更新前に退避します。
$ mv cve.sqlite3 cve.sqlite3_`date +%y%m%d` $ mv oval.sqlite3 oval.sqlite3_`date +%y%m%d` $ cp $HOME/go/src/github.com/knqyf263/gost/gost.sqlite3 $HOME/go/src/github.com/knqyf263/gost/gost.sqlite3_`date +%y%m%d`
CVE
$ cd $HOME $ for i in `seq 2002 $(date +"%Y")`; do go-cve-dictionary fetchnvd -years $i; done
OVAL
$ cd $HOME $ goval-dictionary fetch-redhat -dbpath=$HOME/oval.sqlite3 5 6 7
gost
$ cd $HOME/go/src/github.com/knqyf263/gost/ $ gost fetch redhat --after 2016-01-01
※取得に失敗した場合は1か月毎に範囲指定して結合させると回避できます。
$ gost fetch redhat --after 2019-03-01 --before 2019-04-01 $ gost fetch redhat --after 2019-02-01 --before 2019-03-01 $ gost fetch redhat --after 2019-01-01 --before 2019-02-01 $ gost fetch redhat --after 2018-11-01 --before 2018-12-01 ・・・ $ gost fetch redhat --after 2015-12-01 --before 2016-01-01 (Redhat側でWEBサーバのタイムアウト指定を厳しくしたのかな?
スキャン
$ vuls scan
レポート作成
$ vuls report -ovaldb-sqlite3-path=$HOME/oval.sqlite3 -cvedb-sqlite3-path=$HOME/cve.sqlite3 -gostdb-sqlite3-path=$HOME/go/src/github.com/knqyf263/gost/gost.sqlite3 --lang=ja -format-one-line-text -config=./config.toml
VulsRepoにアクセスする
http://192.168.xxx.224:5111/