転載・引用について

ユーザ用ツール

サイト用ツール


tweet

つぶやき

技術系や雑感等は再編集して本文の記事にする事を前提としているので、こっちにLinkを張らないでください。

vuls on FreeBSD

__ Last update: 2017/02/06 : Check on FreeBSD 11 __

VulsというToolが公開されている。https://github.com/future-architect/vuls/blob/master/README.ja.md

要するに、Linux(現時点ではUbuntu, Debian, CentOS, Amazon Linux, RHEL)及びFreeBSDに対する脆弱性検出ツールである。 誤解する人もいるみたいだが、このツールは脆弱性を「検出」するだけであって、対処(pkgのUpgradeとか)はしない。 対象のServerにsshでloginして、様々な情報を持ってくることでそのシステム内の脆弱性を検出する。 したがって、rootでsshするという操作になる。(ただし、これは現在改良中らしい)

Vulsは、Goで動作する。散々わがままを言った挙句、VulsはFreeBSD上でも問題なく動作した。

  • FreeBSD 11.0をInstallする
    • いつもの通りで良い。難しいことはなに一つしない。
    • pkg install go git sqlite3
      • 2017/02/06時点では必要なかったが、場合によってはgccを入れておくこと。
  • vulsを実行するAccountを作成し、sshの鍵を生成する(ここでは、仮にmonitorとする)
    • vuls関連のDBなどは全て~monitor下に配置する
    • adduserなどでアカウントを作成。
    • ssh鍵関連の設定
      • cd ~monitor
      • sudo -u monitor ssh-keygen -t ed25519
      • cat ~/.ssh/id_ed25519.pub » ~/.ssh/authorized_keys
      • chmod 600 ~/.ssh/authorized_keys
        • 公開鍵は、検査対象マシンのauthorized_keysにも転記しておくこと
    • vuls Install前の準備
      • mkdir /var/log/vuls
      • chown monitor /var/log/vuls
      • comod 700 /var/log/vuls
    • 環境の整備
      • .profileに以下を記述
      • export GOPATH=$HOME/go
        export PATH=$PATH:$GOPATH/bin
        • 注意点。$GOROOTは設定しないこと。迂闊に設定すると色々ハマるので、自分で何をやっているかわからない人は触らないのが吉
        • go関係の実行ファイルなどは、$GOPATH内に配置される。
    • go-cve-directonary をinstallする
      • mkdir -p $GOPATH/src/github.com/kotakanbe
      • cd $GOPATH/src/github.com/kotakanbe/
      • cd $GOPATH/src/github.com/kotakanbe/go-cve-dictionary
      • make install
        • cc関連でWarningが出る。これは、FreeBSDのccはclangであり、gccではないため。
      • for i in 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017; do
        go-cve-dictionary fetchnvd -years $i
        go-cve-dictionary fetchjvn -years $i	# もしJVNの情報が要らないならば、ここはskipしても良い
        done
        • 自分はbashを使わないのでこんな迂遠なことになるが、bashなら for i in {2002..2017}; do go-cve-dictionary fetchnvd -years $i; done で行ける
        • ここは時間がかかるので覚悟すること。(昔と比べると本当に早くなったけど)
          • 2017/02/06現在、作成されるDBファイルは、以下のようになった。
          • -rw-r--r--  1 monitor  staff  740999168 Feb  6 12:38 cve.sqlite3
            -rw-r--r--  1 monitor  staff      32768 Feb  6 12:39 cve.sqlite3-shm
            -rw-r--r--  1 monitor  staff   22956672 Feb  6 12:39 cve.sqlite3-wal
    • vuls をinstallする
      • mkdir -p $GOPATH/src/github.com/future-architect
      • cd $GOPATH/src/github.com/future-architect
      • cd $GOPATH/src/github.com/future-architect/vuls
      • make install
        • cc関連でWarningが出る。これは、FreeBSDのccはclangであり、gccではないため。
      • go get github.com/future-architect/vuls
      • vulsのdictionary serverを起動する。
        • go-cve-dictionary server
    • 設定ファイルを作成する
      • 設定ファイルをどこに置くかは少し問題になる部分だが、今回は、~monitor/vuls下にvuls関連のファイルを全部置く前提で行く。
      • config.toml
        [servers]
        
        [servers.example]
        host         = "192.0.2.1"
        port        = "22"
        user        = "monitor"
        keyPath     = "/home/vuls/.ssh/id_rsa"
    • 対象となるServerに必要な設定を突っ込む
      • 対象となるホストに、config.tomlに記載したアカウントを作成する(仮にmonitorとする)
      • ~monitor/.sshにauthorized_keysを設置する
      • visudoを実行し、monitorがno passwordでroot権限を取得できるように設定する
        • monitor ALL=(ALL) NOPASSWD: ALL
        • 将来的には、実行できるコマンドを制限するべきだが、とりあえず今はこれで。
      • vulsを動作させるServerから対象のサーバーにsshで接続でき、かつsudoを実行してpasswordなしでrootになれることを確認する
    • ここまでできたら、vuls prepareを実行する
      • エラーが出たら、何らかのpermissionがおかしいなどが考えられるので、対応する
        • どうしても分からなければ、vulsのslackに報告するか、gitでissueを上げる
    • で、最後にscanする。
      • vuls scan

