「iptables」を含む日記 RSS

はてなキーワード: iptablesとは

2014-02-13

http://anond.hatelabo.jp/20140213211201

どうでもいいんだけど、それ以前になんで

デフォルトの設定でUDP任意IPアドレスに対して空いてるんだよ。

普通逆だろ。

公開サーバー場合、指定したIPだけを開けるものであって、なんで指定しているものだけ閉じるFW設定なんだよ。

 

NTPバグじゃなくてiptablesの設定誤りだろ。

NTPに閉じた話じゃなくてLinux全体としてUDPグローバルに対して全通過なんて設定が間違ってる。

 

公開NTPサーバーIPを偽装して総当りでDDoSをNTPサーバーに対してかけられてるっていう意味じゃないよね。

だとするとNTPポートは上位NTPに向けてしか開けないというiptablesの設定が先だとおもうんだが。

なんだろう、何を間違えたことを言ったんだろう。

2013-03-13

サーバ初心者Webサービスを公開するうえで考えたこと

だって自作Webサービス公開しました

http://www.radiosonde.net/

これまで他の人に用意してもらったサーバ自分プログラムを動かしたことはありましたが

自分自身で一からサーバをセットアップしたことはほとんどなかったので、いろいろとハマりました。

作業を進める上で困ったり考えたりしたことを書いていきます

ちなみにサーバ自体はさくらのクラウドOSにはCentOSを使用しているので、それ前提のお話になります

SSHファイヤーウォールの設定

最初サーバを起動してから速やかにSSHファイヤーウォールの設定を変更しました。

はてブなんかでも定期的に話題になっているのでおなじみですね。

SSHポートを22以外の別のポートに変更する

rootによるリモートログインを禁止する

パスワードログインを禁止し、鍵認証有効にする

・念のためrootパスワードを潰しておく

SSHHTTP(S)など、どうしても公開しなければならないポート以外は遮断する

SSHポートについてIP制限が行えるならば尚良い

さらっと書きましたが、設定をミスって自分自身もログインできなくなり、何度かOSの再インストールを繰り返しています

から気付いた事ですが、さくらのクラウドではクラウド管理画面のリモートスクリーン経由でローカルログインできるので

別にOSインストールしなくてもiptablesの設定を変更できたんですよね...

逆に言うといくらファイヤーウォールとSSHを設定しても管理画面にパスワードログイン環境が残ってしまうので

パスワード管理には引き続きしっかり気を使う必要がある。ということでもあります


Webアプリの動作が重い

httpd,php,mySQL,memcachedなど必要サービスインストール、設定し

作成したWebアプリプログラムを乗せて動かしてみました。が、動作が重いような...

開発環境ではさくさく動いていたのに、本番環境ではどのページ遷移ももっさりしています

abで計測してみたところ、開発環境のおよそ2分の1のスコアとなってしまいました。

開発環境が仮想2コアのメモリ1Gだったのに対し、本番環境が仮想1コアのメモリ2G

CPUの性能について半減しているのでそのせいかな、と思いつつ設定を見なおしていたところ

特に使っていないと思われたipv6を停止した途端にパフォーマンス改善されました。

ページ遷移に伴うもっさり感が解消され、abの計測結果も開発環境と遜色ない結果が出ています

デフォルト有効になっていたipv6の影響により余計な処理が走っていたのかもしれません。


サーバから送信したメール迷惑メールと判定される

パフォーマンス改善に喜んだのも束の間、会員登録などの処理でWebアプリからメールを送信したところ、Gmail宛のメールがことごとく迷惑メールと判定されるという事案が発生。

spfの設定を行なうメールの内容について吟味するなどの回避策を試してみましたが一向に改善されません。

試しにHotMailexciteメールアカウントに送信したところ、そちらではそもそもメールを受け付けてもらえずエラーコードが返って来る始末。

困り果てていたところ、エラーの内容からサーバIPがspamhousにスパム送信元として登録されていることが判明しました。

postfixホスト名の設定がデフォルトで「localhost.localdomain」などとなっており、それをそのまま使っていたためにGmailスパム送信元として通報してしまったようです。

設定を修正し、spamhousに解除依頼を提出。事なきを得ました。


KVSの変更

クラウドを利用すれば、サーバを停止することなく簡単な設定でスケールできるようになる。

と、自分勝手に思い込んでいたせいなのですが、消えては困るデータの一部をmemcachedに保存する実装を行なっていました。

実際のところさくらのクラウドではサーバを完全に停止しなければプラン変更を実施できないし

そもそもサーバが落ちたらどうするんだよ。ということで、急遽KVSを変更する必要に迫られました。

速度の低下が気にかかったため、いくつかの候補を実際に動かし

phpスクリプトから1万件のデータ読み書きを行うという形でmemcached比較してみたところ次のような結果に。

サービス1万件書込1万件読込
memcached 2.55秒 2.30秒
handlersocket 21.23 2.71秒
InnoDB20.23 5.10
kyotoTycoon 8.22秒 7.72秒

さすがに読み書きそれぞれmemcachedが最速ですが、読み出しについてはhandlersocketも負けていません。mySQLから普通にSELECTしてもmemcachedの2倍程度の時間しかからないという結果が意外でした。

しかしながら書き込みのほうではhandlersocketもmemcached10倍近くの時間がかかっており、少々速度的な影響が気になってきますmemcachedの倍のパフォーマンスを記録したという記事を見たことがあるので、設定、チューニングについて生かしきれていない部分があるのかもしれないとも思いましたが、知識が不足しているところで無理をすると問題が発生した時に対処できないと考え、候補から除外することとしました。

結局、今回の用途では読み込み処理より書き込み処理のほうが圧倒的に多いことも考慮し、kyotoTycoonを採用しました。実際の利用箇所に組み込んでabで計測してみたところ、だいたい30%程度のパフォーマンス低下にとどまっており、これなら許容範囲かと考えています

mySQLレプリケーションが止まる

実行系と参照系に分ける形でmySQLレプリケーションを行なっていたのですが、度々レプリケーションが停止する現象が発生しました。

一部のテーブルについて肥大する可能性が考えられたため、参照系に接続するプログラムで使わないテーブルをレプリケーションから除外していたのが原因です。

例えばtabelAをレプリケーションし、tableXをレプリケーションしないという設定にしたうえで

実行系でINSERT INTO `tableA` SELECT `value` FROM `tableX`などといったクエリを発行すると、参照系にtableXが無いためエラーが発生して止まってしまます

レプリケーションするテーブルを限定する場合プログラム側でも注意を払わないと危険です。当たり前ですが。

サーバ監視にmonitを使用

監視といえばcactinagios定番なのかもしれませんが、設定が複雑そうで尻込みし、monitを使用することにしました。

簡単な設定でloadaverageやメモリHDDの使用量をチェックできるほか

httpdmysqldなどといったサービスプロセス監視し、もし落ちていたら自動で起動してくれるので助かります

Webアプリの秘匿

パスワード保護を行うとしても、サイト全体の管理画面など自分しか使わないプログラムWeb晒しておきたくない。

というわけで、一部のWebアプリを秘匿する設定を行いました。

管理画面のWebアプリを9999番など閉じているポートに設置した上で、SSHを利用したトンネルを掘ります。といっても

ssh -t -L 9999:localhost:9999 user@xxx.xxx.xxx.xxx

上記のようなコマンド管理画面のWebアプリを置いたサーバログインするだけです。

ブラウザアドレス欄にhttp://localhost:9999/と打ち込めば、接続が開いている間のみアクセス可能になる感じですね。

サーバログインできる人でなければ実行できないことなので、気分的にある程度安心します。

SSHログバックアップ

自動ログバックアップを行いたいと考えたのですが、パスワード無しの鍵でログインして転送する形には抵抗がありました。

調べてみたところ、authorized_keysに公開鍵を記入する際の設定で、その鍵でできることを制限するという手段があるようでした。

具体的には、authorized_keysに

no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,command="some commands" ssh-rsa AAAAB3NzaC1yc2EAAA...

などとして公開鍵を追加しておくと、その鍵でログインした直後にcommand=""の部分で設定したコマンドを実行して接続を終了する挙動となり

接続フォワードもできなくなるため、パスワード無しでも鍵の流出に関するリスクを最低限に留めることができるというわけです。

commandの実行結果は標準出力から受け取ることができるので、例えばcommand=""の部分にファイルの内容を表示する処理を設定していたとすれば

ssh -i .ssh/no_password_key user@xxx.xxx.xxx.xxx > /path/to/file

などとしてログインの結果をファイルに書き込むだけで、簡単にファイル転送が実現できます


まとめ

他にも大小さまざまな問題に行きあたりましたが、忘れてしまったor書ききれないのでここまでとします。

たった1つのサイトを公開するにしても問題というのは尽きないものだと実感させられました。

今は基本的な情報だけでなく、ちょっと突っ込んだ内容でも検索で解決していけるので嬉しいですね。手がかりを残してくれた先達に感謝することしきりです。

現状ではひとまずの見切りを付けて公開していますが、より堅牢で負荷に強いサーバとなるよう、随時チューニングを行なっていこうと考えています

最後

作ったWebサービスについて少し書きます

サイト名は「Radiosonde」

個人サイトや小規模な商業サイトなどプロモーションにあまりお金をかけられないサイトを主な対象とした、無料で出稿できる広告ネットワークサービスです。

既存サービスで近いのは「あわせて読みたい」や「zenback」、各社提供RSS相互リンクサービスなどになるでしょうか。

広告としての体裁がある分、それらより若干積極的な性質になるのではと考えています

現時点ではサービス本体のプロモーションに苦心するという本末転倒のものの状況でありますが、もしよろしければ見ていただけると嬉しいです。

2012-08-31

iptables

パケットログを記録せずに破棄

これどんだけコピーされてんだよ

2012-05-01

これからプログラムを始めようと思ってる人へ

はじめに僕はプログラムが苦手です。

ほんとに苦手です。

やりたいことにどうしても必要から仕方なく組んでるだけで

誰かがやってくれるんであれば絶対自分プログラムしようなんて思いません。

寝る時もあーやってこうやったらこうなるとか考えてしまって睡眠不足になるし

自分で向いてないなとよく思います

そもそもプログラムに一番最初に触れたのは

9年くらい前のことです。

はじめてのプログラムperlでした。

仕事プログラムを使う必要があったので仕方なくparlの本を買ってきてシコシコやってました。

おなじみの「 hello world 」とかをモニターに表示させたりしました。

ものすごく簡単に理解してもらうためにこういう感じ書いてるんでしょうけど

ぶっちゃけ、本やネットの通り学習していくと大半の人が前半で飽きるか挫折します。

だって、全く興味がないことをしてるんですものね。

最後掲示板の作り方とか解説してる本とかありますけど

掲示板作ってどうするの?

一人で投稿して一人でレスするの?

とか思ってしまます

自分に興味のないことをやるのって絶対続かないし覚えないんですよね!

僕もperl学習したあとJavaを覚えようかなと本を買ってきて一通りやってみたんですけど

書かれてあるとおりに電卓とか作っても全く興味ないし作りたくもなかったので

全然頭に入ってきませんでした。

しかし、これがエロい物だったらどうでしょう

多分、すごい勢いでいろんなことを覚えていくと思います!(男ならw)

最近、そんなことをエロいWEBサービスを作りながら考えていました。

エロサービスを作っていると楽しいんです!

もうほんとに楽しくて、夢中になって自家発電・・いえ、プログラムしていました。

本屋に行ってプログラム関係の棚に

楽しいエロサイトの作り方」

「はじめてのエロサイト

「3日でできるエロ

エロで覚えるphp

phpアダルトサイトを作ろう」

「できるエロサイト

エロデータベースチューニング

こんな感じのタイトルの本があったら僕だったら間違いなく買います

そして、ものすごごいスピード学習しますw

そんなわけでこれからプログラムを始めようと思っている人はエロい物をプログラムで作ってみてはいかがでしょうか?

そして、僕が今回作ったエロサービスエロ動画検索ランキングサイト

http://adultmovie-clip.com/ を作るのに必要だった知識について書いてみますので参考にしてみて下さい。


【今回作った物はどんなWEBサービスか?】

アダルト動画キーワード検索できるようにして一覧表示させ

お気に入り動画ログインなしでブックマークできるようにする。

人気ブログランキングのように外部サイトを登録できるようにし逆アクセスランキング機能をつける。

必要な知識】

html

html学習

http://www.tohoho-web.com/wwwbeg.htm

今回はhtml5でやってみた。

http://www.html5-memo.com/

http://webdesignrecipes.com/semantic-html5-with-outline/

jQuery

http://higashizm.sakura.ne.jp/jquery_first/

http://webdesignrecipes.com/jquery-beginners-guide-for-web-design/

クリップブックマーク機能に利用

jquery.cookie.jsを使う。

http://helog.jp/javascript-2/jquery-javascript-2/1406/

動画IDcookieに保存しておく。

php

phpの基礎からできるからおすすめでかつデータベース勉強もできる

これを覚えればエロ検索サイト作れる。

http://php5.seesaa.net/

エロデータ作成スクレイピングエロ動画データの収集)により行う。

htmlSQLでさくっとエロデータを収集

http://bowz.info/1916

エロデータは色んな動画サイトから収集する。

例えば

http://example.com/?name=女優

みたいに女優名前を変更していくプログラムなんかを書いて

該当ページをhtmlSQLで取得する。

そこから必要データを抜き出す。

必要な最低限のデータ項目は

動画タイトル

動画URL

動画サムネイルURL


登録ユーザーログイン機能

http://tenderfeel.xsrv.jp/php/628/

画像アップロード

http://plog.pya.jp/program/php/lesson11/sample01.html

MySQL

phpのところで紹介したサイトと同じ人が作ってるっぽい。

非常に分かりやすいのでここで学習するとさらにいい。

http://mysqlweb.net/

google アナリティクス

ランキング部に利用、APIがあるのでリファラーサイトアクセス数カウント

http://kota.oue.me/php%E3%81%A7google-analytics-api%E3%82%92%E3%81%84%E3%81%98%E3%82%8B%E3%80%82/

https://developers.google.com/analytics/resources/articles/gdataCommonQueries?hl=ja

■負荷対策

APCインストール

http://www.doyouphp.jp/tips/tips_apc.shtml

mod_evasive

DOS対策

http://www.makizou.com/archives/1341

mod_expires

これがないとアダルトサイト死ねる。

http://www.ahref.org/tech/server/apacche/389.html

mysql クエリキャッシュの設定

http://thinkit.co.jp/free/article/0707/2/6/

サーバー関係

centos

VPSを借りてこのサイトの通りやればWEBサーバーが構築できる。

できればメモリは1Gほしい。

無修正じゃなければKAGOYAのVPSでいいんではないでしょうか。

外部に公開しないのであればローカルでシコシコして下さい。

http://centossrv.com/

レンタルサーバーを借りるのであればあまり必要じゃないか

SSH・・・クライアント(Windows)からLinuxサーバーリモート操作する

apache・・・WEBサーバーチューニング関係はググりまくって下さい。

mysql・・・データベース 全文検索を利用する場合、一旦mysqlは削除してsennaインストールインストールする順序に気をつける http://anond.hatelabo.jp/20110804021353

Tripwire・・・ファイル改竄検知システム導入

chkrootkit・・・rootkit検知ツール導入

Clam AntiVirus・・・アンチウィルスソフト導入

iptables・・・ファイアウォール構築

SSL・・・通信の暗号

全文検索

senna

http://qwik.jp/tritonn/

アフィリエイト広告

経験上、サーバー代にもならないと思うので今のところ掲載しません。

以上です。

今回このサービスを作ることになったきっかけは

3月くらいから心身ともに疲れきっていたのでリフレッシュする意味で作ってみました。

エロサービスは以前にも何度か作っていてその時は非常に楽しくてわくわくしながらプログラムしていたので

それを思い出して、じゃあ作ってみようという感じです。

エロいの作ってるとストレス解消になります

いろんな意味でw

初めてのプログラムエログラムってなかなかないと思うし

学生就職活動で、WEB系の会社面接した時なんかにプログラムでどんなの作ったことある?と聞かれて

エロサイト

とか言っちゃうと「こいつできる」と思われるかもしれませんので(あくまで僕がそう思うだけですw)

これからプログラムをやろうと思ってる人はエロサービス作りで覚えてみて下さいw

きっとあっという間にできるようになります

さて最後になりますがこんなの作ってみたんでよかったら利用してみて下さい。

アダルト動画クリップ

http://adultmovie-clip.com/

ではでは!よりエロライフを!

動画検索は前にも日記を書いてるので興味のある方は参考にどうぞ。

http://anond.hatelabo.jp/20110804021353

2012-03-18

WEBサイト発注してみた。

アニメゲームキャラクター情報をまとめてるサイトがないから作りたいなぁって

思ってたんだけどhtmlは初歩しかからないしプログラミングもできないので構想するだけで作れなかった。

ゼロから4ヶ月でWEBサービスをリリースした人の記事を見つけて「自分にもできるかな!」なんて思い挑戦してみたけど理解できず挫折・・・orz

WEBサービスを個人で作ってる人達が羨ましいです。

それでもWEBサイトを作りたかったので制作会社発注してみようと思い立った。

ただのキャラクターデータベースだけではつまらないのでコミュニティ要素なども付けて

ネットで見つけた制作会社見積もってもらうと下記のようになった。


合計1,483,125円


以前、SNSウェブカレ」のサイト制作費が1千万円で安く仕上がった(潰れたけど・・・)という話があったか

なんとなく3~400万くらいかかるんじゃないかなと不安だったんだけど予想より安い見積もりだったので、

このくらいの金額ならなんとか出せる!ということで制作してもらうことにしました。

本当は何社かに見積もってもらって比較しようと思ったんだけど面倒だったのでそのまま制作をお願いすることにした。

最初はもう少し高かったけど機能の簡略化とオープンソースライブラリを使用してもらう事で費用を抑えてもらった。)

去年の10月の頭くらいから打ち合わせを始めて第1フェーズワイヤーフレーム作成仕様策定をして第2フェーズhtmlシステム開発

移ったのは中旬だったかな?その段階で前金で4割の580,650円を支払いました。

制作会社には3回くらい打ち合せに行って、あとはメールでやり取りしていました。

当初は12月中にリリースを予定してたんだけど、なんだかんだで伸びてあらかた出来上がったのが2月中旬くらい。

見積もりがちょっと甘かったんじゃないかなぁって思うw

ちなみに僕はヒッキー(どれくらいヒッキーかというと外出は3日に1回くらい)なので制作してもらっている間は

家でずっとサイトに必要なアニメデータを収集していました。

↓作ったサイト

http://neoapo.com/


以下、サイト設計担当してくれた人の製作記。

サーバ設定

サーバさくらVPS 8Gを使用。CentOS5の64bit

設定した項目は以下のとおり

HDDが3つあって、普通に/var/wwwコンテンツを入れていくとHDDが溢れそうだったので、容量の大きいものを使うように工夫したりなど。

メモリもそこそこ積んであるサーバなので、mysqlphpapcに多めにメモリを割り当てる設定をした。

データベース

本当はmyISMやInnoDBエンジンでLIKE "%word%"のようなクエリーを投げて十分なパフォーマンスが出ればいいんですけどね。

それはムリなので、全文検索エンジンとしてgroongaを使用。

groongaを使用するために先にインストールしたのはこんな感じ

この時点でいざ、groonga!と思ってgroongaをインストールしようとすると競合を起こして入らない。

epel、remiレポジトリからインストールしてあったmysqlと衝突してたのでyum remove "mysql*"で

一旦mysqlを消して、groongaレポジトリからmysqlとgroongaをインストール

するとgroongaは入ったものの、今度はphpから使おうとしてもphp-mysqlパッケージが入らない。

あちらを立てればこちらが立たぬ状態で本当にこまった。

どうしようもないので、やりたくないけどyum-downloadonlyを使ってパッケージに含まれる設定やら、soファイルなどを直接とってきて入れた。

mysql.so、mysqli.so、pdo_mysql.soを/usr/lib64/php/modules/にコピーしたり、設定をコピーしたり、少しずついじりながら、なんとか動いてくれた。

状態としてはmysqlとgroongaはgroongaレポジトリからphpと本来php-mysqlパッケージインストールされるmysql.soは手動で置いたことになる。

シェルから直接mysqlログインするときはgroongaレポジトリのやつを、phpからmysqlを呼ぶときは手動で置いたmysql.soを使うことになっている。

ちょっと心境的にしんどい。別の方法があったかもしれないけど、調べても分からず結局1日くらいかかった。

アクセスカウンタ

アクセスは、サイト全体(トータル)、サイト全体(当日分)、各コンテンツ日別、各コンテンツ週間、各コンテンツトータルのアクセスをとるようにしています

高速だとうわさのredisアクセス回数を残しています

検討した候補はmemcaced、apcmysqlredis、fileあたりなんですが、

memcacheはサーバリスタートするとデータが消える。

apcapacheリスタートするとデータが消える。

fileは候補にあがったものの、メンドウ、、どうせなら楽な既製品がいい。と思って候補からしました。

残るはmysqlredisだけど、redisが高速って聞いていたのでredisにしてみました。

最初全部redisに入れて、集計した結果をmysqlに入れるつもりでしたが、週間ランキングなどはINSERT INTO .. DUPLICATE ONを使って、

アクセスした週の月曜日00:00:00のタイムスタンプコンテンツIDキーにしたレコードを作ればそのまま週間ランキングになるなー。と思ってmysqlを使っています

コンテンツのトータルアクセス数コンテンツレコードpvという項目をつくってUPDATE table SET pv=pv+1 WHERE id = ? のようにしました。

最初難しく考えていたけど、こうすることによって大分楽になったなーといった感じ。

まとめ

全文検索エンジンや対話検索、ここにこのリンクがあればなぁ。。という所に何とかしてリンクを作るのが本当に大変だった。

使い勝手を良くするために、ここにこの機能をなど、さくっと思いつくのは簡単でもそれを実現するために、あーでもない、こーでもないと

DBプログラムとにらめっこしながら「あ!こうすればできる!でもそうすると今度はこっちが・・・」みたいなのがあったりでとても大変だった。

そんなに機能がないような感じがしても、このサイトだけでテーブルが20個あって、途中本当に死にそうだった。

2011-08-04

独学のプログラムエロ動画検索作ってみた

【お知らせ】2011/09/07

新しいエロWEBサービス作りました

http://d.hatena.ne.jp/uniqueweb/20110906/1315285545

プログラムは全く得意じゃないけれど最近よく見かけるようになったエロ動画検索自分でも作ってみたくて頑張ってみました。

近年、インターネットの普及によりエロ動画が自宅で簡単に見れるという素晴らしい時代になりました。

自分が若い頃はインターネットなんてものはなくエロビデオが主流でドキドキしながらレンタルビデオ屋に行き、可愛い女の子レジにいない隙を見計らってお兄さんにパッケージを伏せて空箱を渡しビデオを借りたものでした。

お兄さんにビデオ空箱を渡そうとした時に可愛い子がレジに戻ってきて焦って渡すのをやめてものすごく変な動きをしながらエロビコーナーに引き返していくなんてことも多々ありましたw

僕のお気に入りといえば「白石ひとみ」や「あいだもも」といった女優でよく借りてました。エロビを借りるということがものすごく恥ずかしい時代?年頃?でカモフラージュ普通ビデオと一緒に借りるということもしていました。それはそれは大変な思いでオナニーしてたんです

しかも、ビデオデッキ自体が貴重な時代でリビングに一台しかないのが当たり前でした。

深夜家族が寝静まってからヘッドフォンビデオを抱えリビングに行き暗がりの中でヘッドフォンテレビ差し込んでビデオ再生ボタンを期待に胸をふくらませながら押したものです。いいシーンを何回も見るためにビデオを巻き戻すんですが、ビデオを巻き戻すガチャガチャンという機械音で家族が起きてこないか?とかそれはそれはドキドキしながら見てました。一仕事終えたあとヘッドフォンを外したらジャックが外れていて大音量で喘ぎ声が響き渡っていたなんてこともありました。誰も起きてこなかったのは優しさなんでしょうか?w

