「技術系」カテゴリーアーカイブ

ファイアウォール(さくらのVPS設定2)

サーバにファイアウォールを設定します。内容はさくらのサポート情報を参考に、というかほぼそのまま書いてます。

まずは攻撃対策のルールを記述します。

# iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
# iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
# iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP

localhostとpingを許可します。

# iptables -A INPUT -i lo -j ACCEPT
# iptables -A INPUT -p icmp -j ACCEPT

必要なポートを開放します。ポート番号はそれぞれhttp(80)、https(443)、pop3(110)、smtp(25)、submission(587)、ssh(22)です。

# iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
# iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
# iptables -A INPUT -p tcp -m tcp --dport 110 -j ACCEPT
# iptables -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
# iptables -A INPUT -p tcp -m tcp --dport 587 -j ACCEPT
# iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT

許可済みのパケットのみ通します。

# iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# iptables -P INPUT DROP
# iptables -P OUTPUT ACCEPT

記述したルールをファイルに保存します。再起動はしなくても反映されるっぽい?

# service iptables save

一応再起動
# service iptables restart

ちなみにルールを修正したい場合は以下のファイルを直接いじります。最初からここに記述していっても良いんだろうけど。

# vi /etc/sysconfig/iptables

設定の確認はこちら。

# iptables -L

さくらのVPSお試し期間中は、ここの設定に関係なくメール送れないけどね。

別サーバでの話だけど、imap許可してたら物凄い勢いでアクセスされてサーバ会社から警告が来て驚いた思い出。即閉じた。

スペックとユーザとパッケージ管理(さくらのVPS設定1)

今のサーバを借りてから3年経つので、乗り換えのためにさくらのVPS 2Gを借りました。スペックは以下のように変わっています。

プランさくらのVPS 512さくらのVPS 2G
CPU(仮想)Core2 Duo (2.4GHz) 2コアWestmere (2.4GHz) 3コア
メモリ1GB2GB
HDD20GB200GB
OSCentOS 5.5CentOS 6.5
リージョン大阪石狩

毎回サーバの設定に苦労するので、手順を書き出してみることにしました。いつもはローカルにメモしてるんだけどね。

sshの設定

まずは仮登録後に送られてくるメールからVPSコントロールパネルに入り、サーバを起動させます。次にリモートコンソールからログインしてrootのパスワードを変更します。

# passwd

rootで直接ログインできるのは危険なので、作業用アカウントを作成します。

ユーザーhoge作成
# useradd hoge

hogeのパスワード設定
# passwd hoge

hogeをwheelグループに入れる
# usermod -G wheel hoge

作業用アカウント(wheelグループ)以外ではroot権限を使えないように制限を付けます。

sudoできるユーザ
# visudo

この行を有効化
%wheel ALL=(ALL) ALL
suできるユーザ
# vi /etc/pam.d/su

この行を有効化
auth required /lib/security/$ISA/pam_wheel.so use_uid

rootで直接ログインできないようにします。

# vi /etc/ssh/sshd_config

yesをnoに変更する
PermitRootLogin no

再起動
# service sshd restart

最後にTCP wrapperでsshにログインできるホストを制限します。

拒否リスト
# vi /etc/hosts.deny

以下を追加
sshd : all
許可リスト
# vi /etc/hosts.allow

以下を追加
sshd : localhost
sshd : www????.sakura.ne.jp
sshd : .jp

これでサーバ自身と.jp以外の人はアクセスできなくなりました。ちゃんと自分のプロバイダに合致したホスト名を指定しないと繋がらなくなります。

ほんとは公開鍵を使ったほうが良いんだけどね。

ついでに日本語化。

# vi /etc/sysconfig/i18n

LANG="C"
を
LANG="ja_JP.UTF-8"
に変更

yumでRemiリポジトリを使う

標準のyumだと古いパッケージばかりなので、比較的新しいのがインストールできるRemiリポジトリを使用します。