まだまだ考える必要がある部分はあるが、なかなか素晴らしい。

  • Issue
    • Dictionary Serverの扱い
      • daemon的に動かし続けるのがいいのか、vulsを実行する際に起動するのがいいのか?
        • dailyでauto scanかけるなら、動かし続けるのもいいのだが… localhostからしか接続を許可していないからよしとするか?
    • CPEの設定
      • これは、やはり様々なSampleが欲しいところ。
· 2018/07/02 19:01 · 2017/02/06 14:41

Let's Encryptを少し調べてみた

FreeBSDでacme-clientを利用してLet's Encryptの証明書取得を行うことを考えた。ので、ちょっと調べたメモ

→ 続き...

· 2018/07/02 19:01 · 2017/02/03 14:47

FreeBSD 11.0 Release

FreeBSD 11.0 Releaseが出ている。 元々は、8月くらいにShipされるはずだったのだが、OpenSSLを始めとする様々な脆弱性が公開されたことから、その対応を待って公開することになったものだ。 そのせいもあって、Release時点で11.0-RELEASEではなく11.0-RELEASE-p1として公開された。

# 実際には、11.0 は少し前に公開されたのだが、脆弱性問題があるので使うな!ということになっていた。

さて、というわけで、手元のFreeBSD 10.3で動いているServerを11.0にupgradeしようとしたメモを。

FreeBSDはOSのUpgradeが原則としてとても簡単なOSである。

  1. freebsd-update -r 11.0 upgrade
  2. freebsd-update install
  3. reboot
  4. freebsd-update install
  5. (場合によってpkg-static upgrade -f pkgを先に実行)
  6. pkg update
  7. pkg upgrade
  8. portsnap fetch
  9. portsnap update
  10. (場合によってfreebsd-update installを実行)
  11. reboot

のような手順でいいのだが、今回は少しハマったので愚痴を兼ねて。

まだ、SLB系とDNS系しかupgradeしていないのでこのくらいだが、もしかしたらもっと出るかもしれない…出たら追記する。

→ 続き...

· 2018/07/02 19:01 · 2016/10/25 16:45

FreeBSDでOBSを使う

OS-XやWindowsでStreaming配信を行う際にしばしば利用される配信ソフトウェアにOBS-studioがある。 このソフトウェアはFree and Open Sourceとして公開されているが、これが大変によくできたSoftwareで、こんなのFreeでいいの?と思うような出来である。

このOBS、長らくWindows/MacOS-Xでしか動かないのだろうと思っていたら、よく見るとLinuxの文字列があった。もしかしてと思ってportsを調べてみたら…「すごいや、OBSはFreeBSDにもあったんだ」と。

ということで、FreeBSDでOBSを動かしてみようと。

→ 続き...

· 2018/07/02 19:01 · 2016/10/06 13:56

FreeBSDにNGiNXをSourceからInstall

Sourceからといっても、全部頑張るのは管理上も面倒なので、最小限だけpkgで導入する

  1. FreeBSDをInstall
  2. pkg update; pkg upgradeを実行
  3. pkg install wget git openssl pcre
  4. NGiNXを持ってくる。NGiNXの公式のDownload pageからNGiNXを拾う
  5. NGiNX RTMPモジュールを取得する
  6. 展開する
    • tar xzf nginx-x.xx.x.tar.gz
  7. コンパイルする
    • configureの引数にRTMPモジュールの設定を入れるのを忘れないように
    • configure –prefix=/usr/local –add-module=../nginx-rtmp-module
    • make install
  8. あとは、NGiNXの設定をするだけ
· 2018/07/02 19:01 · 2016/10/03 14:37
このウェブサイトはクッキーを使用しています。 Webサイトを使用することで、あなたはあなたのコンピュータにクッキーを保存することに同意します。 また、あなたはあなたが私たちのプライバシーポリシーを読んで理解したことを認めます。 同意しない場合はウェブサイトを離れてください。クッキーに関する詳細情報
tweet.txt · 最終更新: by seirios

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki