ときどきAnsible日記

主にITインフラ基盤の自動化に関する事を書いているブログです

インターミッション~会社のはなし~

お疲れ様です。伊藤です。
あれ?もう中休み?という感じですが、またちょっと趣旨の違うことを書きます。技術記事を見に来られた方はすいません、記事一覧 - ときどきAnsible日記から過去の記事をご参照ください。
(この記事は一部PR内容を含みます)


私の好きな言葉に「スタンドプレーから生じるチームワーク」という言葉があります(元ネタを知ってるあなたはオタクかも)何か目標に向かって集団で行動する場合に、個々が独自にベストの動きをすることで結果的にそれがチームプレイになる、というような意味(だと思っています)
私の所属している会社というのがちょっと面白くて、ある程度のおじさんになると会社からアレやれコレやれとは言われず、各自の自主性に任せられます。言い方は悪いですが「方法は問わない、結果を出せ」って感じ。


今回私が行っているAnsibleのプロジェクトのその一つで、「これからAnsibleが来る!」と思った私が社長にやるよって言って始めたものです。この活動というのは自社研究なので全く売り上げが立っていないわけで、まあ他の社員から見たら遊んでいるのとあまり大差ない感じ(に見えているかもしれません)


そんな活動をしていると改めて社員の行動が客観的に見えてくることがあります。趣旨を理解してサポートしてくれる人、やり方について助言してくれる人、別のプロジェクトで売上を上げてくれる人、営業情報を上げてくれる人、自分の作業を一生懸命やる人、社員教育に頑張る人、折れた私の心を癒してくれる人(はいないかな)
とまあ色々な人が個々の考えてサポートしてくれます。サポートしている、というよりは各自がベストだと思った行動を取っている、といった方がしっくりくる感じです。このときの最初に申し上げた言葉を思い出したわけです。


うちの会社って決まった技術を追求しているわけではなく、色々なことをやっているのであまりはっきりとした売りってのが言えないんですが、やっぱりこの社員達がいることがウチの売りなんだなと改めて実感しました。


そんな私が所属している株式会社アビックシステムに興味がある方はこちら。
https://www.abcs.co.jp/www.abcs.co.jp
中途社員の募集は常時行っております。新卒採用についてはサイトの情報をご確認ください。


いつの間にか青汁のCMみたいになってしまいましたが、ご勘弁ください。
次から普通にやります。

Ansibleのセキュリティについて考える

お疲れ様です。伊藤です。

本日はAnsibleのセキュリティについて考えてみます。
AnsibleはSSHを使用する、という特性上、管理対象側のサーバでSSHを通す必要があります。また、OSの設定変更などをする際にはroot権限でアクセスする必要が出てきます。つまりrootでのSSH接続を許可する必要があると。さらに、Ansibleでいちいちパスワードを入力するという手間もありますので、鍵認証などを行い、rootでノンパスワードでSSH疎通できる、という状態になります。(そうしないこともできますが)

これは非常に危険です。そもそもSSHでのroot接続する時点で非常に危険なのに、さらにノンパスワードで疎通できてしまう状態になると、すべてのサーバが乗っ取られてしまう可能性もあります。


まずはSSHの接続設定で接続可能なサーバを指定しましょう。
管理対象側のサーバで/etc/hosts.allowと/etc/hosts.denyを設定します。allowは許可設定、denyは拒否設定になります。
/etc/hosts.deny

ALL: ALL

/etc/hosts.allow

sshd: 192.168.1.100

とすることで192.168.1.100からの接続しか受け付けなくなります。これはこれで困るので他のアドレスも追加しておきましょう。(二度とログインできなくなるので)もしくは192.168.1というように範囲指定しておきましょう。


しかしこれだけではAnsibleが入った管理サーバを乗っ取られた場合に全てのサーバが操作できてしまう可能性があります。その部分を考慮してコンテナを使い、その中にAnsibleを入れることで通常時はコンテナを停止させておき、構築時のみコンテナを起動するような構成にします。

f:id:pj_doaa:20171108102654p:plain

こちらのような構成であれば、運用時に管理サーバに何かあったとしても全サーバに被害を拡大する可能性を薄めることができます。当然そのほかのセキュリティ対策はしている前提になります。
以上です。お疲れ様でした。