社内システム進捗 前回までの決定事項 →システムは「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を使用して一部作成しています。 まずは画面イメージの共有から こんなデザインがいいと要望があればご意見をください。