160 likes | 255 Views
社内システム進捗. 前回までの決定事項 →システムは「 Scala PlayFramework2 」で作成 →一部バッチ機能は「 Python 」で実装 →画面は HTML5 を積極的に利用しましょう →サーバについてはさくら VPS を既に契約済 今月の進捗 → 1. 環境整備 (10%) → 2. 一部ですが画面モック作成. 0. Scala 人気. RedMonk がプログラムランキングを発表 「 GitHub 」の利用状況と、 Q & A サイト「 StackOverflow 」で各言語が話題になっている件数を調べ、人気度を判定して いる
E N D
社内システム進捗 • 前回までの決定事項 →システムは「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/language-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にしようかな。 • 管理する予定プロジェクト • 社内システム(Scalaベース) • 探険(Androidアプリ)、名前合ってたっけ・・。 • Web用フレームワーク • Commonsプロジェクト
2-1. Web用フレームワーク • MVCモデルのWebアプリ用 • ベースはSAStruts • 石○氏が11月帰社日に公開予定 • きっと、今まで見たこともないような仕組みを・・・。 • 11月帰社日に品評会をしましょう
2-2. Commonsプロジェクト • どの案件でも使えそうな共通部品を作成 • 11月に大○氏が作成 • まずはメール送受信部品 • JavaMailベースにしようかと
3. 社内システム画面 • 一部ですがモックを用意しました。 • HTML5を使用して一部作成しています。 • HTML5の仕様箇所の説明(タグ)については来月以降に行います。 • まずは画面イメージの共有から • こんなデザインがいいと要望があればご意見をください。