さて、大分前置きが長くなりましたがエロというものものすごい技術発展させるものだと思いますエロのおかげで日本ビデオは普及しエロのおかげで日本インターネットものすごく普及したと言っていいと思います自分エロを通して技術の発展に貢献し自分自身のスキルアップになれば。という高い志を持ってこのサイト制作しました。決して自らのオナニーライフの充実と性癖を充たすため作ったわけではありません・・・

※2011.08.07 利用中のサーバーに障害が発生しているようで現在サーバー接続できない状態となっています・・・

※2011.08.07 23:53 復帰した模様です

サイト名:ヌキネーター

サイト名の由来は抜きネタからきています。抜きネーター、ヌキネーターという感じです

エロサイト制作工程日記にしてみたんで良かったら読んで下さい。そしてこのサイトを使って夜いろいろと励んでくれたら嬉しいです

では制作日記を書いていきたいと思います

サーバー選び

まず前提条件としてお金ほとんどかけたくない。アダルトサイトであるということから

サーバー選びからはいりました。

月の予算は5000円以内で考えていたのでけっこう探すのが大変でした。

日本アダルトサイトを許可している所はかなり限られていてさらにやりたいことができるのは

専用サーバーVPSしかないのでそうなると専用サーバー予算オーバーなので

VPSで探すことになり検索しまくってはじめに見つけたVPSはKAGOYAのVPSだったのですがβ版で募集を締め切っていて泣く泣く諦めました。

KAGOYAはかなり評判がいいみたいなので使ってみたかった。

次に見つけたのが○○○VPS海外サーバー日本語サポートがあり転送量の制限なしディスク容量100G

月1300円程度で借りれるということで初期設定費用に5000円程度かかりましたが借りてみました。

結果、ここは最悪でした。

  • 通信が頻繁に切れる
  • 激重
  • 借りて一ヶ月もしないうちにサービス継続が困難になりそうなのでIPが変わるとかメールがくる
  • まりに通信環境が悪すぎるとメールすると環境調査に協力してくれとメールがくる
  • 時間をかけて沢山の項目を調べて返信するも全く返答がない。

まりの酷さに1ヶ月で解約。

よく調べてみたら評判がものすごく悪い某VPS再販らしいです

お金時間をドブに捨てました・・・

もう失敗したくないと思い今度は比較的有名な海外サーバーLINODE

日本語サポートはないけれど抜群のサポートです

iptablesの設定でどうしてもうまくいかなくて拙い英語メールしてみたら

10分しないうちに返信がきました!

メールに書かれているとおりにコマンド入力したらあっさり解決。

素晴らしい!はじめからLINODEにすればよかった。

担当ブライアンはなぜか分からないけどとてもフレンドリーで親切に感じましたw

サーバー設定

LINODEは複数のディストリビューションから好きなものを選択できるので

とりあえず、64bit版を選択。

サーバー設定はほんとに面倒ですね。

一番面倒だけど重要だということで

SSH

Tripwire

chkrootkit

Clam AntiVirus

iptables

Apache

SSL

その他各種監視ツールの導入をしました。

ほんとに面倒でした。

データベース

はじめはmysqlストレージエンジンgroongaを使おうと思ったのです

初めに借りた最悪なVPSOSが32bit版だったのでgroongaがのソースが見つからずなぜかと思っていたら

どこかで見つけた記事で32bit版ではgroongaの性能を発揮しきれないということで32bit版の提供をやめてしまったらしいと書いてたので

じゃあ、sennaにするかということで最悪VPSsennaインストール

その後LINODEに変更したのでOSに64bit版を選択し念願のgroongaをインストール

しかし、調べてみると

などが理由で、結局sennaに戻して2度手間に・・・

プログラムもそれに合わせてその都度書き換えたので2度手間どころか3度手間4度手間でした・・・

senna導入はrpmでさくっといけるので簡単です

依存関係で少しはまりました。

まず

# rpm -qa | grep -i mysql

mysqlインストールされてたら削除

perl-DBIが必要なのでインストール

# yum install perl-DBI

そして下記の順番でインストール

rpm -ivh mecab-0.98-tritonn.1.0.12a.x86_64.rpm

rpm -ivh mecab-ipadic-2.7.0.20070801-tritonn.1.0.12a.x86_64.rpm

rpm -ivh senna-1.1.4-tritonn.1.0.12a.x86_64.rpm

rpm -ivh MySQL-shared-5.0.87-tritonn.1.0.12a.x86_64.rpm

rpm -ivh MySQL-client-5.0.87-tritonn.1.0.12a.x86_64.rpm

rpm -ivh MySQL-server-5.0.87-tritonn.1.0.12a.x86_64.rpm

rpm -ivh MySQL-devel-5.0.87-tritonn.1.0.12a.x86_64.rpm

my.cnfの設定をして終了

で肝心の全文検索ですデータ件数が5万件程度で少ないせいなのか、あいまい検索と比べてそれほど速さを実感できなかったです・・・

でもきっとすごく速くなったはず!

