とあるインフラエンジニアの日常

インフラ、ネットワークに囲まれた日常をつらつらと書いていきます。時々旨い酒

Jenkinsを使ってみた(インストール編)

はじめに

オープンソースのCIツールJenkinsを使ってみました。
昨今ではサーバーの構成もコードで実行、構成管理することが少なくないので、デプロイした際にテストさせるのが目的です。
(もともとは手作業でやっていました・・・・)
今回は、RedhatEnterpriseLinux7(AWS上に構築)にJenkinsをインストールして初期設定まで行います。

構築環境

  • OSはRedhat EnterpriseLinux(64bit)
  • AWS上の完全仮想化環境
  • インスタンスの作成、セキュリティグループでTCP22と8080を開けておくこと
    • オンプレ環境で実施する場合はiptables設定, ルーターでポート開放を行えば良いはず

インストール準備

jenkinsを動かすのに必要なツールをインストールします。

[root@localhost ~]# yum -y install git
[root@localhost ~]# yum -y install java-1.7.0-openjdk
[root@localhost ~]# yum -y install wget

jenkinsのインストール~起動

  • jenkinsのインストール
[root@localhost ~]# wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
[root@localhost ~]# rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
[root@localhost ~]# yum -y install jenkins
  • サービスの開始(起動時に自動開始)
[root@localhost ~]# systemctl start jenkins
[root@localhost ~]# systemctl enable jenkins

以上でインストール終了です(簡単すぎる・・・・・)

初期設定

  • セキュリティの設定
    [Jenkinsの管理]>[グローバルセキュリティの設定]

    • セキュリティ設定の有効化にチェック
    • "Jenkinsのユーザーデータベース"をチェック
    • 行列による許可設定をチェック
    • "追加するユーザー/グループ:"にユーザー名を入力してユーザー追加
      • ユーザーの右はじにある”全て選択”ボタンをおして、権限に全てチェックを入れる
    • 設定を保存
  • プラグインの更新
    [Jenkinsの管理]>[プラグインの管理]>[アップデート]

    • 全てのプラグインにチェックを入れる
    • ”ダウンロードして再起動後にインストール”を選択
    • 終了後、アップグレード可能なパッケージが表示されないことを確認
  • gitプラグイン導入 [Jenkinsの管理]>[プラグインの管理]>[利用可能]

    • パッケージから"git"を選択する
      • 似たような名前のプラグインが多いが"git"を選択すること
    • "ダウンロード後に再起動する"を選択してインストール
  • gitのパス設定
    [Jenkinsの管理]>[システムの設定]

    • Gitの項目が増えているので、"Path to Git executable"にGitのパス(標準だと/bin/git)を入力

以上でjenkinsのインストールから初期設定は終了。 次回ではgitにコードが入ったら特定の処理を行うジョブが作りたい(作れるといいなー・・・・)と思います

SRX100なれはじめ その5(sourceNATの設定)

インターネットにアクセスする際、プライベートIPのままアクセスすることはあまりないと思います。
今回は、アドレスを変換するNAT(SourceNAT)の設定をしたいと思います。

NATの設定

JunOSではNATの設定をセキュリティポリシーやインタフェースの設定から独立して取り扱います。
実装されているNATは下記の3種類になります。

  • SourceNAT・・・送信元IP/ポート番号の変換(screenOSにおけるInterfaceNAT, インターネットアクセスの際などに使われる)
  • DestinatonNAT・・・送信先IP/ポート番号の変換(ScreenOSにおけるVIP/DIP, 1個のグローバルIP複数のサーバーを公開する場合などに使用)
  • StaticNAT・・・IPアドレス同士を1対1で変換する(ScreenOSにおけるMIP, 1個のグローバルIPで1台のサーバーを公開するなどで使用)

NAT設定がポリシーベースではなくなったため戸惑います。今回はSourceNATを設定したいと思います

SourceNATの構成

f:id:kurokiyokiyo:20150927195920p:plain
* 前回のconfigに追記して設定します

sourceNATの設定

  • 設定の流れ

    • ルールセットの作成
    • ルールセット内にルール(適用条件/アクション)を設定
  • ルールセットを作成して送信元、宛先zoneを設定します

[edit]
# ルールセット"trust-to-untrust"の作成
root# set security nat source rule-set trust-to-untrust
# ルールセット"trust-to-untrust"は送信元がtrust、送信先がuntrustゾーンの場合適用する
root# set security nat source rule-set from zone trust
root# set security nat source rule-set from to untrust
  • ルールの設定
[edit]
#ルールセット内にRule1を作成
root# set security nat source rule-set rule Rule1
#送信元アドレス192.168.1.0/24をsourceNATの対象にする
root# set security nat source rule-set rule Rule1 match source-address 192.168.1.0/24
# 条件に一致して、アドレス変換する際はルーターの送信側インタフェースにIPアドレスを変換する
root# set security nat source rule-set rule Rule1 then source-nat interface

確認方法

下記のコマンドにて、NATのアドレス変換がされていることが判ります。

root> show security flow session 
Session ID: 151, Policy name: trust-to-untrust/4, Timeout: 1198
  In: 192.168.1.2/49206 --> 108.160.172.236/443;tcp, If: vlan.0
  Out: 108.160.172.236/443 --> 192.168.0.101/64189;tcp, If: fe-0/0/0.0

