社内システム進捗

社内システム進捗
• 前回までの決定事項
→システムは「Scala PlayFramework2」で作成
→一部バッチ機能は「Python」で実装
→画面はHTML5を積極的に利用しましょう
→サーバについてはさくらVPSを既に契約済
• 今月の進捗
→1. 環境整備(10%)
→2. 一部ですが画面モック作成
0. Scala人気
• RedMonkがプログラムランキングを発表
• 「GitHub」の利用状況と、Q&Aサイト
「StackOverflow」で各言語が話題になってい
る件数を調べ、人気度を判定している
• Scalaは12位でした。まずまず!
【URL】
http://redmonk.com/sogrady/2012/09/12/lang
uage-rankings-9-12/
1. 環境整備
• SSHの設定
• ファイアーウォール設定
• 不要なデーモン停止(詳細説明無し)
• Redmineインストール予定・・・。
• 設定内容について説明します。
→ ちなみにCentOS6.2が対象です
1-1. SSH設定
• 設定ファイルは「/etc/ssh/sshd_config」
• sshd_configの変更を行った
→ポート番号変更
→各種設定(Rootログイン無効)
→公開鍵作成
• 設定後に「sshd」を再起動で有効
→「 etc/rc.d/init.d/sshd restart」
1-1-1. ポート番号変更
• ポート番号を変更するのは何故?
→デフォルトではポート番号は22
→デフォルトポートは狙われる可能性があるた
め、変更する
「Port 10022」を追加(このポート番号は例です)
→設定について説明しているサイトのほとんど
が「10022」になっているので・・・。
• SSH接続することがある場合に教えます
1-1-2. 各種設定
• Rootログイン無効
→「PermitRootLogin no」
• パスワードでのログイン無効
→「PasswordAuthentication no」
• 公開鍵証明書によるログイン有効
→「PubkeyAuthentication yes」
1-1-3. 公開鍵作成
• ログインしたいユーザのカレントディレクトリへ移動す
る(対象ユーザが「user1」の場合)
→「cd /home/user1」
• 公開鍵作成
→「ssh-keygen」コマンドを実行するとパスフレーズを求め
られるので入力する
• 「/home/user1/.ssh/」配下にファイルができる
→「id_rsa」、「id_rsa.pub」(このファイルを
「authorized_keys」にリネーム)
• 「id_rsa」をSSHするクライアント側へ
→クライアント側は「id_rsa」を使用して接続する
1-2.ファイアーウォール設定
• 設定にiptablesを使用します。
• 必要なポート以外をブロックします。
→http、ssh以外の入力をブロック
• 設定ファイルは「/etc/sysconfig/iptables」を編集
する
• 設定後に再起動
→「/etc/rc.d/init.d/iptables restart」
• 反映されているかを確認
→「iptables -L」
1-2-1. iptables設定(1)
• まずはチェーン定義
• 「RH-Firewall-1-INPUT」はユーザ定義
• 「*filter」はフィルタテーブルを使用する定義
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
1-2-2. iptables設定(2)
• INPUT、FORWARDにユーザ定義「 RH-Firewall-1-INPUT 」を設定
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
• 「lo」はループバック。つまり、自分自身への通信を指す
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
• ICMP(通信エラー時にメッセージを送るプロトコル)を許可
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
• パケット改ざんされていないかをチェックするプロトコルを許可
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
1-2-3. iptables設定(3)
• マルチキャストDNSを許可
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
• 印刷データの送受信のためのプロトコルを許可
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
• 【重要】この行が無いと通信できなくなります。
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
• ここまででついてこれなくなっている人がいそうですが・・・・。
• もう少しなのでがんばりましょう。
1-2-4. iptables設定(4)
• SSHポートを有効
• XXXXX部分はデフォルトだと「22」、変更した場合はそのポート番号
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport XXXXX -j ACCEPT
→「-A」は追加
• HTTPポートを有効
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
• それ以外は全てブロックするように設定
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
• 最後にコミット
COMMIT
【参考】 http://blog.serverkurabe.com/sakuravps-start-10
2. Redmine
• プロジェクト管理等に使用します。
• 現在は付属品構成を検討中です。
→Webサーバなど。妥当にApacheにしようかな。
• 管理する予定プロジェクト
(1) 社内システム(Scalaベース)
(2) 探険(Androidアプリ)、名前合ってたっけ・・。
(3) Web用フレームワーク
(4) Commonsプロジェクト
2-1. Web用フレームワーク
• MVCモデルのWebアプリ用
• ベースはSAStruts
• 石○氏が11月帰社日に公開予定
• きっと、今まで見たこともないような仕組み
を・・・。
• 11月帰社日に品評会をしましょう
2-2. Commonsプロジェクト
•
•
•
•
どの案件でも使えそうな共通部品を作成
11月に大○氏が作成
まずはメール送受信部品
JavaMailベースにしようかと
3. 社内システム画面
• 一部ですがモックを用意しました。
• HTML5を使用して一部作成しています。
• HTML5の仕様箇所の説明(タグ)については
来月以降に行います。
• まずは画面イメージの共有から
• こんなデザインがいいと要望があればご意見
をください。