Network」カテゴリーアーカイブ

iptables,ip6tablesの設定

これもすぐに設定の仕方を忘れるので覚書。

まずは、iptables-persistentをインストールしておく。設定ファイルは、/etc/iptables/rules.v4と/etc/iptables/rules.v6。もちろん環境に合わせて書き換える。私の場合はipv4が

# Generated by iptables-save v1.4.21 on Fri Feb 12 17:18:19 2016
*nat
:PREROUTING ACCEPT [2:104]
:INPUT ACCEPT [1:64]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:DOCKER - [0:0]
-A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
-A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER
-A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE
-A DOCKER -i docker0 -j RETURN
COMMIT
# Completed on Fri Feb 12 17:18:19 2016
# Generated by iptables-save v1.4.21 on Fri Feb 12 17:18:19 2016
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [3:349]
-A INPUT -p icmp -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p udp -m state --state ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m tcp --dport hogehoge -j ACCEPT
-A INPUT -p tcp -m tcp --dport hogehoge -j ACCEPT
-A INPUT -p udp --dport 500 -j ACCEPT
-A INPUT -p udp --dport 4500 -j ACCEPT
-A INPUT -i lo -j ACCEPT
COMMIT
# Completed on Fri Feb 12 17:18:19 2016

ipv6が

# Generated by ip6tables-save v1.4.21 on Fri Feb 12 17:18:19 2016
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -p ipv6-icmp -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p udp -m state --state ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m tcp --dport hogehoge -j ACCEPT
-A INPUT -p tcp -m tcp --dport hogehoge -j ACCEPT
COMMIT
# Completed on Fri Feb 12 17:18:19 2016

こんな感じ。

あとは、以下のコマンドです。

netfilter-persistent reload

sslhによるtcp/443でのsshd,httpdの両まちうけ

最近はネットワークのフィルタリングが厳密すぎて、tcp/22ポートにおけるsshの接続ができなくなってきました。sshはsshd_configで簡単にポート番号を変えられれますので、どのネットワークでもまず閉じられていないtcp/443(SSL)に変えてしまうという手があります。しかしながら、webサーバを立ち上げているサーバでは当然443は占拠されているので、今回のsslhを使ってクライアントのリクエストに応じて適切なサービスに割り振ることをします。

インストール

Debianではパッケージがありましたので、そこからインストールします。

# apt install sslh

最初に、inetdで起動するか、standaloneで起動するか聞いてきます。sshもhttpdもstandaloneで動いているわけですし、sslhも素直にstandaloneにしておきます。

既存サービスのポート変更

httpd

私はApacheを使っていますので、/etc/apache2/ports.confを書き換えました。

Listen 80

<IfModule ssl_module>
 Listen localhost:443
</IfModule>

<IfModule mod_gnutls.c>
 Listen localhost:443
</IfModule>

ポート番号はそのままに、待ち受けるアドレスをlocalhostにしています。編集後にapacheの再起動。

ssh

/etc/ssh/sshd_configを編集します。

#Port 22
Port 12345
Port 23456

もともとの22番はコメントアウトしています。22番ポートへの攻撃は多いのであえて閉じています。そのあとにある12345,23456が待ち受けポートです(本当は違う値ですけど)。編集後にsshdの再起動。

sslhの設定

sslhの設定は/etc/default/sslhです。

RUN=yes
DAEMON_OPTS="--user sslh --listen xxx.xxx.xx.x:443 --listen xxxx:xxx:xx:x:x:x:x:x:443 --ssh 127.0.0.1:12345 --ssl 127.0.0.1:443 --pidfile /var/run/sslh/sslh.pid"

変更箇所は2行です。–listenでまちうけのアドレスとポートを指定します。–sshでsshのポート番号を、–sslでhttpdのポート番号を指定しています。編集後にsslhの再起動をします。

まちうけにはIPv4もIPv6の両方共いけました。転送先のアドレス(127.0.0.1)がIPv4しか書いてないのに、IPv6でsshのコネクションが張れていまいち謎な感じですけど、できてしまいました。一種のIPv6トランスレーター的な動きをしているのかもしれません。

確認

httpdの確認は通常のブラウザから出来ます。sshはポート番号を変えましたので以下のようにつなぎます。

$ ssh -p 12345 サーバのアドレスなど

毎回ポート番号を書くのが面倒であればconfigに書くのがいいでしょう。

注意