Session ID: 188, Policy name: trust-to-untrust/4, Timeout: 1268
  In: 192.168.1.2/49221 --> 54.192.110.117/443;tcp, If: vlan.0
  Out: 54.192.110.117/443 --> 192.168.0.101/57083;tcp, If: fe-0/0/0.0

Session ID: 189, Policy name: trust-to-untrust/4, Timeout: 1268
  In: 192.168.1.2/49222 --> 54.192.110.117/443;tcp, If: vlan.0
  Out: 54.192.110.117/443 --> 192.168.0.101/30567;tcp, If: fe-0/0/0.0

Session ID: 193, Policy name: trust-to-untrust/4, Timeout: 1206
  In: 192.168.1.2/49224 --> 108.160.172.193/443;tcp, If: vlan.0
  Out: 108.160.172.193/443 --> 192.168.0.101/14173;tcp, If: fe-0/0/0.0

Session ID: 199, Policy name: trust-to-untrust/4, Timeout: 1768
  In: 192.168.1.2/49232 --> 108.160.163.100/443;tcp, If: vlan.0
  Out: 108.160.163.100/443 --> 192.168.0.101/10113;tcp, If: fe-0/0/0.0

次の記事はSRXを離れてJenkinsのことでも書こうと思っています。
(意訳: PPPoEの設定がうまくできない・・・・orz)

参考

Juniper Networks NAT http://www.juniper.net/assets/jp/jp/local/pdf/others/nat.pdf

IT勉強会で懇親会をするとき気をつけること

これまで、江戸前セキュリティ勉強会まっちゃ445勉強会を中心に、IT勉強会で懇親会の担当をする機会に多く恵まれてきました。
その中で、懇親会を企画する際に、気をつけたほうがいいと思ったこと、これまでうまくできなかったことを、
参画から5年(もうすぐ6年)の節目で、一度まとめておきたいと思います。
色々と教えて頂いたid:ripjyr id:vulcainに多謝!

予約者数

  • 勉強会参加者の6割が入る箱を探す
    • (9/23追記)上記人数は規模に応じて想定割合は変更する。上記の数字は勉強会出席者が100人の場合の想定
    • (9/23追記)下記は一例(勉強会参加者が多いほど人数が読みづらいけど、多いほど懇親会出席率は低くなる傾向があると思う)
      • 勉強会参加者< 70人 → 0.7-0.8
      • 勉強会参加者> 100人 → 0.55くらい(少し少なめ)
  • 当日になってキャンセルが出るのは日常。経験則では5-10%程度
    • (9/27追記)事前にリマインダを送付して、当日キャンセルを防ぐ
      • 忘れている人、予定が変わった人は往々にして発生するので
      • 特に、年度末は予定外タスクが発生してドタキャンが多いので注意
      • できれば、1週間前,直前の2回くらい送付しておくと良い
    • 最初は、勉強会参加者数*0.6*0.85くらいの人数で席を予約、少し様子を見てから人数を増やすようにしている
    • お店のご厚意で、懇親会Z日前までなら人数減OKの場合は、逆に勉強会参加者数*0.6*0.9で予約して、ギリギリまで人数を調整している

会場の選定

  • チェーン店はなるべく使わない。使ってもあまり大規模展開していない店を選ぶ(話題性に欠ける)
  • 会場からの移動距離がなるべく少なく、道がわかりやすい店舗が好ましい
  • 上記のような都合の良い店舗がない場合は、地図を配布するなどフォローしきれるか検討する
続きを読む

SRX100なれはじめ その3(基本的なルーター構築)

今回から、簡単なルーターの構築をしていこうと思います。 デフォルトに近い構成なので、半分デフォルトconfigの解説になりそうですがあしからず。

f:id:kurokiyokiyo:20150920195926p:plain

構成

  • IPアドレスは右記、Trust(fe0/0/0): 192.168.1.1/24, Untrust(fe0/0/1-7): 192.168.0.101/24
  • 上流のゲートウェイは192.168.0.1
    • 上流には、192.168.1.0のゲートウェイが192.168.0.101であることは設定済みとする
  • 定義するゾーンは標準のTrust, Untrustのみ
  • Trust → Untrustへの通信はすべてaccept
  • Untrust → Trustの通信はすべてDiscard(deny)
続きを読む

SRX100なれはじめ その2(基本的な操作)

コマンドの練習に設定をいろいろいじってみたいと思います。

設定の確認

オペレーショナルモードでshow configを実行することで現在の設定を確認することができます。

設定の追加・削除

JunOSの設定は階層構造で保存されています。 例えば、下記の標準のVLAN設定を編集したいとします。

vlans {
    vlan-trust {
        vlan-id 3;
        l3-interface vlan.0;
    }
}
続きを読む

SRX100なれはじめ その1(初期設定)

実際にSRX100を開梱して、設定準備をした際のことです。  

続きを読む

SRX100なれはじめ その0(きっかけ)

今回は、Juniper Network のネットワーク機器(ルーター) SRX100Hを設定してみました。

SRX100って?

Juniper Networksが販売しているルーター/ファイアウォール機器です。 現在、多く普及しているSSGシリーズが販売停止、リプレース時期にきており、その後継機としてJuniperが売り出しています。 乗り換え時期だからなのか、非常に安価に販売されているのも魅力です。

続きを読む