vimの文字化け

概要

windowsで新規作成したファイルを、windows上のvmware(CentOS)でデフォルトのvimで開くと文字化け発生。文字化けを直した記録。

登場人物

CentOSの.vimrc

文字コードに関する箇所

:set encoding=UTF-8

なぜ文字化けが起きたのか

ファイルの文字コードを確認

:set fenc?
fileencoding=latin1

fileencodingsの指定がないので、utf-8になるかと思いきやlatin1でした。ぐぐると、latin1になったときは何かしら文字コードの判別に失敗しているとのことでした。 windowsで新規作成しているファイルなので、文字コードsjisにしてみる。

エンコードを指定して保存する

:set fenc=sjis

文字コードを指定してファイルを開き直す

:e ++enc=sjis

どうなった

文字化けが直りました。 vimで開く際に正しい文字コード判別するために.vimrcにfileencondingsを追加。 これでどのファイルも正しい文字コードで表示してくれるはず。

:set fileencodings=ucs-bom,iso-2022-jp-3,iso-2022-jp,eucjp-ms,euc-jisx0213,euc-jp,sjis,cp932,utf-8

参考

d.hatena.ne.jp

ヤマハルータの設定[DMZからの通信を許可する]

概要

自宅のDMZにあるサーバーからyumが実行できなかったので原因を探した時のメモ。

ルータ

RTX1200

ネットワーク構成

自社サーバーを公開(1つの固定グローバルIPアドレス / DMZセグメント : LAN3) : コマンド設定DMZにはwwwだけ。ftpなし。

問題

DMZにあるサーバーからyumが実行できない。WANからhttp通信でサーバが見える。サーバ発の通信ができない。

原因

上記の様なネットワーク構成(DMZ)にサーバがあるので

  • LAN3ではWAN(LAN2)からくるhttp通信のみLAN3に入って(out)、そのレスポンスだけをWAN(LAN2)に送り返す。これはLAN3のout方向の動的フィルタにhttpプロトコルのフィルタを指定しているので。sshもあるのでLAN1からはssh接続も可能。
  • LAN3のin方向の静的フィルタはreject *なのですべての通信を拒否する。しかし、outに設定している動的フィルタの内容だけはin方向は許可するようになっている(動的フィルタを通過するタイミングで許可される)。よって、上記通りwwwとsshだけはLAN3のin方向は許可される(ただし、返信のみ)
  • yumが出来なかった原因はDMZ内にあるサーバから始まる通信はすべてin方向の静的フィルタrejiect * にひっかかり拒否されていた

どうする

LAN3の静的フィルタに以下を追加 * 80/tcp * 443/tcp * 53/udp

これでyumができるようになりました。

お互いに依存しているrpmファイルのインストール

問題

rpm -ivh A
エラー: 依存性の欠如: AはBに必要とされています
rpm -ivh B
エラー: 依存性の欠如: BはAに必要とされています

え、、インストールできない。。

解決方法

rpm -ivh A B

同時に指定するべし

ドキュメントルート変更

概要

apacheのドキュメントルートを変更した時のメモ

メモ

例えば、/home/username の下にドキュメントルートを変更する場合、その下にapacheがアクセス、読み込みできる権限を与えないといけない。

chmod 755 /home/username

ディレクトリの権限

Systemdメモ

基本

Unitの種類 * target 複数のUnitをグループ化する * service サービスを起動

Unit名の拡張子で種類が分かる

設定ファイル

systemd全体の設定ファイル * /etc/systemd/system.conf * /etc/systemd/user.conf

特に–unitでの指定が無ければ、下記が読み込まれる

Unitの定義ファイル

/usr/lib/systemd/system デフォルトの設定内容

パッケージをインストールしたらここに.serviceが置かれるみたい。

/etc/systemd/system デフォルトから変更した内容

httpd /usr/lib/systemd/system/httpd.service

変更を加える場合

/etc/systemd/system/httpd.service.d/を作成

limits.confを作成

[service} LimitNOFILE=65536

Unitの定義ファイル2

/usr/lib/systemd/system/には、RPMパッケージが提供するシステム標準の設定を配置しておき、システム管理者が設定変更する場合は、/etc/systemd/systemにファイルをコピーした上で修正を加えます。

頂点

「default.target」というUnitを頂点

依存関係の骨組み

targetタイプのUnitで依存関係の枠組みを作成する

例えば、 /lib/systemd/system/multi-user.target には Requires=basic.target みたいなの書かれている

Requiresを辿って、枠組みを知ることができる?

はじめ

systemd は default.targetにアクセス。

ただし

/etc/systemd/system/default.target

ll /etc/systemd/system/default.target
lrwxrwxrwx. 1 root root 37  5月 18 16:03 /etc/systemd/system/default.target -> /lib/systemd/system/multi-user.target

このリンクが起動時のランレベルに相当し、このリンクを変えるとランレベルが変更される

「 AはBに依存する」の定義方法

A.service

[Unit]
Wants=B.service

方法2.AのwantsディレクトリにBのシンボリックリンクを作成 A.serviceファイルが存在するディレクトリ上に「A.service.wantsディレクトリを作成し、このディレクトリ内にB.serviceへのシンボリックリンクを作成

/etc/systemd/system/multi-user.target.wants/ など

