MOFU MOFU

技術的なことから、趣味の分野までいろいろメモ程度に書いていきます

UbuntuでUSBメモリをターミナルから参照する方法

Macの場合/Volumes以下にマウントされているものがあったので、覚えていたのですが、
Ubuntuでのやり方がわからない。

調べてみたところ、
/media/user/usb

userのところはユーザー名、usbのところにはusbメモリの名前が入ります。

これで、ターミナルからいじれる!

OSX MavericksにCommand Line Developer Toolsをインストールする方法

(最新版のXcodeインストール済み)
macportsのmavericks版をインストールして、

sudo port install ~~

ってやってたんですが、
その際に、wariningがでてCommand Line Developer Toolsが入ってないから、ビルドできないかもみたいなメッセージがでていました。(キャプチャしてなかったので、ちゃんとしたメッセージは覚えていないんですが)
そのときは、ちゃんとビルドできたので、問題ないのかなと思ったのですが、やはり気持ち悪いので、
確認!

MavericksになってからXcodeをインストールすると、Preferences->Locationsのところに、Command Line Toolsって書いてあるところがあり、パスも表示されているので問題ないのかなと思っていました。(Lionとか、Mountain Lionのときは、Preferences->Downloadsからダウンロードできてたんでインストールしたぜって実感があった) 実際gccとか、g++などのコンパイラも使える。

Command Line ToolsとwarningででたCommand Line Developer Toolsは違うのか!?
とりあえず、メッセージに従って、

$ xcode-select --install

これで、あとはインストールするだけ。
このあと、sudo port install ~
をやってみましたが、warningは出ませんでした。

Command Line ToolsとCommand Line Developer Toolsは違うんですかね?
わからん

サーバーへの攻撃ログ

環境はCent OS
友人と運用しているサーバーのログを見てみると、
(*の部分は省略しています)

**** unix_chkpwd[****]: password check failed for user (root)
**** sshd[****]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=****  user=root
**** sshd[****]: Failed password for root from **** port **** ssh2
**** unix_chkpwd[****]: password check failed for user (root)
**** sshd[19207]: Failed password for root from **** port **** ssh2
**** unix_chkpwd[****]: password check failed for user (root)
**** sshd[19207]: Failed password for root from **** port **** ssh2
**** unix_chkpwd[****]: password check failed for user (root)
**** sshd[19207]: Failed password for root from **** port **** ssh2
**** unix_chkpwd[****]: password check failed for user (root)
**** sshd[19207]: Failed password for root from **** port **** ssh2


とまあrootでログイン仕様としているログが大量にあるわけです。
うーん、IPを調べると全て外国からでした。

apacheのログにも

******* - - [***2014:**** +0900] "CONNECT *****.:25 HTTP/1.0" 405 304 "-" "-"

これは、どうやら外部のメールサーバーへの中継を試みているようです。
最近この攻撃が多いです。ちゃんと405を返しているので大丈夫でしょう。

他にも、

**** - - [****] "POST /cgi-bin/php4?*********
 HTTP/1.1" 404 274 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)"

これは、apache脆弱性を狙っているっぽいです。Apache Magicaっていうらしい。

更に大量のログが。。。。

**** - - [*****] "POST /wordpress//wp-login.php HTTP/1.1" 200 4156 "-" "Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:1.9.0.15) Gecko/****

こんなのがたくさん
これは単純に、wordpressの管理画面にアクセスしようとしているのかな。
まあ、秒単位で大量のアクセスがあったので狙いは明らかです。
wordpressは使っていなかったため、セキュリティ上不要なものは削除した方がいいと判断し、wordpressをアンインストール、mysqlのデータベースもドロップしました。

他にも、エンコードされていて、解析しづらくなっている異常なリクエストや、XSSでも狙っているのかみたいなログもありました。
bingとかgoogleなどの検索エンジンのボットからのアクセスもログに残っていて、これはちょっと嬉しかった。

でもサーバーの管理は大変です。。。
定期的にアップデート、ログのチェック、etc...

セキュリティの勉強にもなるので、頑張ります。。。。。

ログを見る限り、突破されてないものの、あまりよろしくないので、fail2banというログを監視してくれるツールをインストールしました。
ちなみに、rootログインは基本的に禁止しておいたほうがいいです。

fail2banの入れ方はそのうち書くかも。ほかもいろいろ

HTTP Adaptive Streamingについて (MPEG DASHについて)

突然ですが、MPEG DASHってご存知ですか?
MPEG DASHは2012年にISOによって標準化された、次世代のストリーミングの規格です。

最近、論文を読んでて、なかなか普及が進まない、というか知名度も低いんじゃない?って感じてます。
いや、徐々に進んでるのかな。その点はわかりませんが、知人の間では知名度が低いです。


そもそも、これまでのストリーミングの方式として、RTPとかUDPを用いたストリーミング配信が一般的でした。
その理由としては、TCPの再送遅延や、congestion controlなどがあり、制御が難しい事が挙げられていました。
しかしながら、現在ではHTTP(over TCP)ベースのストリーミングでも、十分対応できることが明らかになっています。


そもそも、Adaptive Streamingって何?って人向けに簡単に説明すると、
変化するネットワークに対応して、動画の再生品質を変え、ユーザーが快適に再生を続けることができるようにするストリーミングです。そのため、サーバーサイドでは、複数のビットレートのフラグメント(ビデオとオーディオそれぞれ数秒に区切ったもの)を用意しています。それを、クライアントが状況に応じて要求する形式です。


いろいろな規格があり、それぞれスループットを予測するアルゴリズムや、バッファー、どのようにリクエストを送るのかなど違いもあり、特徴が出たりします。また、クライアント側のCPUの状況を把握したり、解像度を把握しそれ以上のクオリティのものを要求しないようにしたりするものもあります。

有名なもので言えば、Microsoft Smooth Streaming, Apple HTTP Live Streaming, Adobe HTTP Dynamic Streamingなどがあります。
Smooth Streamingは、Microsoft Silverlightに実装されているので気付かずに使っていることもあるかもしれません。



ストリーミングの規格がたくさんあり、それぞれ対応するものも違ったりするので複雑。ということで、MPEG-DASHを標準化したわけです。MPEG-DASHのメンバーには、結構有名な企業が入っています。Adobe, Microsoft, Cisco, Dolby, Nokia, NETFLIX, SONY, Ustreamなど


MPEG-DASHでは、ストリーミングに関する様々な機能が標準化されています。
例えばDRM(デジタル著作権管理)とか広告挿入とか、セグメントやリクエストに関するフォーマットなど。
さらに、一般的な、HTTPサーバーやメディアサーバーで動作するため、MPEG-DASHのために、インフラを導入する必要がありません。


最近では、IIJがライブ配信にMPEG-DASHを使っていました。
そのうち普及してくるのかなと思っていますが、個人的に感じているのが、ストリーミングはともかく、ネットワークに興味がある人が少ない気がします。おもしろいのに。。。ひょっとして、私の周りだけなのかな?

長々と書いていたら文字だらけになってしまいました。すいません

Dash-IF
http://dashif.org/

Microsoft Smooth Streaming
http://www.iis.net/media/experiencesmoothstreaming

javascriptでランダムを使った時のメモ web上で画像のランダム表示

javascriptなんて余り使う機会もないので、ランダムの使い方もわからん
とあるwebサイトで画像をランダムに表示したかったので、書いてみました。

<script language="JavaScript">
img = new Array();
           img[0] = "img0.png";
           img[1] = "img1.png";
           img[2] = "img2.png";
           img[3] = "img3.png";
           img[4] = "img4.png";
           img[5] = "img5.png";
           img[6] = "img6.png";
           img[7] = "img7.png";
           img[8] = "img8.png";
           n = Math.floor(Math.random()*img.length);
           document.write("<a href='"+img[n]+"'>"+"<img src='"+img[n]+"' border='0'>"+ "</a>");
</script>

このimg[i]が画像の名前で0~そのサイズ(この場合8)までランダムな数字を発生させています。
配列のその番号に入ってる文字列を使って表示させています。
jQueryの関数内で使ったため、document.writeの部分は後で一般的な形に変えているので、動かなかったら、どこかミスってます。。。
てか、ファイル名に規則性があるんならループで書けばいいじゃんとかあとから思いました。

LaTeXをmacportsを使ってインストール

macports を使っているmacのバージョンのpkgをダウンロードしてインストール

その後、ターミナルから

sudo port install texlive +full

1時間程かかります
which platex
でパスが表示されればインストールできてます。