リモートのサーバを編集するときは注意しましょう。設定を間違えると2度と繋がらなくなる可能性があります。sshなどは設定を変更してサービス再起動しても、今あるセッションはそのまま残りますので、設定が完全に出来上がって問題なくなるまで、作業中は切断しないようにするといいと思います。

 

Let’s Encrypt のベータ開始

Let’s Encrypt は誰でもTLS(SSL)を無料で使えるようにしようと言うプロジェクト。個人でもhttpsで簡単に暗号化できるようになります。詳しいことは、プロジェクトのページを見てください。https://letsencrypt.org/

正式公開の前にベータテストが開始されましたので試してみました。

続きを読む

iTunesでAirMacを通して外部スピーカーを鳴らすときのプロトコル

 Appleの無線LANアクセスポイントであるAirMacには,無線以外にもちろん有線LANがありますが,他にUSBや音声出力(ミニステレオか光)があります。音声出力はアンプに繋いだり,アンプ内蔵スピーカーを接続して直接音を鳴らすことができます。何のためにこんな端子がついているかというと,iTunesの出力をPCローカルに接続しているスピーカー以外にAirMacを出力できるように作られています。

 この機能を使うとPCのある部屋とは別の部屋にAirMacを設置してiTunesのなかの曲を流したり,アンプを通して大きな音で鳴らしたりできるようになります。

 この機能はもちろんWindows版のiTunesでも使えますが,Appleのネットワーク機能であるBonjourを使っているので,ファイアウォールなどの設定が必要な場合があります。
 Bonjourではマルチキャストを使ってAppleの製品を探しているようで,具体的には udp/5353 をつかっているようです。このプロトコルはApple独自のようで,Multicast DNS という名前がつけられています。
 ブロードバンドルータなどでインターネットとの間にファイアウォール(NAT)があればPCのファイアウォールはなくてもさほど問題にはならないですが,最近はPCにもパーソナルファイアウォール(WindowsではWindowsファイアウォールという名前)を入れるのが定石なようなので,このポートだけファイアウォールに穴をあけるのがいいかもしれません。

サブネットを超えてのファイル共有(Windows XP)

Windows XP で共有フォルダを作ってファイル共有をしようと思った時にはまったことがあったので、備忘録として書いておきます。

Windows XP でファイル共有する時に指定したフォルダーを右クリックして共有で簡単にできるんですが、簡単にできるのは同じサブネットの中だけ。サブネットを超えたら共有どころか、コンピュータのブラウズすらできません。
挙動からして、ファイアウォールだろうなと思って、調べてみたら案の定ありました。
Windowsのファイアウォールでファイルとプリンタの共有を選んで編集すると、「スコープの変更」という項目があります。ここで、デフォルトは同一サブネット内に限定されているようです。確かに無難な設定だと思います。
アンチウイルス付属のファイアウォールに変えた場合は、もちろんそちらの設定次第になります。

e-Government

 日本でも電子政府を推進しているe-Japanとかe-Governmentとか言っているやつである。

 これが遅々として進まない。目標は掲げてなんとなく進捗しているんだけど,ちっとも役に立っていない気がする。電子申告であるe-Taxなんて未だ10%ほどの普及率である。住民基本台帳ネットワークだってほとんどの自治体で導入されて,その気になればいつでも使えるのに住民に役に立つところでは何も使えていない。もちろんセキュリティの問題があるのは分かっているが,あまりにも動きが遅い気がする。

 これらの問題は個人情報というセキュリティが絡んでいるため,やりたくてもやれないことが沢山あるのは分かるが,セキュリティを前面に押し出しすぎて,本末転倒になっている気がする。
 数年前に個人情報保護法なる法律ができて,小中学校では生徒名簿すら作られなくなっているらしい。もちろん法律でこれを規制している訳じゃない。
 先ほど書いた住民基本台帳ネットワーク。これも政府が認証局を作りPKIで運用されている。途方もなく高度な技術だ。途方もないというのは,使われ方に対しての話である。皆さん住基カードの中に搭載されているプライベートキーを使って,電子署名をしたり暗号したりしてますか?私自身,住基カードすら持っていません。発行するのにお金かかるし。

 気がついたら海外ではもっと簡単に電子政府を実現しています。PKI(チョー難しいけどイケてる暗号方式)なんて使いません。SAML(比較的誰にでも使えるちょっと敷居の低い暗号のしくみ)で暗号は3DES(もはや時代遅れだけれどまだそこそこ使える暗号)です。
 日本の電子政府は思想はとてもよいと思いますが,理想が高すぎるというのか,周りが足を引っ張るというのか,ちょっと空回り気味です。
 

fring

 iPodタッチにアプリケーションを入れて楽しんでいます。
 この間入れてみたのはfringというソフト。iPod touch,iPhoneの上で動くインスタントメッセージのクライアントです。複数のメッセージサービスを一つのアプリケーションで閲覧できてとても便利です。
 この手のソフトを導入するときに一番気になるのが,セキュリティ。fringのサイトにユーザ登録するのですが,これは良しとしましょう。この後に,各メッセージサービスのユーザとパスワードをアプリケーションに登録するのですが,このユーザとパスワードはどこに保存されるんでしょう?
 と,考えていると夜も眠られないので,最近は少々諦めています。大手のクレジットカード会社ですら個人情報を漏らしますし,気に病んでいても仕方がありません。みんなが使っているから大丈夫。自分の個人情報など大して価値がないと思うことにしています。(とはいいつつも最大限に気にする。。。)

 そんな話はおいといて
 このソフトを使ってみて思ったのは,自分がビックリするぐらいアカウントを持っていること。Skype,ICQ,Google Talk,MSN Messenger,Twitterなどなど,何でこんなにアカウントがあるんだろうと思います。fringで対応していないところでは,wassrとかまだまだありそうな気がします。
 えらく不便に感じます。別にメッセンジャーにハマっているわけでもないのにこの有様です。こういうところこそOpenIDやらなんやらで統一できないものでしょうか。
 って,さっきセキュリティの話をしたばかりでした。セキュリティ上は別のアカウントがいいことは分かっています。でもねぇ。

FirefoxのSSL接続

 Firefoxのバージョンが3になってから,SSLの接続に使用されるサイト証明書のチェックがかなり厳しくなりました。証明書内のCN(サイト名称)と実際の接続先のURLが違っていると,しつこいくらい本当に接続していいのか聞かれて,セキュリティ的には正しい形になったなぁ,と言う換装です。

 で,最近利用しているGoogle Reader なのですが,普段Gmailを使っていてリンクをたどってReaderに行く訳なんですけど,https://mail.google.com からリンクされているのが,https://google.co.jp だったんです。なんで,com から jp になるのかも謎なんですけど,この google.co.jp で使われている証明書が,google.com のものだったので非常に面倒でした。具体的にはいちいちリンク先のco.jp を com に書き換えていたりしていたんですけど,今日気づいたらリンクが https から http になっていました。
 この解決法はいかがなものかと頭をひねりますね。googleってセキュリティには気を遣っている気がするんですけど。日本は別管理なんでしょうか。

AIR

ノートパソコンでもゲームの話でもありません。

最近RIAなんていうキーワードがはやりつつあります。Rich Internet Applications のことで,web2.0の先にあるような物と言っていいのでしょうか。webの表現力やプロトコルの限界が見えてきて,ブラウザだけでできないことをAdobe Flashのようなプラグインで実現してきましたが,ブラウザなしでも使えるようにという時代の要請のようです。(それってなんていうクライアントサーバシステム?)

でもって,Adobeが出してきたのがAIRというプラットフォーム。RIAの逆ですが意図的かどうかは知りません。今日これが正式リリースのようです。昔はApolloって呼ばれていたようです。

Microsoftの対抗技術がSilverlight。こちらもこなれてきたようです。

本格的なweb2.0がくる前に終わってしまうのでしょうか。

VNCクライアント

実は最近Macbookを買いました。前からMac mini はあったんですけど,単なるジュークボックス(iTunes)になっていました。長らく使っていたWindowsのノートパソコンがとうとうハード的に壊れてきたので新しいノートを探していたのですが,最近やっていることってwebをみるのとメールを読むのがメインだったということもあり,Macでもいいじゃんということになりました。

乗り換えの際にWindowsを完璧に捨てることもできないと思い,VMware Fusionを買い,ほかのWindows(デスクトップとか)をさわるためにVNCを導入しました。MacにはOSとしてVNCサーバを持っているようですが,VNCクライアントが見あたりません(探し方が悪い?)。ということで,VNCの公式?サイトに行ったんですけど,Mac用のクライアントは見あたらず,本家以外で見つけました。

http://sourceforge.net/projects/cotvnc/

Chicken of the VNC という変な名前のVNCクライアントでした。

とりあえずふつうに使えます。

困っているのはキーボードの対応関係がよくわからないことです。漢字変換ってどうするんだろうとか,\が入力できないとか。とっても困っている訳じゃないですけど,やっぱりWinからMacへの移行って,できるんでしょうけど,多少敷居が高いです。