CentOS6用
# wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
# rpm -Uvh remi-release-6.rpm

Remiを指定してインストールする場合には以下のように記述します。

# yum --enablerepo=remi install (パッケージ名)

アップデートは新旧入り混じると面倒なので、Remiで入れたのは個別でやった方が良いのかな。

通常パッケージ全部アップデート
# yum update

Remiで入れたの個別アップデート
# yum --enablerepo=remi update (パッケージ名)

設定ミスが無いか必死にぐぐりながらいじってます(汗)

WordPressを簡単に高速化させてみる

まあWordPressに限らない方法なんだけどね。

PageSpeed InsightsというGoogle製のサイトの表示速度を調べてくれるサイトを知りました。何年も前からあったみたいだけど。
ともかく、ここにURLを入れたら速度が遅くなってる原因がわかります。便利だね。

このブログのTOPページを試してみたらモバイルが57/100、PCが67/100でした。スコア低いなあ。なので「修正が必要」と書かれている2つの対処法を試してみた。

圧縮を有効にする

これはサーバからブラウザへ転送するデータをGZIPで圧縮しろってことです。Apacheにmod_deflateなるものを入れる必要があるんだけど、うちの環境だと最初から入ってた。なのでネット情報を参考に.htaccessに以下を追加。

<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
Header append Vary User-Agent env=!dont-vary
</IfModule>

GZIPに対応していないブラウザなどを除外してるね。

ブラウザのキャッシュを活用する

画像などに有効期限を付ければブラウザキャッシュが効くよということです。これも同じくApacheにmod_expiresが入っていたので、やはりネット情報を参考に.htaccessに追加。

<ifModule mod_expires.c>
ExpiresActive On
ExpiresDefault A1
ExpiresByType image/gif A604800
ExpiresByType image/jpeg A604800
ExpiresByType image/png A604800
ExpiresByType image/x-icon A604800
ExpiresByType text/css A604800
ExpiresByType text/javascript A604800
ExpiresByType application/x-javascript A604800
ExpiresByType application/x-shockwave-flash A604800
</ifModule>

A604800は有効期限をアクセスした時から604800秒(1週間)後にするって意味です。

結果

.htaccessに上の2つを記述しただけでモバイルが73/100、PCが86/100になりました。結構良いスコアになったね。

「修正を考慮」という所に他の対処法も載っていて、その中で「サーバーの応答時間を短縮する」というのが気になりました。サーバが古いので遅いのは仕方ないとして、多分これはWordPressが重いせいだな。

実はWordPressのプラグインでキャッシュ系を幾つか試してみたんだけど、うちの環境ではうまく動かなかった。そんな訳でWordPress以外でも使える手法のみになっちゃいました。

スマホアプリ開発の勉強中(Monaca&PhoneGapとenchant.js)

enchant01やろうやろうと思いつつ全然やれてなかったスマホアプリ開発。そろそろ本格的に始めようかと思います。

AndroidはJava、iPhoneはObjective-Cが標準の開発言語だけど、両方やるのは学習コストが高い。なのでハイブリッド開発が出来るHTML5+JavaScriptの組み合わせでやることにしました。

選んだフレームワークはPhoneGap。今はAdobe製品になってるし、いちばん有名っぽいので。ただそのまま使うのもちょっと敷居が高かったので、PhoneGapを利用できるMonacaを開発環境に決めました。

この結論に辿り着くまで時間かかった……

Monaca(PhoneGap)

Monacaはブラウザ上で開発します。WebDAV経由でも出来そうだけど、無料版だと重すぎてダメだった。まあブラウザのエディタちゃんとしてるから、そっちで問題なく使えます。

これのいちばんのウリは実機テストが簡単にできること。AndroidとiPhoneそれぞれに専用のデバッガーアプリを入れると、エディタで保存するたびに作成中のアプリが自動インストールされ、即テスト出来ます。これは便利すぎる。

