Help us understand the problem. What is going on with this article?

Vuls on Ubuntu16.10 で挫折した話

More than 3 years have passed since last update.

概要

VulsをUbuntu16.10に入れたよ、という記事があまりなかったので、とりあえずやってみました。
で、挫折しました

前提条件

  • ubuntu-16.10-server-amd64.iso を使います。
  • 基本はデフォルトインストールです。
  • 設定もろもろの詳細は、別の記事参照でお願いします。
  • ホームディレクトリ暗号化、はしません。
    • あれはServerで使うのはちょっと...
  • 基本構成は標準化した、Vuls/VulsRepoの導入を利用します。
  • コンソールのPS1配下の通り
    • $ : 最初に作成する、sudo可能なユーザ
    • [vuls]$ : vulsユーザのコンソール
    • # : "神"のコンソール

構築

OSインストール

基本、デフォルトでインストールします。

  • ホームディレクトリ暗号化はしません。
  • インストールパッケージ等、デフォルトです。

OS調整

最初に作ったユーザでログインする。

  • デフォルト構成でsshdが入っていないだと…マジか。
    • 必要に応じて、/etc/sshd.confを修正してね。
  • vulsで使うものは、git, wgetは入っているね。
install_and_networkConfigure
$ sudo apt-get install openssh-server
$ sudo apt-get install sqlite gcc make

ユーザも作ろう

  • visudoすると良く分からんエディタだ。vimで直接/etc/sudoersを編集な。
    • vimジャンキーではないひとは、sudo visudoでどうぞ。
  • vulsの鍵は、もう楕円DSA(ECDSA)使ってもいいよね?
    • ecdsa:521bit にしようぜ。
create_vuls_and_setting
$ sudo useradd -d /opt/vuls vuls
$ vi /etc/sudoers
-----------------------------------
# Members of the admin group may gain root privileges セクションに以下を追加
vuls ALL=(root) NOPASSWD: /usr/bin/apt-get, /usr/bin/apt-cache
-----------------------------------
$ sudo mkdir /opt/vuls
$ sudo chmod 700 /opt/vuls
$ sudo chown vuls:vuls /opt/vuls
$ 
$ su - vuls
[vuls]$ pwd
/opt/vuls
[vuls]$ mkdir .ssh ssh_keys
[vuls]$ chmod 700 .ssh/ ssh_keys
[vuls]$ ssh-keygen -t ecdsa -b 521
[vuls]$ cat .ssh/id_ecdsa.pub >> .ssh/authorized_keys
[vuls]$ chmod 600 .ssh/authorized_keys
[vuls]$ mv .ssh/id_ecdsa ssh_keys/local_id_ecdsa
[vuls]$ exit

go言語, go-cve-dictionary, Vulsを入れる

install_go_lang
$ wget https://storage.googleapis.com/golang/go1.7.4.linux-amd64.tar.gz

早速問題発生。wgetでDNS解決が出来ない?

  • IPv6の無効化か、DNSを8.8.8.8等にすればよい、らしい。
  • 一旦、IPv6を無効化してみると、一応はダウンロードできた。
ipv6_off
$ sudo vi /etc/sysctl.conf
-----------------------------------
# 以下を追加
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
-----------------------------------
$ sudo /etc/init.d/network restart
install_go_lang
$ sudo tar -C /usr/local -xzf go1.7.4.linux-amd64.tar.gz
$ sudo vi /etc/profile.d/goenv.sh
-----------------------------------
# 以下を記載
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
-----------------------------------
$ 
$ sudo su - vuls
[vuls]$ mkdir go
[vuls]$ go version
go version go1.7.4 linux/amd64
[vuls]$ exit
$ 

次はgo-cve-dictionaryを入れる

install_go-cve-dictionary
$ sudo mkdir /var/log/vuls
$ sudo chown vuls:vuls /var/log/vuls
$ sudo chmod 700 /var/log/vuls
$ sudo su - vuls
[vuls]$ mkdir -p $GOPATH/src/github.com/kotakanbe
[vuls]$ cd $GOPATH/src/github.com/kotakanbe
[vuls]$ git clone https://github.com/kotakanbe/go-cve-dictionary.git
[vuls]$ cd go-cve-dictionary
[vuls]$ make install
[vuls]$ cd
[vuls]$ pwd
/opt/vuls
[vuls]$ for i in {2002..2017}; do go-cve-dictionary fetchnvd -years $i; done
 0 / 1 [-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------]   0.00[Dec 12 10:57:21]  INFO Fetching... https://static.nvd.nist.gov/feeds/xml/cve/nvdcve-2.0-2002.xml.gz
[Dec 12 10:57:21] ERROR Failed to fetch cve data from NVD. err: [HTTP error. errs: [Get https://static.nvd.nist.gov/feeds/xml/cve/nvdcve-2.0-2002.xml.gz: dial tcp: lookup static.nvd.nist.gov: no uch host], url: https://static.nvd.nist.gov/feeds/xml/cve/nvdcve-2.0-2002.xml.gz]
 0 / 1 [-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------]   0.00[Dec 12 10:57:21]  INFO Fetching... https://static.nvd.nist.gov/feeds/xml/cve/nvdcve-2.0-2003.xml.gz
[Dec 12 10:57:21] ERROR Failed to fetch cve data from NVD. err: [HTTP error. errs: [Get https://static.nvd.nist.gov/feeds/xml/cve/nvdcve-2.0-2003.xml.gz: dial tcp: lookup static.nvd.nist.gov: no uch host], url: https://static.nvd.nist.gov/feeds/xml/cve/nvdcve-2.0-2003.xml.gz]
...
[vuls]$ 
[vuls]$ nslookup static.nvd.nist.gov
Server:       xxx.xxx.xxx.xxx
Address:      xxx.xxx.xxx.xxx#53

Non-authoritative answer:
static.nvd.nist.gov    canonical name = nvd.nist.gov.
Name:   nvd.nist.gov
Address: 129.6.13.177

[vuls]$ 

が、こちらでも問題発生。
そして、ここで、どうしてもgo-cve-dictionaryがDNS解決できない、という罠にかかって、これ以上進めなくなった。

  • go-cve-dictionaryが、NVDの情報をダウンロードしようとするが、ホスト名(DNSの)解決が出来ないよ、というエラーが出る
  • nslookupでは、IPアドレス解決できる
  • apt-get等は出来たよ?
  • DNSを8.8.8.8にすれば動く可能性があるが、それは根本解決ではないのでやらない

どうも、NetworkManagerが悪さをしているようで、IPv6で躓くようだ。

  • そもそも、NetworkManager.conf なんて存在しないよ
    • dns=dnsmasqを無効化すればよい、というけど…
  • そもそも、それっぽいプロセスいないよ
  • /etc/resolv.conf、もとい、/etc/networking/interfacesにdns-nameserversはきちんと書いてあり、nslookupで解決できるよ
    • DHCPからもらってるんですが。
  • IPv6は無効化して、ifconfigでも存在しないよ。
  • どうすればいいのさ(悲しい)

解決方法見つからず、断念。
なんだこれ。

from_Hokuto_no_ken
俺を待つのは戦いだけなのか!!

天はあくまで非情な宿命を課す!!

やっぱり、みんな大好きLTSな16.04を使う、か。
(翌日に続く)

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away