会社では相変わらずさくらのクラウド上で色々やっていますが、以前のGentooの記事が好評だったので今回も同じくGentooでいこうと思います!
mazgi見てgentoo余裕でした / “さくらのクラウドで普通のLDAP認証ができるサーバーを量産する - mazgi.log” http://t.co/3edigSPVEj #mazgi
— sue445 (@sue445) July 23, 2015
今回は図のような構成でごく普通のGatewayサーバーを構築し、矢印で示したサーバーがインターネットに出られるようにします。
まずはカーネルのコンフィグレーションですが、CONFIG_IP_NF_TARGET_MASQUERADE
を有効にしておきます。
[root@gateway-left] # uname -a Linux gateway-left 4.0.5-gentoo #1 SMP Fri Aug 14 20:27:22 JST 2015 x86_64 Intel(R) Xeon(R) CPU E5-2640 0 @ 2.50GHz GenuineIntel GNU/Linux [root@gateway-left] # zgrep CONFIG_IP_NF_TARGET_MASQUERADE /proc/config.gz CONFIG_IP_NF_TARGET_MASQUERADE=m
またsysctl
でnet.ipv4.ip_forward
を1
に設定します。
[root@gateway-left] # sysctl -p net.ipv4.ip_forward = 1 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.all.rp_filter = 1
iptables
はこんな感じにしてみます。
なお、eth0
がWAN側インタフェース、eth1
がLAN側インタフェースです。
[root@gateway-left] # iptables -L -v Chain INPUT (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 671 100K ACCEPT all -- any any anywhere anywhere ctstate RELATED,ESTABLISHED 0 0 ACCEPT all -- lo any anywhere anywhere 0 0 ACCEPT icmp -- any any anywhere anywhere 1 60 ACCEPT tcp -- any any anywhere anywhere tcp dpt:22 ctstate NEW limit: up to 2/min burst 3 mode srcip-dstip 0 0 DROP tcp -- any any anywhere anywhere multiport dports epmap,netbios-ssn,microsoft-ds 0 0 DROP udp -- any any anywhere anywhere multiport dports epmap,netbios-ns,netbios-dgm,microsoft-ds 15 764 LOG_AND_DROP all -- any any anywhere anywhere Chain FORWARD (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 36 12342 ACCEPT all -- eth1 any anywhere anywhere 31 21996 ACCEPT all -- eth0 any anywhere 172.x.0.0/16 Chain OUTPUT (policy ACCEPT 506 packets, 66758 bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT all -- any lo anywhere anywhere 0 0 LOG_AND_DROP all -- any eth0 anywhere 255.255.255.255 Chain LOG_AND_DROP (2 references) pkts bytes target prot opt in out source destination 15 764 LOG all -- any any anywhere anywhere limit: avg 1/sec burst 5 LOG level warning prefix "(IPTABLES_DROPPED)" 15 764 DROP all -- any any anywhere anywhere
natテーブルはこんな感じで。
[root@gateway-left] # iptables -L -v -t nat Chain PREROUTING (policy ACCEPT 2155 packets, 139K bytes) pkts bytes target prot opt in out source destination Chain INPUT (policy ACCEPT 1 packets, 60 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 30 packets, 1931 bytes) pkts bytes target prot opt in out source destination Chain POSTROUTING (policy ACCEPT 30 packets, 1931 bytes) pkts bytes target prot opt in out source destination 11 10788 MASQUERADE all -- any eth0 anywhere anywhere
Gateway経由でインターネットにでる各サーバーの設定はこんな感じです。
172.x.y.z
がGatewayのIPアドレスです。
$ cat /etc/conf.d/net.eth1 config_eth1="172.x.a.b/16" routes_eth1="default via 172.x.y.z" dns_servers_eth1="172.x.v.1 172.x.v.2" dns_domain_eth1="example.com"
以上、お手軽ですね。
ところでさくらのクラウドにはVPCルーターというアプライアンスが用意されており、これを使うともっとお手軽にネットワークを構築することができます。