ただ、やってみてわかったのは、やっぱりAndroidとiPhoneで挙動が結構違うなあと。あと重い。これは仕方ないか。UI用にJQuery Mobileを使ってますが、Onsen UIの方が良いのかなぁ。

JavaScript久しぶりに触ったから、やり方わからず調べまくりで結構大変です。JSONでサーバとデータのやり取りする方法がわかったので、難しい処理はサーバに投げちゃおうかな。電波届かないと動かないアプリになっちゃうけど。

ビルドまでして、一通りアプリ開発の流れはつかめました。

enchant.js

フレームワークにenchant.jsが組み込めることを知り、こちらも触ってみることに。ブラウザ上で2Dアクションゲームが作れるということて、何年か前から存在は知ってたんだけどね。

とりあえずPC上のブラウザで試したんだけど、結構簡単に作れるね。ゲームに必要な機能は最初から入ってるし、スマホ用のタッチ動作なんかはプラグインで対応できるっぽい。

サンプルだと1つのjsファイルに全部突っ込んでてどうなんだろうと思ってたけど、別ファイルに分けられる事がわかったので、ある程度複雑な処理も混乱せずに使えそう。

冒頭の画像は巫女さんを十字キーで操作、アリは自動で歩き続けるだけのものです。アニメーションも簡単に導入できて素晴らしい。

ぶっちゃけ

通常のアプリはMonacaで開発しようと思います。ただ無料版だとアプリ数やプラグインの制限等があるんだよね。有料版は結構なお値段するので、いつかはMonaca止めて自前で環境構築することになるかも。

enchant.jsの方はとりあえずやってみたものの、Unity使ったほうが良いかなぁなんて思ったりw 簡単なものはenchant.js、規模の大きいのはUnityって分けていけばいいかな。

ゲーム開発しようと考えると、プログラムより絵や音楽の用意が大変なんだよね。冒頭の画像は5年以上前に描いたドット絵で、とても今使えるものじゃないから描き換えが必要だし。

先は長い……

デジタルカメラCASIO EX-ZR800を買う

EX-ZR800CASIO EXILIM デジタルカメラ 1,600万画素 ブラック EX-ZR800BKを買いました。消費税8%に踊らされてw

これまで持ってたデジカメは7年前に買ったオリンパスのFE-220という機種でした。710万画素の光学3倍ズームです。外部メモリがxDピクチャーカード(256MB)とかいうマニアックなやつでした。

対して今回のZR800は1610万画素の光学18倍ズームです。外部メモリはSDHCカードの32GBを買ったので、4608×3456の高精細でも2000枚以上撮れます。

この機種を選んだのは手ぶれ補正が凄いらしいから。気をつけててもブレちゃう事があるからね。

あと光学18倍試してみたけど、ホント遠くまでよく見える。最近はスマホのカメラを使って撮ってたけど、デジタル4倍ズームしか無かったから、遠景は諦めてたんだよな。

さて、何を撮ろう。

デスクトップPCが修理から戻る2

前回の修理の後から、パソコンの電源が突然落ちるようになってしまいました。

色々試してみたら、ニコニコ動画などを20分以上再生すると落ちるっぽい。前回電源ユニットの交換をしたので、それのせいかな。

そんな訳でサポートに連絡したんだけど、BIOSをアップデートしろだのグラフィックドライバを最新にしろだの言ってきて、どうにも核心に近づいてる気がしない。前回の修理ではHDDを外して送ったので、そのせいじゃないのかと言われ、OSの再インストールを試すよう指示される。きがるにいってくれるなあ……

OS再インストールは面倒なので、ブラウザ上での動画再生で電源が落ちるのは再現性があるからと説明したんだけど、ネット由来の現象はサポート外と言われてしまう。仕方ないので他の方法を試していたら、ブルーレイの再生でも電源が落ちるのを確認。それでようやく修理に応じてくれました。長かった……

修理自体は4日で終わって戻ってきました。それで修理報告書を見てみたら……ビデオカードの故障でした。そっち?!

これは予想外だった。