ちなみに「麻美ゆま おっぱい」で検索した場合、0.01 secで結果が返ってきました。

動画データ作成

さて、動画データ作成ですがいくつかのエロサイト制作記事でもあるようにスクレイピングということをします。

スクレイピングとはWEBサイトから特定の情報だけを取得することでネット上にあるサイトクロールして必要なデータだけを拾ってデータを作るといった感じでしょうか。

スクレイピングプログラム自体は以前にTidy関数を使って為替データ10分おきに取得するような物を作ったことがあったのでそれほど時間はかからいかなと思ったのですがけっこう時間かかりました。

スクレイピングにはTidyhtmlSQL、それにPHP Simple HTML DOM Parserを使いました。

下記のサイトを参考にしました。

phpによるスクレイピング処理入門

SQL みたいな文法で HTML を抽出する PHP のライブラリ

htmlSQLよりアツい!?jQueryみたいにセレクタでHTMLをparse(解析)する「PHP Simple HTML DOM Parser」

つの中で抜群に使えるのはPHP Simple HTML DOM Parserだったんです

ループ処理させるとメモリがすごいことになって今回のようなスクレイピングに向いてないみたいで

結局、htmlSQLTidyの両方を使ってスクレイピングしました。

両方ともPHP Simple HTML DOM Parserに比べるとうまくデータの取得ができないことが多く残念な感じなんですが他に選択肢がないので・・・

使える順に並べると

PHP Simple HTML DOM Parser

htmlSQL

Tidy

といった感じかもしれません。

おおまかにデータを取得して正規表現で特定データを抜き出しました。

広告との連携

広告にはDMMアフィリエイトを利用しています

http://affiliate.dmm.com/link.html

利用可能な物はパッケージ画像、サンプル画像(縮小)と書かれていたのでそれに従い画像を利用。

注記に※ユーザーレビュー引用いただけません。とだけ書かれているのでそれ以外は引用ありと判断して説明文とタイトルなどを利用

女優データジャンルデータDVDデータ、を紐付けたデータベース作成検索ワードに応じて検索結果に関連する商品を表示させるようにしました。

現状、売り上げ0で意味があるのか分かりませんけどw

負荷対策とか転送量とかDOS攻撃対策とか

エロサイトということで多少はチューニングとか設定とかしないとまずいかもと思い色々調べて設定しました。

やったこと

KeepAlive On

MaxKeepAliveRequests 60

KeepAliveTimeout 3

<IfModule prefork.c>
StartServers       7
MinSpareServers    5
MaxSpareServers   10
ServerLimit       30
MaxClients        30
MaxRequestsPerChild  4000
</IfModule>

様子見ということで2日間で設定してみました。

query_cache_limit=1M

query_cache_min_res_unit=4k

query_cache_size=16M

query_cache_type=1

とりあえずこんなところを設定してみましたが、爆発的なアクセスがあるわけでもないので有効なのか今のところ分かりません(-_-;)

Apache Benchでテストはしてみましたけど問題はない感じですが実際にチューニングができているか分かりません。

サイトデザイン

プログラマーとして有名なゆうすけさんのサイトgoogleを参考にしました。

シンプルで使いやすいようにしようと思いこのデザインしました。

3カラム中央可変となっています

クロスブラウザIE7、firefox3、chromeで行いました。

可変ものって作ったことなかったんですがけっこう面倒なんですね。

サイト機能

ブックマーク機能とメニューの折りたたみ機能検索結果の表示方法切替を作りました

まず、ブックマーク機能ですログインなしで気に入った動画ブックマークできるようにしました。

ブックマークに追加した動画ブックマークページで確認できるようにしました。

cookie機能を利用したらいけると思い色々調べてjquery.cookie.jsを利用。

保存したクッキー情報を呼び出してphpに渡して処理し指定要素にブックマーク一覧をloadメソッドで表示させるという感じです

$(function(){
$("#youso").load("xxx.php");
});

メニューの折りたたみ機能は人気AV女優AV女優別、人気タグなどをそのまま表示させるとずらっと長くなって邪魔だったのでつけました。

これには同じくjquery.cookie.jsを利用しました。

参考サイトhttp://blog.caraldo.net/2009/03/newjqqookiemenu.php

検索結果の表示方法切替にはZoomer Galleryを利用しました。

参考URLhttp://phpjavascriptroom.com/?t=ajax&p=jquery_plugin_zoom#a_zoomergallery

検索結果ページで表示される

[ここの画像]

××× の検索結果

44件中 1~10件目を表示

ここの画像の部分をクリックするとgoogleイメージ検索みたいに一覧でイメージ表示できるようにしてみました。

動画表示ページ

基本的に動画の埋め込みを許可しているサイトのみプレイヤー表示をしそれ以外は画像を表示し動画データリンクするようにしました。

埋め込み部分はあらかじめそれぞれのサイト対応したプレーヤー部分のコード記述しVIDEOIDの部分に置き換えるような形にしました。

XVIDEOSを例にすると

