LastShogunのブログ -4ページ目

LastShogunのブログ

元ITベンチャー社長が青年海外協力隊でタイに行きます

OpenSSLがセキュリティホールでアップデートしたので、Rubyの再コンパイルをしておくので、その際のメモを残しておく。

yum erase ruby
もともと用意されているRubyは削除しておく

yum install zlib zlib-devel readline readline-devel openssl openssl-devel curl curl-devel sqlite-devel git

#rbenvをインストール
cd /usr/local
git clone git://github.com/sstephenson/rbenv.git rbenv
mkdir rbenv/shims rbenv/versions
chmod -R g+rwxXs rbenv
git clone git://github.com/sstephenson/ruby-build.git ruby-build
cd ruby-build
./install.sh

# 全体のPATH に追加
vi /etc/profile
に以下を追加
----
export RBENV_ROOT="/usr/local/rbenv"
export PATH="/usr/local/rbenv/bin:$PATH"
eval "$(rbenv init -)"
----

# 上記設定の再読み込み
exec $SHELL -l

#バージョン確認
rbenv --version

# インストール可能なruby の確認
rbenv install --list

$ rbenv install --list

#ruby 2.0.0 の再インストール
rbenv uninstall 2.0.0-p481
rbenv install -v 2.0.0-p481

#再読み込み
rbenv rehash

#インストールされているruby一覧を確認
rbenv versions

#標準で動作するRubyを設定
rbenv global 2.0.0-p481

#確認
ruby -v

#railsインストール
gem install bundler rails sqlite3

#インストール
gem install passenger

cd /usr/local/rbenv/versions/2.0.0-p481/bin/

./passenger-install-apache2-module
./passenger-install-apache2-module --snippet

#出力後以下のようなメッセージが出るのでメモ

#apache設定ファイル
vi /etc/httpd/conf.d/passnger.conf

----------------------------------------
LoadModule passenger_module /usr/local/rbenv/versions/2.0.0-p481/lib/ruby/gems/2.0.0/gems/passenger-4.0.44/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
  PassengerRoot /usr/local/rbenv/versions/2.0.0-p481/lib/ruby/gems/2.0.0/gems/passenger-4.0.44
  PassengerDefaultRuby /usr/local/rbenv/versions/2.0.0-p481/bin/ruby

  #PassengerLogLevel 1
  PassengerLogLevel 0
  RailsMaxPoolSize 2
  RailsPoolIdleTime 600

  PassengerEnabled off
</IfModule>
----------------------------------------

ネットでOpenSSLのセキュリティホールがまた出てました。
前のHeartbleedからたった二ヶ月なので、またかという感じ。
逆に言うとHeartbleedで影響が大きかったこともあり、OpenSSLの問題を細かく調査している人が多いということなんでしょうかね。

発見したのは日本企業のようだ。
http://lepidum.co.jp/news/2014-06-05/news-CCS-Injection/

CentOSでもすぐにアップデートが出ていたので、アップデートした。

GnuTLSもセキュリティアップデートが出ていたので一緒にアップデート。

yum upadte openssl gnutls

そうなると、コンパイル・インストールしているRubyもコンパイルし無しが必要になると。。。
(次の記事でRubyのアップデートことを書こうっと)

meteorでファイルのアップローダーを作ってみようと思って、サンプルコードを書いてみた。

方針としては、HTML5のFileAPIを使用して、ドラッグアンドドロップで手軽にファイルをあげられるようにする。

という訳で出来上がったのは以下の様なコード。

これはこれできちんと動くのだが、ファイルが100MBとかでかいとreader.onloadendのところでブラウザが死にます。
という訳で、他の方法も検討中。

===== client/uploder.html =====
<head>
  <title>uploder</title>
</head>

<body>
  {{> uploder}}
</body>

<template name="uploder">
  <h1>uploder</h1>
<p></p>
<div id="file-input">
<div class="input"></div>
<div class="out"></div>
</div>
</template>
=====

===== client/uploder.css =====
#file-input div.input {
padding: 60px;
border: solid 1px #333;
width: 300px;
height: 200px;
}
=====

