ぽよメモ

2015年12月

DATE

  • このページのトップへ

スポンサーサイト


上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

カテゴリー:スポンサー広告


NginxにphpMyAdminを通す


Nginxの最新版の導入が成功しましたら、データベースをより管理しやすくするためにphpMyAdminを入れます。
(インストールはこの前の記事でやった)
まずはphp5の環境設定から。
$ sudo vim /etc/php5/fpm/php.ini

・683行目付近 文字コードの設定
default_charset = "UTF-8"

・865行目付近 タイムゾーンの設定
date.timezone = "Asia/Tokyo"

・1645行目付近 言語設定
mbstring.language = Japanese


$ sudo vim /etc/php5/fpm/pool.d/www.conf

・22行目付近 PHP実行ユーザ名の設定
user = nginx

・23行目付近 PHP実行グループ名の設定
group = nginx

・33行目付近 FastCGIリクエストの設定
listen = 127.0.0.1:9000
ここまできたらサービスの再起動を行います。
sudo /etc/init.d/php5-fpm restart


MySQLのセキュリティのための設定
$ mysql_secure_installation

Enter current password for root (enter for none):  ←パッケージ導入時に指定したパスワードを入力
Change the root password? [Y/n] n
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y
Thanks for using MySQL!


ここからはNginxの設定に入ります。

公開ドメイン名: www.poyo.info
ドキュメントルート: /var/www
Wordpress: /var/www/wordpress
phpMyAdmin: /usr/share/phpmyadmin

としておきます。
$ sudo vim /etc/nginx/nginx.conf

user nginx;
worker_processes 4; # Raspberry Pi2なので「1」→「4」に修正

error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;


events {
worker_connections 1024;
}


http {
include /etc/nginx/mime.types;
default_type application/octet-stream;

log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

access_log /var/log/nginx/access.log main;

sendfile on;
#tcp_nopush on;

keepalive_timeout 65;

gzip on; #コメントアウトを外す Gzip圧縮転送を有効
include /etc/nginx/conf.d/*.conf;
}
Nginxは/etc/nginxにインストールされているはずです。
各種設定は/etc/nginx/conf.d/*.confとして保存し、先ほどのnginx.confによってincludeされます。
まずはデフォルトで入っている設定ファイル類のバックアップを取ります。
$ cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/wordpress.conf
$ mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.org
$ cp /usr/share/nginx/html/index.html /var/www/index.html
$ cp /usr/share/nginx/html/50x.html /var/www/50x.html

次にWordpressとphpMyAdminの設定をかきます。
$ sudo vim /etc/nginx/conf.d/wordpress.conf

server {
listen 80;
server_name poyo.info www.poyo.info;

# アップロードできるサイズの指定(Nginxのデフォルト値は1MByte)
client_max_body_size 16M;

# www が省略時されたときでも、www を付加したサーバ名に統一する
if ($http_host = "poyo.info") {
rewrite (.*) http://www.poyo.info$1;
}

location / {
root /var/www;
index index.php index.html index.htm;
}
 location /blog {
alias /var/www/wordpress;
index index.php;
# WordPress用のファイル・ディレクトリ不在時のリダイレクト対応
try_files $uri $uri/ /wordpress/index.php?$args;
# WordPress用のカスタムパーマリンク対応
if (!-e $request_filename) {
rewrite ^.+?($/.*) $1 last;
rewrite ^.+?(/.*\.php)$ $1 last;
rewrite ^ /wordpress/index.php last;
}
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www;
}
# FastCGI用の設定
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name;
include fastcgi_params;
}
location /phpmyadmin {
alias /usr/share/phpmyadmin;
index index.php
#アクセスの制限
allow 127.0.0.1;
allow 192.168.0.0/24;
deny all;
}
location ~ /phpmyadmin/.*\.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/$uri;
include fastcgi_params;
}
}
これでhttp://[ラズパイのIPアドレス]/phpmyadminにアクセスすればphpMyAdminが表示されるはずです。


スポンサーサイト

カテゴリー:RaspberryPi


Nginxの最新版を入れる


ようやくドメインを取得し、ラズパイをもう一台手に入れたので、こいつでWordpressを動かし、このブログをそっちにお引越ししたいと考えています。

ApacheにするかlighttpdにするかNginxにするか悩みましたが、どうも調べた限りではNginxがもっとも軽そうなのでこいつにします。
sudo apt-get install nginx php5 mysql-server php5-fpm php5-mysql phpmyadmin chkconfig

#勝手に入ってくるapache2を切る
sudo chkconfig apache2 off
しかし、ここで入れたnginxのバージョンは1.2.1でした。
最新版は1.8.0です。ちょっと気持ち悪いので手動で入れなおそうと思います。

#nginxのアンインストール
sudo apt-get remove nginx

#Nginxのリポジトリ追加
echo 'deb-src http://nginx.org/packages/debian/ wheezy nginx' | sudo tee -a /etc/apt/sources.list

#PGP公開キーを登録
wget http://nginx.org/keys/nginx_signing.key -O - | sudo apt-key add -

#GnuPGに登録
wget http://nginx.org/keys/nginx_signing.key -O - | gpg --no-default-keyring --keyring ~/.gnupg/trustedkeys.gpg --import -


/tmp/nginxにソースパッケージを展開しコンパイルします。
sudo apt-get update
sudo apt-get build-dep nginx
mkdir /tmp/nginx
cd /tmp/nginx
sudo apt-get source nginx
cd nginx-*
dpkg-buildpackage -uc -b
cd ..
#インストール
dpkg -i nginx_*~wheezy_armhf.deb
最後のインストールになってエラーが出ました。

nginx-debが何か悪さしてるっぽい?よくわからない。
言われるままにコマンドを打つ。依存関係の解消をするコマンドらしい。
sudo apt-get -f install
これでもまだエラーが出る。今度はnginx-commonが妨害しているようだ。
さらに、ここでまだnginxが動いていることに気づく。
sudo service nginx stop
sudo apt-get remove nginx-common
もう一度インストールを試す
$ dpkg -i nginx_*~wheezy_armhf.deb
(Reading database ... 82645 files and directories currently installed.)
Unpacking nginx (from nginx_1.8.0-1~wheezy_armhf.deb) ...
----------------------------------------------------------------------

Thanks for using nginx!

Please find the official documentation for nginx here:
* http://nginx.org/en/docs/

Commercial subscriptions for nginx are available on:
* http://nginx.com/products/

----------------------------------------------------------------------
Setting up nginx (1.8.0-1~wheezy) ...
Installing new version of config file /etc/nginx/scgi_params ...
Installing new version of config file /etc/nginx/fastcgi_params ...
Installing new version of config file /etc/nginx/koi-win ...
Installing new version of config file /etc/nginx/nginx.conf ...
Installing new version of config file /etc/nginx/koi-utf ...
Installing new version of config file /etc/nginx/win-utf ...
Installing new version of config file /etc/nginx/uwsgi_params ...
Installing new version of config file /etc/nginx/mime.types ...
Installing new version of config file /etc/init.d/nginx ...
Installing new version of config file /etc/logrotate.d/nginx ...
Installing new version of config file /etc/default/nginx ...
$nginx -v
nginx version: nginx/1.8.0
上手くいった。やったね。

冬休み中に設定を終えてしまいたいですね…

カテゴリー:RaspberryPi


RTXシリーズでのフィルタ設定


メリークリスマス。地獄のインターネット世界にようこそ。甘いケーキの代わりにRTX1100いかがですか。下手をすればホールケーキよりもお安いですよ。

さて、本日はクリスマスですがRTX1100のフィルタ設定をちゃんとお勉強しないとなぁと思っていたので軽くだけやります。

現在の構成は以下のようになっています。
lan1: デスクトップやノートパソコン・スマホ等が接続されている宅内LAN(192.168.0.0)
lan2: PPPoEでインターネットに接続
lan3: DMZ(192.168.10.0, サーバーに192.168.10.2を振る)

RTX1100には二種類のフィルタが存在します。
1. 静的フィルタ
2. 動的フィルタ
名前の通りで、静的に(常に一定に)作用するフィルタと、動的(場合により変化して)作用するフィルタです。負荷は当然動的フィルタのほうが大きく、使い分けが大事なようです。

勉強のためにあちこちのサイトを覗いたのですが、フィルター番号についてはまちまちでした。とりあえずわかったのは、
1. フィルタ番号自体に特に意味は無い(ただの識別子)
2. 適用した順に作用
自分でルールを設定してやるのが良さそうです。とりあえずここでは簡単に、
lan番号in=0,out=1フィルタ番号
1001= 1001
2101= 2101
3001= 3001
こんな感じにしておこうかと。また、in/out共用のフィルタには2を設定しようと思います(例: 2201)。

こんな感じでルールを設定している人のものを見ると、フィルタ番号の部分が3桁もあったり(そんなに設定するんだろうか)、VLANの有無があったり(むずかしくてわからないよぅふええ)、といった感じで少し長く感じたので短くしてみました。足りなければ増やせばよいのだよ(適当

フィルタの適用順は静的フィルタ→動的フィルタの順なので、まずは静的フィルタの設定からしていきます。

1. プライベートIPからのアクセスを遮断
これはlan2に設定します。IPアドレスを偽装(IPスプーフィング)して行われる攻撃を防ぐことができるらしいです。
# ip filter 2001 reject 10.0.0.0/8 * * * *
# ip filter 2002 reject 172.16.0.0/12 * * * *
# ip filter 2003 reject 192.168.0.0/16 * * * *

同時にoutへもこれを適用しておきます。
# ip filter 2104 reject * 10.0.0.0/8 * * *
# ip filter 2105 reject * 172.16.0.0/12 * * *
# ip filter 2106 reject * 192.168.0.0/16 * * *


2. 不正利用されやすいポートの遮断
これもlan2に設定。
# ip filter 2207 reject * * udp,tcp 135 *
# ip filter 2208 reject * * udp,tcp * 135
# ip filter 2209 reject * * udp,tcp netbios_ns-netbios_ssn *
# ip filter 2210 reject * * udp,tcp * netbios_ns-netbios_ssn
# ip filter 2211 reject * * udp,tcp 445 *
# ip filter 2212 reject * * udp,tcp * 445
netbios_ns-netbios_ssnとはポート番号137~139のことのようです。聞いたことがないので調べましたが、こんな感じらしいです。なんでポート番号にしないんだろう…
ポート番号サービス名備考
137netbios-nsWindowsが周辺のパソコンのIPアドレスを調べるために使う
138netbios-dgmWindowsが周辺のパソコンを調べるために使う
139netbios-ssnWindowsが周辺のパソコンやプリンタと接続するために使う
445Direct Hosting of SMBSMBをNetBIOSを介さずにホストする際に用いられる
これらのポートをもし外側から利用する場合、これを設定すると使えなくなることに注意が必要です。
参考:
ウェルノウンポート番号
445/tcpポートへのアクセス・ログがファイアウオールに大量に記録される
フィルタリングで遮断すべきポート番号(その2)


3. 外部からのtelnetを遮断
外部からtelnetされないようにしておきます。
# ip filter 2013 reject * * tcp * telnet


4. ICMPパケットの許可
pingやtracert(traceroute)などがこれを利用しています。
# ip filter 2014 pass * 192.168.0.0/24 icmp


5. WWWサーバーおよびSSHサーバーへのパケットのうち最初だけ通過
残りのパケットは動的フィルタで処理します。
# ip filter 2015 pass * 192.168.10.2 tcpflag=0x0002/0x0017 * www
# ip filter 2016 pass * 192.168.10.2 tcpflag=0x0002/0x0017 * 22


6. 「source-routeオプション付きIPパケット」を遮断
通常悪用しかされないので塞ぐ、ということのようです。→参考:source-routeオプション付きIPパケットに対するフィルタリング
# ip filter ip filter source-route on


7. 終点IPアドレスがDirected Broadcastアドレス宛になっているIPパケットを遮断
Smurf attackから防御するためにホスト部が"1"であるIPアドレス宛てのパケットを遮断します。Smurf attackとは、要するに送信元を偽装してpingを大量に送りつけ、ネットワークやコンピュータに負荷を与える攻撃方法らしいです。
# ip filter directed-broadcast on
参考:
directed broadcastパケットのフィルタリング
Smurf攻撃


8. すべて遮断/すべて許可
以上に該当しないパケットを許可or遮断します。どこでも使えるので特別な番号を与えておきます。
# ip filter 4000 reject * *
# ip filter 5000 pass * *



次に動的フィルタの設定をしていきます。
静的フィルタでは常にその入り口を開いている必要があるのですが、動的フィルタではその都度必要に応じて開くという動作が可能になり、セキュリティが増します。

フィルター番号はYAMAHA公式と揃えておきます
1. 各種通信の許可
# ip filter dynamic 100 * * ftp
# ip filter dynamic 101 * * www
# ip filter dynamic 102 * * domain
# ip filter dynamic 103 * * smtp
# ip filter dynamic 104 * * pop3
# ip filter dynamic 105 * * tcp
# ip filter dynamic 106 * * udp


2. SSHできるようにする
YAMAHAの公式サイトではtelnetを通す設定を紹介していますが、LinuxサーバーならSSHするだろうと思うのでこっちを設定します。
# ip filter dynamic 200 192.168.0.0/24 * 22

[2015/12/26 追記]
これではダメでした。以下の様に変更します。
# ip filter 2017 pass * 192.168.10.2 22
# ip filter dynamic 200 192.168.0.0/24 * filter 2017


[2015/12/28 追記]
上のやつでもダメでした。動的フィルタは諦めて静的に変えます。
# ip filter 2118 pass * * 22
# ip filter 2019 pass * * established
# ip lan3 secured filter in 2019 4000
# ip lan3 secured filter out 2118 5000 dynamic 100 101


3. wwwサーバーへのパケットを通す
# ip filter dynamic 201 * 192.168.10.2 www


後はこれらを適用していきます。
# pp select 1
pp1# ip pp secure filter in 2001 2002 2003 2207 2208 2209 2210 2211 2212 2013 2014 2015 2016 4000 dynamic 201
pp1# ip pp secure filter out 2104 2105 2106 2207 2208 2209 2210 2211 2212 5000 dynamic 100 101 102 103 104 105 106
# pp select none
# ip lan3 secure filter in 2019 4000
# ip lan3 secure filter out 2118 5000 dynamic 100 101
# save


…合ってるんかな

参考
自社サーバーを公開(1つの固定グローバルIPアドレス / DMZセグメント : LAN3)

カテゴリー:ネットワーク


RTX1100でVPN


せっかくVPNルーターを持ってるのにその機能を使わないのはもったいない気がしてきたので使います。

ここ→ルーターの設定コピペ参考にして設定を書きます。

今回は「複数のL2TPクライアント(アドレス不定)を接続」のほうなので、ページの真ん中くらいまで飛ばしましょう。

ヤマハルーターのプライベートアドレス : 192.168.0.1
L2TPクライアントへ配布するIPアドレス範囲 : 192.168.0.10-192.168.0.20/24

といった感じにします。

今回はとりあえず、iPhone、SOL24、MacBook Proの3台をVPNに接続できるよう、例と同じく3台分設定します。

3台分それぞれに「PPPユーザー名」と「PPPパスワード」を設定します。
また、L2TP/IPsecなVPNを構築するので、3台分のトンネルを用意します。

だいたいそんな感じです(適当

ISPへの接続はすでに完了しているとして次の作業へ移ります。

ip lan1 proxyarp on

pp select anonymous
pp bind tunnel1 tunnel2 tunnel3
pp auth request chap-pap
pp auth username (PPPユーザー名1) (PPPパスワード1)
pp auth username (PPPユーザー名2) (PPPパスワード2)
pp auth username (PPPユーザー名3) (PPPパスワード3)
ppp ipcp ipaddress on
ppp ipcp msext on
ip pp remote address pool 192.168.100.10-192.168.100.20
ip pp mtu 1258
pp enable anonymous

tunnel select 1
tunnel encapsulation l2tp
ipsec tunnel 101
ipsec sa policy 101 1 esp aes-cbc sha-hmac
ipsec ike keepalive use 1 off
ipsec ike local address 1 192.168.100.1
ipsec ike nat-traversal 1 on #NATトラバーサルへの対応
ipsec ike pre-shared-key 1 text (事前共有鍵)
ipsec ike remote address 1 any
l2tp tunnel disconnect time off
l2tp keepalive use on 10 3
l2tp keepalive log on
l2tp syslog on
ip tunnel tcp mss limit auto
tunnel enable 1

tunnel select 2
tunnel encapsulation l2tp
ipsec tunnel 102
ipsec sa policy 102 2 esp aes-cbc sha-hmac
ipsec ike keepalive use 2 off
ipsec ike local address 2 192.168.100.1
ipsec ike nat-traversal 2 on #NATトラバーサルへの対応
ipsec ike pre-shared-key 2 text (事前共有鍵)
ipsec ike remote address 2 any
l2tp tunnel disconnect time off
l2tp keepalive use on 10 3
l2tp keepalive log on
l2tp syslog on
ip tunnel tcp mss limit auto
tunnel enable 2

tunnel select 3
tunnel encapsulation l2tp
ipsec tunnel 103
ipsec sa policy 103 3 esp aes-cbc sha-hmac
ipsec ike keepalive use 3 off
ipsec ike local address 3 192.168.100.1
ipsec ike nat-traversal 3 on #NATトラバーサルへの対応
ipsec ike pre-shared-key 3 text (事前共有鍵)
ipsec ike remote address 3 any
l2tp tunnel disconnect time off
l2tp keepalive use on 10 3
l2tp keepalive log on
l2tp syslog on
ip tunnel tcp mss limit auto
tunnel enable 3

nat descriptor address outer 1 ipcp
nat descriptor address inner 1 auto
nat descriptor masquerade static 1 1 192.168.100.1 esp
nat descriptor masquerade static 1 2 192.168.100.1 udp 500
nat descriptor masquerade static 1 3 192.168.100.1 udp 4500

ipsec transport 1 101 udp 1701
ipsec transport 2 102 udp 1701
ipsec transport 3 103 udp 1701
ipsec auto refresh on

l2tp service on
アカウントはすべて異なるユーザ名、パスワードにした方がいいのか、一つしかアカウントがなくてもトンネルを3台分用意すればオッケーなのかわからなかったので3台分アカウントは用意しました。事前共有鍵はできるだけ長く複雑なものが良いです。どうせほとんど入力する機会ないので。

スマートフォンなど、グローバルIPが付与されずプライベートアドレスが振られる環境では、NATトラバーサルを設定しないといけないっぽいです、原理は全く理解できてませんがそういうことらしいです。
聞いた話ではauではだめっぽい?らしいけれど、少なくとも手持ちのSoftbank及びUQ mobileのSIMではちゃんとVPNに接続できました。
ちょっとMacBookではまだ試せていないので実家に帰った時が初テストです。動くとは思いますが。

VPNの速度自体は安定しています。まぁここは回線の速度がモノを言う気はします。
そこそこの光回線があるならRTX1100は中古で4000円未満で手に入るので、お手軽VPNとしては非常に良いのでは?個人的にはおすすめです。


あとドメインを取得しました。そのうちこのブログもwordpressにお引越しできたらいなぁと思っています。


カテゴリー:ネットワーク


IPv6対応にしてみた話


ここのところ多忙で全然触れられていないのが残念でなりません。
レポートと中間テスト、各種予定でなかなかてんてこ舞いなので…


あんまり回線の遅いので多少は改善しないかと思い、IPv6のPPPoE接続をセットアップすることにしました。IPv4のゲートウェイが混んでいても、まだまだ普及の進んでいないIPv6のゲートウェイなら空いてそうだし行けるんじゃないかと。
この前pp1でセットアップしたので、pp2でセットアップしていきます。
pp select 2
pp always-on on
pppoe use lan2
pppoe auto connect on
pppoe auto disconnect off
pp auth accept pap chap
pp auth myname IPv6用のID パスワード
ppp lcp mru on 1454
ppp ccp type none
ppp ipv6cp use on
ipv6 pp rip send off
ipv6 pp rip receive off
ip pp intrusion detection in on reject=on
ip pp intrusion detection out on reject=off
ipv6 pp dhcp service client
ipv6 pp tcp mss limit auto
pp enable 2

www.iijmio.jpにアクセスしてconnected via IPv6と表示されれば成功です。

もし設定をちゃんとしたのにconnected via IPv4と表示される場合、
traceroute www.iijmio.jp

#Windowsの場合
tracert www.iijmio.jp
してみましょう。このとき経由サーバがIPv6アドレスで表示されればちゃんとIPv6で接続されています。ブラウザのキャッシュを一旦削除して再度アクセスし直すと良いでしょう。

IPv4アドレスで表示された場合、恐らく設定がうまく行っていません。頑張ってください。


結論から言うとまだまだIPv6に対応していない所も多いせいかRTX1100のログを見てもIPv4パケットの方が桁違いに多い状態が続いており、速度もダメダメです。
tracerouteした結果から言うと大阪と東京にあるIIJmioのサーバを経由しているようなので、そのあたりの地域の人も同様に速度が遅い可能性があるのかな?
IIJmio光を契約される方はご注意ください。


あと先日の速度が極端に遅い件ですが、以下の様な回答を得ました

「お客様がご利用の、京都エリアの IIJmioひかりにおきましては、弊社機器にて、負荷の高い状況が発生していました。

このたびお問い合わせいただいた件については、上記の弊社設備における負荷の高い状況によって発生していると考えられます。

本状況につきましては、弊社でも認識しており、対応について検討しておりますが、具体的な対応時期等は未定となります。何卒、ご了承ください。

恐れ入りますが、弊社での対応まで今しばらくお待ちいただきますようお願いいたします。

なお、一般に Webサイトの閲覧等に際しては、上りの通信よりも下りの通信の利用量が多くなります。

mioひかりは上り下りともにベストエフォートでの提供となりますので、より利用量の多い傾向にある下りの通信速度が、上りの通信速度と比較して低下する場合はあると存じます。

今後ともよろしくお願いいたします。」
(メール本文そのまま)

また、「あまりにスピードが遅く使い物にならないにもかかわらず解約時には違約金をとるのか」と質問したところ、

「なお、IIJmioひかりをご利用開始から 24ヵ月以内で解約される場合、最低利用期間内解除調定金として 5,000円(不課税)が発生いたします。恐れ入りますが、料金の減免や免除等は承っておりません。何卒、ご了承ください。」
(メール本文そのまま)

との回答を得ました。正直言ってこの遅さ(30MB程度のzipファイルを落とすのに30分程度かかる、プレミアム会員なのにニコニコ動画がエコノミー回線並みに頻繁に止まる、画像の多いwebサイトの閲覧がそもそも厳しい)で最大1Gbpsを名乗るのは非常におこがましいと感じます。

さらに乗り換えを検討し、OCNへとお問い合わせを投げたところ「見積もりさせていただきます」とのことだったのに数日後契約内容の確認書類と口座振替依頼書、接続のセットアップについての書類が郵便で送付されてきました。さらに、今現在すでにフレッツ光回線は1Gbpsできているというのに「工事費が15000円ほどかかる」と言われました。
ISP関連でのトラブルが多すぎてちょっと頭痛が…(風邪引いいただけですが

IIJmioについては諦めて違約金を払うこととし、OCNからの押し売りのような契約書送付と謎の工事費については現在問い合わせ中です。

そろそろ落ち着いて欲しいですね…

カテゴリー:ネットワーク


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。