デスクトップPCが修理から戻る

1ヶ月位前から、パソコンのファンが掃除機並にうるさくて困ってました。中を開いてエアダスターでホコリ飛ばしたりしたものの、音は変わらず。さすがにストレスになってきたのでメーカーに問い合わせたら「保証期間内なので修理します」と言ってくれました。

修理に出す際、ハードディスクを取り外して送るというやり方が載ってました。情報漏洩や破損対策か。以前、別のメーカーに修理に出したPCは「落として壊しちゃいました」とかアホな事やられたし、今回はハードディスクを外して送ったよ。

送料無料で梱包も配送業者がやってくれました。楽チンだね。数日後に電話がかかってきて、電源ユニットを交換したとの事でした。ファンだけの問題じゃなかったのか。

そして送り出してから5日後にPCが返ってきました。今のところ騒音は無し。いやぁ延長保証しておいて良かったよ。

ちなみに修理中はノートPCを使ってましたが、グレア液晶で13インチなので目が疲れました。ディスプレイに繋げばよかったんだけどね。

Photoshop CCとLightroomを月額1000円で導入する

今日までAdobe Photoshop CC (最新版) 12ヶ月版 (プリペイド) [オンラインコード] [ダウンロード]Photoshop 写真業界向けプログラムというキャンペーンをやっていて、Photoshop CCLightroom 5が月々たったの1,000円で利用できます。

Photoshopって昔は10万円近く、今でも年間26,400円するものが、キャンペーンとはいえ年間12,000円で使えるなんて素晴らしいね。

とは言え、これまで数年ごとに買い替えていたPhotoshop Elements(14,490円)に比べると結構な割り増しになるので、その分フルパッケージならではの機能を使いこなしていこう。

とりあえずやってみたいのは、大量にある画像データをアクションで一括変換かな。それとパス機能で画像パーツ類を自作できるようになれれば。

そういえばLightroomってなんだろ。

スピーカーBOSE Companion2 IIIを買う

companion2BOSE Companion2 IIIを購入しました。

パソコン用のスピーカーは今までMS-75MAという5年くらい前に3000円台で買ったのを使ってたんだけど、急に音が気になりだして。

とは言え音響は素人なので、予算を1万円前後としてネットのレビュー等を参考に選びました。サイズは2倍大きくなり、最大出力は3.6Wから22Wと6倍パワーアップです。

実際にパソコンに繋いで聞いてみると、なんかもう全然音が違うね。前のはボリューム上げてもこもってるというか薄っぺらい感じだったのに、これは音の広がりが感じられる。

PC内のMP3だけじゃなく、YouTubeやゲームなんかも聴き比べてみたけど、迫力が段違いです。Amazon MP3で貰ったクラシックとかびっくりする程良い音になったよ。今まで聴いてたのは音楽ではなかったんだなぁ。

PCの前にいることが多いから、スピーカーはこだわる所だったね。今まで勿体なかった。

Winampからfoobarに乗り換える

foobarWinampが終了するというので、foobar2000に乗り換えることにしました。別に使い続けても問題ないとは思うけど。

インストール後、ウインドウを小さくしてフォントも小さいのに変更。でもって右上に設置してランダム再生。これで今まで通りだ。Winampでも最低限の機能しか使ってなかったしね。

foobarはプレイリストがタブになってるのが良いね。これのお陰で簡単にプレイリストを変更できる。

せっかくなのでWASAPI排他モードというのを試してみました。音質が良くなるらしい。foobarのサイトからWASAPI用のコンポーネントを持ってきてインストール。それだけだとエラー出て再生しないので、サウンドドライバを最新のに入れ替えたら鳴るようになりました。

しかし聴き比べたものの違いがわからず。試しにイヤホンで聞いたらちゃんと音質良くなってたよ。音の数が増えたような気がする。

つまりスピーカーが良い音を出してないって事か。調べたらこのスピーカー、約10年前のだったよ(MS-75MA)。スピーカー買い換えようかな。