XVIDEOS場合かならず動画urlhttp://www.xvideos.com/videoXXXXXX/のようになりますのでXXXXXXの部分を

VIDEOID部分に置き換えるようにプログラムを組みました、

埋め込み部のソース

>||<object width="510" height="400" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" ><param name="quality" value="high" /><param name="bgcolor" value="#000000" /><param name="allowScriptAccess" value="always" /><param name="movie" value="http://static.xvideos.com/swf/flv_player_site_v4.swf" /><param name="allowFullScreen" value="true" /><param name="flashvars" value="id_video=VIDEOID" /><embed src="http://static.xvideos.com/swf/flv_player_site_v4.swf" allowscriptaccess="always" width="510" height="400" menu="false" quality="high" bgcolor="#000000" allowfullscreen="true" flashvars="id_video=VIDEOID" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></object>
||<

その他の動画サイトURLの一部分のデータを使っているので同様の処理をしました。

まとめ

実際の作業は2、3週間ですが色々調べる時間が多くて制作に2ヶ月くらいかかりました。

自分エロ動画検索を作ってみて有名プログラマーさん達がいかに優秀なのか思い知らされました。

皆さん思いついて数日で作ってしまうのでびっくりです

全くWEBの知識がない人で4、5ヶ月ですごいの作っちゃう人とかもいるみたいですし世の中広いな~と思います

しかし、エロサイト作りで勉強になりますね~

大分、色んな知識を得ることができました。

これからプラグラム勉強しようと思う人はぜひエロサイトから入ってみて下さい。

きっと楽しいですよ!

そんなこんなで?頑張って作ってみたエロ動画検索、良かったら使ってみて下さい。

これで少しは技術の発展に役立てたでしょうか?w

アダルト動画検索ヌキネーター

P.S エロサイトを作っていてはじめは楽しくて興奮しながら作ってたのです最後の方はエロい物を見ても全く反応しなくなりましたw

  不能ではないんですけど・・・現在も性欲が著しく減退しております・・・

  そしてスーパーpre記法がうまういかないのはなぜ?はてな匿名ダイアリー投稿全然からない・・・

  そしてそしてプログラマーさんとかデザイナーさんとかエロい人とかお気軽にお声をおかけ下さい。

【お知らせ】2011/09/07

新しいエロWEBサービス作りました

http://d.hatena.ne.jp/uniqueweb/20110906/1315285545

2010-10-27

さくらVPSを借りたら絶対にやるべき11のタスク

いいか素人webサーバー管理者ども耳かっぽじって俺の言葉をよく聞け。

お前らの持つサーバーをこの汚れきった世界に放つのならば管理者としてやるべき仕事がある。

全ての人はwebサーバーを持つ権利があるがそれにともないそのサーバーをsecureにする義務が発生するという事を肝に命じろ。生半可な気持ちで管理してたらタマとられっぞこの世界は。

ここでは具体的なやり方は記述しない。タスクだけを記述する。詳細はググるなり人に聞くなりしろ。

 

1.root以外のユーザーを作ること

2.rootパスワードを初期設定から変える

3.SSHrootログインできないようにする

4.SSHポートを22から変更する

5.iptablesを適切に設定して不要なポートは閉じる またSSHには国内からのみアクセス可とする

6.useradd testなどを活用する事

7.sendmailが動いていたら止める メールサーバー寝言スキルが身についてから言え

8.一日一回 cat /var/log/secure まず愚直にlogを眺める事 意味がわからなくてもlogに毎日触れる事

9.ペニーオークションで安いPSPなどを落札して息抜きすること 管理者にも急速が必要 akiyanがいい事を書いてる

http://www.akiyan.com/blog/archives/2010/09/penny-auction.html

10.FTPから卒業する事 面倒でもSFTPを使う事

11.rmには常に-rfオプションを付ける事 不必要なものは捨てまくる事が整理整頓への近道

2010-04-03

簡単で完璧な阻止率100%のスパム対策の実装について

ttp://wota.jp/ac/?date=20100401#p01

ということで、ユーザが、トップページコンテンツに「おまじない」を入れるだけで

中国の全ホスト定義することなく

自分iptables もよごすことなく

保守コストも0で常に最新データになり

経路のルータレベルパケットカット

という夢のようなシステムを構築したので、紹介します。

私のアイディアに賛同し、国を挙げてその実現・保守運用に尽力してくれている中国政府に深く感謝したい。

2009-09-03

http://anond.hatelabo.jp/20090816230506

今度からはiptablesで弾くようにしたから、http以外でもアクセスできなくしたぞ!

206.135.108.5

190.196.23.170

208.94.173.168

213.194.149.20

86.121.126.226

193.134.218.28

193.135.56.227

72.249.191.226

次は、この辺を試すか。

mod_dosdetector

mod_evasive

http://www.cafechantant.com/trac/wiki/apache_module_5_dos_prevention

それとも、特定のURLの組み合わせにアクセスしてきたIPiptablesブラックリストに入れるスクリプトでも書くか。

 
アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん