Debian Sargeルータ化メモ

 今使ってるルータは、4つしかLANポートなくて色々不便だったので、Debianをルータにして16ポートHUBを使って、15台までネットワーク組めるようにした。まず、interfaces の設定。 /etc/network/interfaces を以下のように設定。eth1_rename が外の世界とつながってるNICで、eth0が家ネットワークのHUBとつながってるNIC。

/etc/network/interfaces

auto eth1_rename
iface eth1_rename inet dhcp

auto eth0
iface eth0 inet static
 address 192.168.1.1
 netmask 255.255.255.0
 broadcast 192.168.1.255
 network 192.168.1.0

 とりあえず、設定が間違っていないか確認。

/etc/init.d/networking restart

 エラーが出なかったら、ifconfig で設定を確認し、合ってそうだったら次へ進む。

 次は、DHCPサーバのインストール。apt-getで入れた。

sudo apt-get install dhcp

 次に、DHCPの設定をいじる。 /etc/dhcpd.conf が設定ファイルだけど、怖いのでバックアップをとってから編集。とりあえず、以下の様にしてみた。

/etc/dhcpd.conf

 option domain-name-servers xxx.xxx.xxx.xxx;

 option subnet-mask 255.255.255.0;
 default-lease-time 600;
 max-lease-time 7200;
 option routers 192.168.1.1;

 subnet 192.168.1.0 netmask 255.255.255.0 {
   range 192.168.1.50 192.168.1.100;
 }
option subnet-mask
サブネットマスク。これを指定しないとエラーになる。
option routers
多分、DHCPがたってるNICのIPなんだと思う。自信ないお。
subnet …
どのネットワークのDHCPを設定するのかってことだと思う。
range
ここで指定した範囲のIPがDHCPクライアントに割り振られるようだ。

 ここまで設定すればDHCPサーバはたつけれど、外のネットワークにはつながらない。eth1_rename にきたものをeth0 に流してあげる様に、 ip_forward を有効にする。初期では多分無効になってると思う。

cat 1 > /proc/sys/net/ipv4/ip_forward

 次に、ip_tables で流すルールを決める。

sudo iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1_rename -j MASQUERADE

 これで、eth0_rename で受けたパケットを全部中に流してくれる。

 ここまでで、ルータ化は成功したはず。あとは静的にIPを割り当て、パケットをルータでちゃんと遮断するように設定すれば稼働できるかな。

Debian Sargeルータ化メモ

Poundすごく萌えた

ReverseProxy と LoadBalancing してくれるPoundを使ってみた。複数ドメイン、複数Railsアプリを同一サーバで動かすのにすごく便利。

SSLのインストール(SSLを使用する時のみ)

 OpenSSLから最新版を落とす。おなじみの

$ ./configure
$ make
# make install

でインストールを完了する。Debianだと、/usr/local/ssl にインストールされる模様。どこにインスコされたか分からなかったときは、

$ whereis ssl

ってやれば出るよ。

Poundのインストール

Poundから、ソースをダウンロード。SSLを使う場合は、--with-ssl=ssl_dir で設定する。使わない場合、このオプションは不要。

$ ./configure --with-ssl=/usr/local/ssl
$ make
# make install

とすれば、インストール完了。

Poundの設定

 デフォルトの設定ファイルは、以下の場所にある。ない場合は自分で作成する。

/usr/local/pound.cfg

1,2行目はPoundを動かす人。rootは避けたほうがいいと。
以下の設定で、sample1.com にきたアクセスを 3000番ポートへ、 sample2.com に来たアクセスを 3001番ポートへ転送できる。違うRailsアプリが同じサーバで動きます。他にApacheとか動かしとけば、静的なコンテンツは全部そっちでさばけます。これはいい…

User           "www-data"
Group          "www-data"

LogLevel       1

Alive          30

## use hardware-accelleration card supported by openssl(1):
#SSLEngine     


######################################################################
## listen, redirect and ... to:

## redirect all requests on port 8888 ("ListenHTTP") to the local webserver see "UrlGroup" below):
#127.0.0.1,8080

ListenHTTP
  Address 192.168.1.100
  Port 80
  xHTTP  2

  Service
    HeadRequire "Host: sample1.com"
    BackEnd
      Address 127.0.0.1
      Port 3000
    End
  End

  Service
    HeadRequire "Host: sample2.com"
    BackEnd
      Address 127.0.0.1
      Port 3001
    End
  End

End

すごくためになったサイト recompile.net

Poundすごく萌えた