とあるエンジニアの備忘log
2016年11月18日金曜日
ルーティングテーブル設定 (with DHCP)
ネットワークカード 3枚刺ししてて、そのうち 2つは DHCP。 この状況で所望のルーティングを行わせるにはどうやったらいいものか、 とゴチャゴチャいじくってるうちに、できたっぽい方法をとりあえずメモ。(Ubuntu 16.04) - enp1s0: (DHCP) (192.168.240.x) - enp3s0: (static route) (192.168.11.x) - enp4s0: (DHCP) (10.x.x.x) 指定されたもの以外は全部 enp1s0 にルーティングして欲しい場合。`x` 部分は適宜自分の環境に合わせる。 `/etc/network/interfaces` に以下を追加。 auto enp4s0 iface enp4s0 inet dhcp post-up route del default dev enp4s0 post-up route add -net 10.0.0.0 netmask 255.0.0.0 gw 10.x.x.x metric 1 auto enp3s0 iface enp3s0 inet static address 192.168.11.x netmask 255.255.255.0 gateway 192.168.11.x post-up route del default dev enp3s0 全部 static の時は `/etc/network/if-up.d/static-routes` でうまくいったっぽいが、 DHCP が絡むとうまく行かず。結局、`/etc/network/interfaces` の中で `post-up` の後ろで `route add/del` で足し引きするとなんかうまくいった。 もっとクールなやり方ありそうですが。。
自分的 Ubuntu 16.04 LTS を入れて最初にやること
Ubuntu 16.04 インストールした時の覚え書き。自分用。 #### パッケージのインストール #### `sudo apt-get install` でパッケージインストール。 - synaptic - apt-file - gnome-session-flashback # Unity の代わりに Metacity - gnome-tweak-tool # swap Ctrl and Caps Lock - emacs - emacs-goodies-el # for color-theme - git - gitk - git-email # for git send-email - cvs subversion git-svn # 最近使わないのでいらないか - ccache - fcitx-mozc - emacs-mozc - global - chromium-browser - indent - manpages-ja # 日本語 man 見たいとき LANGUAGE=ja man <command> - virtualbox - virtualbox-guest-additions-iso - ckermit - coccinelle - flex bison - nkf - libc6-i386 # for 32bit programs - ssh # ssh server - device-tree-compiler # dtc for building U-Boot - gimp - u-boot-tools # for mkimage - texlive-full #### Unityを やめる #### $ sudo apt-get install gnome-session-flashback でインストールした後、いったんログアウトし、 GNOME Flashback (Metacity) でログインし直す。 #### Ctrlキー入れ替えなど #### $ sudo apt-get install gnome-tweak-tool として `System Tools` -> `Preferences` -> `Tweak Tool` を開き、 `Typing` -> `Ctrl key position` で `Swap Ctrl and Caps Lock` を選択。 いったんログアウトする。 #### 日本語入力設定 #### 最初のインストール時に、英語、英語キーボードを選択したとする。 $ sudo apt-get install fcitx-mozc としたあと、`System Tools` -> `System Settings` -> `Language Support` を開き、 `Keyboard input method system` を fcitx に。 `System Tools` -> `Preferences` -> `Fcitx Configuration` を開く。 `Input Method` タブは - Keyboard-English (US) - Mozc にする。 Mozc は `+`ボタンを押して `Only Show Current Language` のチェックを外すと出てくる。 `Global Config` のタブで `Show Advance Option` をチェック。 `Activate input method` と `Inactivate Input Method` に Mozc を ON/OFF するキーを設定。 `Trigger Input Method` に `Ctrl+Space`というのが入っているが、これは消す。(Escapeを押す)。 消しておかないと emacs で `Ctrl+Space` (region選択開始)が使えない。 ### Emacs で Solarized 使う ### $ sudo apt-get install emacs-goodies-el で color theme を使えるようにしておき $ git clone git://github.com/altercation/solarized.git ~/ref/solarized で solarized を取得。 `~/.emacs` に以下を追加。 (load-file "~/ref/solarized/emacs-colors-solarized/color-theme-solarized.el") (when (require 'color-theme-solarized) (color-theme-solarized-light)) #### スペルチェッカー #### aspell はデフォルトで入ってる?っぽい。 `~/.aspell.conf` に以下の一行追加。 lang en_US nano から起動するために、 `~/.nanorc` に以下を追加。Ctrl-t で起動できる。 set speller "aspell -x -c" emacs は `M-x ispell-buffer` で起動できる。 #### ssh X forwading #### X で ssh を乗り越えさせる。 ssh クライアント (Xサーバー)側の設定: `/etc/ssh/ssh_config` を開き ForwardX11 no を ForwardX11 yes に変更。 ssh サーバー (Xクライアント)側の設定 (`sudo apt-get install ssh` でインストール必要): `/etc/ssh/sshd_config` を開き ForwardX11 yes になっていることを確認。(たぶんデフォルトでそうなっている。) #### dot ファイル復元 #### ホームディレクトリの dot ファイルを別 PC から復元する。 - .profile - .bashrc - .bash_aliases - .aspell.en.pws # aspell 辞書 - .aspell.en.prepl # aspell 辞書 - .gitconfig # git - .emacs # emacs - .nanorc # nano - .kermrc # kermit - .buildman # U-Boot buildman - .patman # U-Boot patman - .gnupg # GPG - .ssh # if necessary - .pwclientrc # pwclient - .quiltrc # quilt
2016年3月6日日曜日
GPG key sign 備忘録
この度、わけあって GnuPG というものを使い始めたので、鍵の生成から、Key Sign までやったことを、将来の自分のために書き留めておきます。多分すぐに忘れてしまうので。 ### 背景を理解する ### 「GPG とはなんぞや」とか、「公開鍵暗号とは?」みたいな初歩的な話から、「なんで Key Sign みたいな面倒なことをやるの?」とか 「どうして署名用と暗号化用とで複数のキーペアに分かれているの?」みたいな疑問を解決するには本家のドキュメントがおすすめ。 英語ですが、私は [The GNU Privacy Handbook](https://www.gnupg.org/gph/en/manual.html) はなかなかわかりやすかったと思います。 ### Key の生成 ### $ gpg --gen-key で鍵を生成する。いくつかの質問を聞かれる。 鍵の種類はデフォルトの (1) RSA and RSA (default) を選択。Master (署名用) と Sub (暗号化用) で鍵が2ペアできる。 キーサイズと、有効期限については、その人の Paranoid 具合によってデフォルトのままでよいという人もいるし、変更するという人もいる。とりあえず自分は 4096ビットで 5年 を選択した。あとは、本名とメールアドレスを入力する。パスフレーズは(空にもできるが)必ず設定しておく。乱数を生成するためにいろいろ動かしてと言われた後、鍵を生成してくれる。 忘れないうちに $ gpg --output revcert.asc --gen-revoke <key> で、失効証明書を作成しておく。(秘密鍵が盗まれたり、パスフレーズを忘れたりしたりした時に、鍵を失効させるのに使う。) `<key>` の部分は、鍵の生成時に入れた本名やメールアドレスの一部を入れればよい。 `revcert.asc` と `~/.gnupg` 以下を CD-R に焼いて大切に保管しておく。 ### 公開鍵を Key Server に上げる ### キーサーバーに上げる前に、マニュアルとか見ながら触ってみて、gpg の操作に慣れておく。キーサーバーに上げる前ならば、最悪失敗してもキーの生成からやり直せばいいので、いろいろ試してみる。 満足したらキーサーバー(公開鍵の配布を容易にしてくれるサーバー)に上げる。いったんアップロードするとやり直しが効かない(鍵を失効させるしかない)ので、本名やメールアドレスが間違ってないか今一度確認しておく。 $ gpg --keyserver pgp.nic.ad.jp --send-keys <key> でアップロードする。自分は `pgp.nic.ad.jp` を使ったが、キーサーバーはお互いに同期しているので、どのキーサーバーに上げてもよい。 例えば、 [http://pgp.nic.ad.jp/pgp/pks-commands-e.html](http://pgp.nic.ad.jp/pgp/pks-commands-e.html) みたいなページに行って `Search String` のところに自分のメールアドレスを入れてみれば、自分の公開鍵が出てくる。 ### Signing Party ### PGP(GnuPG) の中で一番アナログな部分が Signing Party という工程です。 その公開鍵が間違いなくその本人のものであることを確認しなくてはなりません (悪意を持った人が、その人の名を語ってなりすましている可能性があるため)。 本人確認は、身分証(パスポートなど)を見せて対面で行い、その際に、fingerprint を渡します。 自分の鍵の fingerprint を $ gpg --fingerprint で表示し、あらかじめ印刷しておくのがよいです。 紙に印刷していない場合は、端末に表示させたものを相手にカメラなどで撮ってもらう。 ### 相手の鍵に署名 ### Signing Party が終わった後は、相手の鍵に対して、自分の鍵で署名します。 相手の鍵をキーサーバーから取ってきて、fingerprint が一致するのを確認し、署名します。 署名後に、相手の鍵を勝手にアップロードするのはマナー違反とのことなので、メールで相手に送ってあげます。 その際、相手にしか復号できないように暗号化し、署名して送信、とこれを毎回手動でやるのは大変だ、というわけで それを手助けする caff というツールがあるようです。 ### postfix のセットアップ ### caff はメールの送信までやってくれますが、それにはローカルに SMTP を立てておく必要があるので、 まずそれをやります。普段は Gmail を使っているので、Gmail にリレーさせる方法をとった。 $ sudo apt-get install postfix sasl2-bin 途中で出てくる質問には `Internet Site` を選ぶ。 `/etc/postfix/main.cf` に以下を記載。 relayhost = [smtp.gmail.com]:587 smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_password smtp_sasl_security_options = noanonymous smtp_sasl_tls_security_options = noanonymous smtp_sasl_mechanism_filter = plain smtp_use_tls = yes `/etc/postfix/sasl_password` に [smtp.gmail.com]:587 <your_account>@gmail.com:<your_password> を記載する。 2段階認証を利用していない場合は `<your_password>` の部分は、Gmail に使っているパスワードでよい。 2段階認証を利用している場合は、Google の 「アカウント」、「ログインとセキュリティ」、「アプリ パスワード」とたどり、アプリパスワードというのを生成し、それを `<your_password>` の部分に書く。 $ sudo chmod 600 /etc/postfix/sasl_password $ sudo postmap /etc/postfix/sasl_password $ sudo service postfix restart としたあと、以下で動作確認。 $ mail -s <mail_subject> <mail_address> ### caff ### $ sudo apt-get install signing-party でインストール。 $ caff を実行すると `~/.caffrc` という設定ファイルができる。 大抵は、うまく設定してくれているが、複数の鍵を持っている場合などは修正が必要かもしれない。 最低でも、以下の3項目は正しくなっていることを確認。 $CONFIG{'owner'} = 'Masahiro Yamada'; $CONFIG{'email'} = 'yamada.masahiro@socionext.com'; $CONFIG{'keyid'} = [ qw{3D8B01079DE0DB06} ]; `owner` と `email` はメールの送信元になる。`keyid` は fingerprint の下16桁。 あとは $ caff <key_id> で全部やってくれる。 `<key_id>` は相手の fingerPrint の下8桁を入力。 相手の鍵に、複数の User ID が紐付いているときは、 Really sign all user IDs? (y/N) と聞いてくる。全部の User ID に対して署名する場合はそのまま `y` と答える。 一部の User ID にのみ署名したい場合は、いったん `n` と答えて、 `uid 2` みたいに番号を指定してから `sign` と打つ。 Really sign? (y/N) に `y` と答えたあと、`save` と打つ。 最後にメールで送るかどうか聞いてくるので `y` と答える。 ### サインしてもらった key の取り込み ### 相手も caff を使っていると添付ファイルが 2個ついてメールが送られてくる。 $ gpg -o key --decrypt msg.asc $ gpg --import key $ gpg --keyserver pgp.nic.ad.jp --send-key <key_id> で OK。
新しい投稿
前の投稿
ホーム
登録:
投稿 (Atom)