起動シーケンス

/usr/lib/systemd/systemd 起動

systemdが起動すると、はじめに「default.target」から「Requires/Wants」の関係をたどって、起動するべきUnitの全体を把握

起動対象の各Unitの「After/Before」の依存関係から起動順序を決定

systemdの起動でのメリット

systemdは、順序関係の情報をもとにして、複数のUnitをできるかぎり並列に起動していきます。

参考

enakai00.hatenablog.com

CVEメモ

脆弱性関連情報流通体制

発見者→IPAJPCERT/CCIPA,JPCERT/CC,JVNで公表→ユーザ企業(この時点でここで脆弱性を初めて知ることが多いと思われる)

f:id:kandataclub:20171218094543p:plain

用語について

CVEとは

  • MITRE社が管理する脆弱性のユニークなID。世の中の脆弱性はこのIDが付いている
  • 世の中にはCERT/CCやHP、IBM、OSVDB、Red HatSymantecなど80を超える主要な脆弱性情報サイトがあり、MITRE社ではこれらのサイトと連携して脆弱性情報の収集と、重複のない採番
  • CVEの管理団体が米国であるために日本での脆弱性情報が網羅されているわけではない様子

番号の付け方

  • CVEでは脆弱性にユニークな識別番号 「CVE-ID」(CVE-登録時の西暦-通し番号の形式)です。
    • 脆弱性「Heartbleed」は、2014年4月7日にCVE-2014-0160として発表されました。つまり、CVE-ID の構成から、2014年に0160番として登録

NIST

アメリカ国立標準技術研究所(National Institute of Standards and Technology、通称NIST) が過去に管理していた脆弱性情報データベースである。現在は機能強化されたNVDに移行している。

NVDとは

  • NISTが管理している脆弱性情報データベース
  • NISTはMITRE/CVEのスポンサーであり、CVEで命名された脆弱性情報の詳細情報をNVDで提供するという住み分けを行なっている。また、他の脆弱性情報データベースとの違いとして、Common Vulnerability Scoring System(通称CVSS)による危険度の採点を行なっている点が挙げられる。

JVNとは

  • IPAJPCERT/CCが共同で運営
  • いち早く一般に周知することを目的に、早期警戒パートナーシップで取扱われた脆弱性関連情報や、協力関係を結んでいる海外のCERT等からの脆弱性対策情報を掲載
  • なのでJVNをチェックすればほぼ世の中のCVEは把握できそう

CERT/CC

  • コンピュータやインターネットのセキュリティに関する研究や情報発信を行なっているアメリカの研究機関

JPCERT/CC

  • 国内向けのセキュリティ関連情報の提供や各国代表CSIRTとの連携窓口となっている機関

JVN iPedia

  • JVNよりもさらに日本向け情報に特化したもの
  • JVN iPediaは、国内外問わず日々公開される脆弱性対策情報を収集、蓄積することを目的とした脆弱性対策情報データベースです。目的の脆弱性対策情報を容易にご利用いただくために、様々な検索機能をご用意しています。

JVNJVN iPediaとMITRE社\

  • MITRE社と連携してCVE採番の枠組みに参加するため、JVNで公表する脆弱性に対するCVEの割り当てを申請している。

JVNJVN iPediaの違い?

  • JVN iPediaはJVNの情報に加えて、「脆弱性対策情報データベース(JVN iPedia=ジェイブイエヌ アイ・ペディア)」には日々発見される脆弱性対策情報が収録JVN iPediaは日々発見される脆弱性対策情報を蓄積することで幅広くご利用いただくことを目的としています。JVNに掲載される脆弱性対策情報のほか、国内外問わず公開された脆弱性対策情報を広く公開対象とし、データベースとして蓄積しています。
  • 一方、JVNでは、いち早く一般に周知することを目的に、早期警戒パートナーシップで取扱われた脆弱性関連情報や、 協力関係を結んでいる海外のCERT等からの脆弱性対策情報を掲載しています。JVNの詳細については「JVNとは?」をあわせて参照下さい。

まとめ

どこから情報収集するのか

  • 日本向けのサイトになると思われる。JVN、JPCERT、JVN iPedia
  • JVNが海外と連携しているので、JVNをチェックしていれば、ほぼ一般的なシステムの脆弱性運用の脆弱性チェックは網羅しているはず

脆弱性の対応

  • 各ベンダーのサイトで確認する
  • 基本的には、パッチや、アップデートで済むんじゃないだろうか??

さらに脆弱性チェックの拡大と自動化

  • できればNVDやMITRE社のOVALリポジトリまでチェックしたい(世界の脆弱性を網羅したいので)
  • Vulsというソフトがそれを叶えてくれrう

参考

今さら聞けないセキュリティ情報の読み方 — | サイオスOSS | サイオステクノロジー

Cent7インストールメモ

メモ

  • swapもLVMで。他とボリュームグループは異なる
  • ボリュームグループの設定は最大を選択。swapは固定。
  • /bootは通常のパーティションしかむり。LVMは使えない。
  • /boot , swap から作成。その時のswapのボリュームグループはFixed.
  • swapはraidバイス
  • 少ない容量から決めていく
  • とりあえず異なるボリュームグループのマウントポイントを作成しておかないとスペースが無いと怒られる