===== client/client.coffee =====
Template.hello.events 
'dragenter #file-input div.input': (event, template) -> 
console.log "dragenter"
event.preventDefault();
,
'dragover #file-input div.input': (event, template) -> 
console.log "dragover"
event.preventDefault();
,
'drop #file-input div.input': (event, template) ->
event.preventDefault();
files = event.originalEvent.dataTransfer.files;
for file in files
reader = new FileReader();
reader.onerror = (e) -> 
console.log('error', e.target.error.name, e.target.error.message );
reader.onprogress = (e) -> 
console.log('onprogress', e.loaded, e.total);
reader.onloadend = (e) -> # onload onloadend 
console.log "onloadend e=" + e
Meteor.call('file_upload', file, e.target.result);
reader.onload = (e) ->
console.log "onload e=" + e
reader.readAsBinaryString(file);
=====

===== server/server.coffee =====
Meteor.startup ->
fs = Npm.require('fs');
Meteor.methods 
file_upload: (fileInfo, fileData) ->
console.log("received file " + fileInfo.name + " data-length: " + fileData.length);
fs.writeFileSync("test2.dat", fileData, 'binary');
=====


CentOS6.5にclamavをインストールして使ってみる

yum install clamd clamav


#clamdを動かしておく
service clamd start

#手動でアップデート
freshclam

#デーモンとして実行し、1日に24回更新のチェックを行う
freshclam -d -c 24

#スキャン
clamscan <file>

戻り値
0 ウイルスは検出されなかった
1 1つか複数のウイルスが検出された

/home/aaa/virus.txtt: Eicar-Test-Signature FOUND

----------- SCAN SUMMARY -----------
Known viruses: 3380360
Engine version: 0.98.1
Scanned directories: 0
Scanned files: 1
Infected files: 1
Data scanned: 0.00 MB
Data read: 0.00 MB (ratio 0.00:1)
Time: 4.826 sec (0 m 4 s)


[root@centosdev-minami ~]# clamscan ~aaa/workspace.tgz
/home/minami/workspace.tgz: OK

----------- SCAN SUMMARY -----------
Known viruses: 3380360
Engine version: 0.98.1
Scanned directories: 0
Scanned files: 1
Infected files: 0
Data scanned: 0.00 MB
Data read: 417.51 MB (ratio 0.00:1)
Time: 4.765 sec (0 m 4 s)


rubyのワンライナーで書いてみた

# ruby -e 'p(system("/usr/bin/clamscan /home/aaa/virus.txtt")); puts $?'
/home/aaa/virus.txtt: Eicar-Test-Signature FOUND
# ruby -e 'p(system("/usr/bin/clamscan /home/aaa/workspace.tgz")); puts $?'
/home/aaa/workspace.tgz: OK


Node.jsのワンライナーで叩いてみた

node -e 'var exec = require("child_process").exec; exec("/usr/bin/clamscan /home/aaa/virus.txtt", function(err, stdout, stderr){ console.log("err="+err); console.log(stdout)});'

node -e 'var exec = require("child_process").exec; exec("/usr/bin/clamscan /home/aaa/workspace.tgz", function(err, stdout, stderr){ console.log("err="+err); console.log(stdout)});'


なお、ウィルスファイルのテストは以下のファイルを使わせてもらっています。
http://downloadcenter.trendmicro.com/index.php?regs=jp&prodid=1424


こんな感じのnode(npm)でclamdと直接話すライブラリもあるようなので、今度試してみよう。
(ファイル化しない段階でウィルスチェックをしたいというのがあるので)

https://www.npmjs.org/package/clam-js

困ったことにXmingでeclipse画面を呼び出しているとサブウィンドウがだんだん巨大化していく。
しかし、そのサブウィンドウを画面上でサイズ変更ができない。
特に頻繁に使う検索ウィンドウは画面からはみ出すほど大きくなったりする。

というわけで、解決策を調べてみた。

eclipseを終了しておき、ワークスペース内を以下の様な感じで検索。

grep WIDTH workspace/.metadata/.plugins/*/*.xml
grep HEIGHT workspace/.metadata/.plugins/*/*.xml

出てきた結果のファイルを直接書き換える。


よく大きくなる検索窓は以下のとおり。

テキストエディタ内の検索窓
vi workspace/.metadata/.plugins/org.eclipse.ui.workbench.texteditor/dialog_settings.xml

findの検索窓
vi workspace/.metadata/.plugins/org.eclipse.search/dialog_settings.xml


以下の記事も見ておくと良いと思われる。
さくらVPS上でeclipseを動かしてローカルのWindowsで使う http://ameblo.jp/lastshogun13/entry-11827678755.html
さくらVPSのCentOSにXming経由で日本語変換環境を入れてみる http://ameblo.jp/lastshogun13/entry-11837215385.html

参考情報:
http://superuser.com/questions/300555/problem-with-resizing-subwindows-in-eclipse-xming-combination