DHCPサーバーで社内とゲストのセグメントをわける方法



DHCPサーバーで社内とゲストのセグメントをわける方法
今回設定するのは、DHCPサーバーです。 セキュリティを考慮して、 社内PCは共有可能にし、ゲストPCには、インターネットのみを提供するようにします。 ネットワークは、 社内ネットワーク = 192.168.1.0/255.255.255.0 ゲストネットワーク = 192.168.2.0/255.255.255.0 で設定しています。自分の環境に置き換えて読んでください。 参考にしたサイトは、dhcp / iptables を組み合わせた仮想的なネットワーク分離 です。
まず、DHCPをインストールします。 # yum -y install dhcp # rpm -ql dhcp /etc/dhcpd.conf /etc/rc.d/init.d/dhcpd /etc/rc.d/init.d/dhcrelay /etc/sysconfig/dhcpd /etc/sysconfig/dhcrelay /usr/bin/omshell /usr/sbin/dhcpd /usr/sbin/dhcrelay /usr/share/doc/dhcp-3.0.5 /usr/share/doc/dhcp-3.0.5/IANA-arp-parameters /usr/share/doc/dhcp-3.0.5/README /usr/share/doc/dhcp-3.0.5/RELNOTES /usr/share/doc/dhcp-3.0.5/api+protocol /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample ← 設定ファイルのサンプル /usr/share/doc/dhcp-3.0.5/draft-ietf-dhc-authentication-14.txt /usr/share/doc/dhcp-3.0.5/draft-ietf-dhc-dhcp-dns-12.txt /usr/share/doc/dhcp-3.0.5/draft-ietf-dhc-failover-07.txt /usr/share/doc/dhcp-3.0.5/ja_JP.eucJP /usr/share/doc/dhcp-3.0.5/ja_JP.eucJP/dhclient-script.8 /usr/share/doc/dhcp-3.0.5/ja_JP.eucJP/dhclient.8 /usr/share/doc/dhcp-3.0.5/ja_JP.eucJP/dhclient.conf.5 /usr/share/doc/dhcp-3.0.5/ja_JP.eucJP/dhclient.leases.5 /usr/share/doc/dhcp-3.0.5/ja_JP.eucJP/dhcp-eval.5 /usr/share/doc/dhcp-3.0.5/ja_JP.eucJP/dhcp-options.5 /usr/share/doc/dhcp-3.0.5/rfc1542.txt /usr/share/doc/dhcp-3.0.5/rfc2131.txt /usr/share/doc/dhcp-3.0.5/rfc2132.txt /usr/share/doc/dhcp-3.0.5/rfc2485.txt /usr/share/doc/dhcp-3.0.5/rfc2489.txt /usr/share/doc/dhcp-3.0.5/rfc951.txt /usr/share/man/man1/omshell.1.gz /usr/share/man/man5/dhcpd-eval.5.gz /usr/share/man/man5/dhcpd-options.5.gz /usr/share/man/man5/dhcpd.conf.5.gz /usr/share/man/man5/dhcpd.leases.5.gz /usr/share/man/man8/dhcpd.8.gz /usr/share/man/man8/dhcrelay.8.gz /var/lib/dhcpd /var/lib/dhcpd/dhcpd.leases 設定ファイルのサンプルをコピーして 設定ファイルを編集します。 # cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf # vi /etc/dhcpd.conf -------------------- ここから -------------------- ddns-update-style interim; ignore client-updates; # サブネットマスクに注意 subnet 192.168.0.0 netmask 255.255.0.0 { # 以下 2行を追加 社内ネットワーク用 pool { deny unknown-clients; # --- default gateway # 以下、ルーター経由の場合は、ルーターのIPアドレス # サーバーがルーターの場合は、サーバーのIPアドレス option routers 192.168.1.1; # サブネットマスクに注意 option subnet-mask 255.255.255.0; # 以下 2行をコメントアウト #option nis-domain "domain.org"; #option domain-name "domain.org"; # 以下、ルーター経由の場合は、ルーターのIPアドレス # サーバーがルーターの場合は、プロバイダのDNSアドレスをカンマ区切りで option domain-name-servers 192.168.1.1; #option domain-name-servers XXX.XXX.XXX.XXX,XXX.XXX.XXX.XXX; option time-offset -18000; # Eastern Standard Time # option ntp-servers 192.168.1.1; # option netbios-name-servers 192.168.1.1; # --- Selects point-to-point node (default is hybrid). Don't change this unless # -- you understand Netbios very well # option netbios-node-type 2; # 以下 DHCPを割り振るIPアドレスの範囲を指定 社内ネットワーク用 range dynamic-bootp 192.168.1.128 192.168.1.254; default-lease-time 21600; max-lease-time 43200; # we want the nameserver to appear at a fixed address # 以下 5行をコメントアウト # host ns { # next-server marvin.redhat.com; # hardware ethernet 12:34:56:78:AB:CD; # fixed-address 207.175.42.254; # } # 以下 ホスト名 shanai_client1 を指定。社内ネットワーク用 host shanai_client1 { # 以下 shanai_client1 の MACアドレスを指定。 hardware ethernet xx:xx:xx:xx:xx:xx; # 以下 shanai_client1 の IPアドレスを指定。 fixed-address 192.168.1.10; } # 以下 クライアント数分指定する。 host shanai_client2 { hardware ethernet xx:xx:xx:xx:xx:xx; fixed-address 192.168.1.11; } host shanai_client3 { hardware ethernet xx:xx:xx:xx:xx:xx; fixed-address 192.168.1.12; } ・ ・ host shanai_client150 { hardware ethernet xx:xx:xx:xx:xx:xx; fixed-address 192.168.1.149; } # 以下 11行を追加 ゲストPC用 # DHCPを割り振るIPアドレスの範囲と、サブネットマスクに注意 # routers と domain-name-servers は適当に、後で設定ファイルを作成します。 } pool { allow unknown-clients; range dynamic-bootp 192.168.2.1 192.168.2.127; option subnet-mask 255.255.255.0; option broadcast-address 192.168.2.255; option routers 192.168.2.254; option domain-name-servers 192.168.2.254; default-lease-time 300 ; max-lease-time 300 ; } } -------------------- ここまで -------------------- # routers と domain-name-servers で指定したアドレスを登録します。 # vi /etc/sysconfig/network-scripts/ifcfg-eth0:0 -------------------- ここから -------------------- DEVICE=eth0:0 BROADCAST=192.168.2.255 IPADDR=192.168.2.254 # 先ほどのIPアドレスを指定 NETMASK=255.255.255.0 # サブネットマスクに注意 NETWORK=192.168.2.0 GATEWAY=192.168.1.1 # サーバーのデフォルトゲートウェイを指定 BOOTPROTO=static TYPE=Ethernet ONBOOT=yes -------------------- ここまで -------------------- # ifup eth0:0 # ifconfig eth0 Link encap:Ethernet HWaddr 12:34:56:78:ab:cd inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:44001087 errors:0 dropped:0 overruns:0 frame:0 TX packets:79897496 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:4011600638 (3.7 GiB) TX bytes:2336497570 (2.1 GiB) Base address:0xd000 Memory:e8000000-e8020000 eth0:0 Link encap:Ethernet HWaddr 12:34:56:87:ab:ce inet addr:192.168.2.254 Bcast:192.168.2.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Base address:0xd000 Memory:e8000000-e8020000 # /etc/rc.d/init.d/dhcpd start ← DHCPサーバー起動 dhcpd を起動中: [ OK ] # chkconfig dhcpd on ← DHCPサーバー自動起動設定 # chkconfig --list dhcpd ← DHCPサーバー自動起動設定確認 dhcpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off ← ランレベル2~5のonを確認 次にファイヤーウォールを設定します。 IPTABLEに関しては、かなりの知識が要りますので、 CentOSで自宅サーバー構築 さんの 6. サーバー公開前のセキュリティ強化 の中の 4. ファイアウォール構築(iptables) を参照してください。 そこの一部分をちょっとだけ変えて使用します。 ※ 勝手に変えてすいません。 変えるところは、 # vi iptables.sh #!/bin/bash #---------------------------------------# # 設定開始 # #---------------------------------------# # インタフェース名定義 LAN=eth0 #---------------------------------------# # 設定終了 # #---------------------------------------# # 内部ネットワークのネットマスク取得 -------------------- ここから -------------------- #LOCALNET_MASK=`ifconfig $LAN|sed -e 's/^.*Mask:\([^ ]*\)$/\1/p' -e d` LOCALNET_MASK=255.255.0.0 # 内部ネットワークアドレス取得 #LOCALNET_ADDR=`netstat -rn|grep $LAN|grep $LOCALNET_MASK|cut -f1 -d' '` LOCALNET_ADDR=192.168.0.0 -------------------- ここまで -------------------- LOCALNET=$LOCALNET_ADDR/$LOCALNET_MASK ネットワークアドレスと、サブネットマスクに注意です。 あとは、 CentOSで自宅サーバー構築 さんの 6. サーバー公開前のセキュリティ強化 の中の 4. ファイアウォール構築(iptables) にそってやってみてください。 設定は以上です。
登録情報の確認方法は、
社内ネットワークの場合 /etc/dhcpd.conf に自分のPCを登録して、DHCPにてアドレスを取得する。 # vi /etc/dhcpd.conf host shanai_client2 { hardware ethernet xx:xx:xx:xx:xx:xx; fixed-address 192.168.1.11; } # /etc/rc.d/init.d/dhcpd restart ← DHCPサーバー起動 dhcpd を停止中: [ OK ] dhcpd を起動中: [ OK ] Windowsであれば、コマンドにて ipconfig /release ipconfig /renew ipconfig /all を実行 Connection-specific DNS Suffix . : Description . . . . . . . . . . . : XXXXXXXXXXXXXXXXX Physical Address. . . . . . . . . : XX-XX-XX-XX-XX-XX Dhcp Enabled. . . . . . . . . . . : Yes ← DHCPサーバーが有効であることを示す Autoconfiguration Enabled . . . . : Yes IP Address. . . . . . . . . . . . : 192.168.1.11 ← DHCPサーバーから割り当てられたIPアドレス Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 192.168.1.1 ← DHCPサーバーから割り当てられたルーターのIPアドレス DHCP Server . . . . . . . . . . . : 192.168.1.1 ← DHCPサーバーのIPアドレスが返ってくるので確認 DNS Servers . . . . . . . . . . . : 192.168.1.1 ← DHCPサーバーから割り当てられたDNSサーバーのIPアドレス クライアントが、Linuxであれば # vi /etc/sysconfig/network-scripts/ifcfg-eth0 ← ネットワーク設定ファイル編集 DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp # /etc/rc.d/init.d/network reload # ifconfig eth0 ← IPアドレス割当て状況確認 eth0 Link encap:Ethernet HWaddr XX:XX:XX:XX:XX:XX inet addr:192.168.1.11 Bcast:192.168.1.255 Mask:255.255.255.0 ← DHCPサーバーから割り当てられたIPアドレス # cat /etc/resolv.conf | grep nameserver ← 問合せ先DNSサーバーのIPアドレス確認 nameserver XXX.XXX.XXX.XXX ← DHCPサーバーから割り当てられたDNSサーバーのIPアドレス # route -n ← ルーターのIPアドレス確認 Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0 ← DHCPサーバーから割り当てられたルーターのIPアドレス >ping 192.168.1.1 ← サーバーにping送信 Pinging 192.168.1.1 with 32 bytes of data: Reply from 192.168.1.1: bytes=32 time<1ms TTL=64 Reply from 192.168.1.1: bytes=32 time<1ms TTL=64 Reply from 192.168.1.1: bytes=32 time<1ms TTL=64 Reply from 192.168.1.1: bytes=32 time<1ms TTL=64 Ping statistics for 192.168.1.1: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms >ping 192.168.1.10 ← client1にping送信 Pinging 192.168.1.10 with 32 bytes of data: Reply from 192.168.1.10: bytes=32 time<1ms TTL=128 Reply from 192.168.1.10: bytes=32 time<1ms TTL=128 Reply from 192.168.1.10: bytes=32 time<1ms TTL=128 Reply from 192.168.1.10: bytes=32 time<1ms TTL=128 Ping statistics for 192.168.1.10: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms >ping 192.168.2.254 ← DHCPサーバーのルーターにping送信 Pinging 192.168.2.254 with 32 bytes of data: Request timed out. Request timed out. Request timed out. Request timed out. Ping statistics for 192.168.2.254: Packets: Sent = 4, Received = 0, Lost = 4 (100% loss), ゲストネットワークにはping送信ができないことの確認。 ゲストPCの場合 /etc/dhcpd.conf 内の自分のPCをコメントアウトして、DHCPにてアドレスを取得する。 # vi /etc/dhcpd.conf # host shanai_client2 { # hardware ethernet xx:xx:xx:xx:xx:xx; # fixed-address 192.168.1.11; # } # /etc/rc.d/init.d/dhcpd restart ← DHCPサーバー起動 dhcpd を停止中: [ OK ] dhcpd を起動中: [ OK ] Windowsであれば、コマンドにて ipconfig /release ipconfig /renew ipconfig /all を実行 Connection-specific DNS Suffix . : Description . . . . . . . . . . . : XXXXXXXXXXXXXXXXX Physical Address. . . . . . . . . : XX-XX-XX-XX-XX-XX Dhcp Enabled. . . . . . . . . . . : Yes ← DHCPサーバーが有効であることを示す Autoconfiguration Enabled . . . . : Yes IP Address. . . . . . . . . . . . : 192.168.2.127 ← DHCPサーバーから割り当てられたIPアドレス Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 192.168.2.254 ← DHCPサーバーから割り当てられたルーターのIPアドレス DHCP Server . . . . . . . . . . . : 192.168.1.1 ← DHCPサーバーのIPアドレスが返ってくるので確認 DNS Servers . . . . . . . . . . . : 192.168.2.254 ← DHCPサーバーから割り当てられたDNSサーバーのIPアドレス クライアントが、Linuxであれば # vi /etc/sysconfig/network-scripts/ifcfg-eth0 ← ネットワーク設定ファイル編集 DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp # /etc/rc.d/init.d/network reload # ifconfig eth0 ← IPアドレス割当て状況確認 eth0 Link encap:Ethernet HWaddr XX:XX:XX:XX:XX:XX inet addr:192.168.2.127 Bcast:192.168.2.255 Mask:255.255.255.0 ← DHCPサーバーから割り当てられたIPアドレス # cat /etc/resolv.conf | grep nameserver ← 問合せ先DNSサーバーのIPアドレス確認 nameserver 192.168.2.254 ← DHCPサーバーから割り当てられたDNSサーバーのIPアドレス # route -n ← ルーターのIPアドレス確認 Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0 0.0.0.0 192.168.2.254 0.0.0.0 UG 0 0 0 eth0 ← DHCPサーバーから割り当てられたルーターのIPアドレス >ping 192.168.1.1 ← サーバーにping送信 Pinging 192.168.1.1 with 32 bytes of data: Reply from 192.168.1.1: bytes=32 time<1ms TTL=64 Reply from 192.168.1.1: bytes=32 time<1ms TTL=64 Reply from 192.168.1.1: bytes=32 time<1ms TTL=64 Reply from 192.168.1.1: bytes=32 time<1ms TTL=64 Ping statistics for 192.168.1.1: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms >ping 192.168.1.10 ← client1にping送信 Pinging 192.168.1.10 with 32 bytes of data: Request timed out. Request timed out. Request timed out. Request timed out. Ping statistics for 192.168.1.10: Packets: Sent = 4, Received = 0, Lost = 4 (100% loss), >ping 192.168.2.254 ← DHCPサーバーのルーターにping送信 Pinging 192.168.2.254 with 32 bytes of data: Reply from 192.168.2.254: bytes=32 time<1ms TTL=64 Reply from 192.168.2.254: bytes=32 time<1ms TTL=64 Reply from 192.168.2.254: bytes=32 time<1ms TTL=64 Reply from 192.168.2.254: bytes=32 time<1ms TTL=64 Ping statistics for 192.168.2.254: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms 社内ネットワークにはping送信ができないことの確認。

telnetでログインしてPostfixのメールを操作する。



telnetでログインしてPostfixのメールを操作する。
① 送信編
まず、ログイン用のパスワードをbase64エンコードしなければいけません。 ので、下記を実行、書式は  print "SMTPユーザー名\000SMTPユーザー名\000SMTPパスワード" | openssl base64 # printf "server\000server\000serverpassword" | openssl base64 c2VydmVyAHNlcnZlcgBzZXJ2ZXJwYXNzd29yZA== ← エンコードされたパスワードが返ってくる。 上記で返ってきたパスワードを控えておく。 telnet でログインする。書式は  telnet メールサーバー名 ポート番号  自分自身であれば、  telnet localhost 25  他のサーバーであれば、  telnet mail.lunq.net 25  送信ポートを変更しているのであれば、  telnet localhost 587 # telnet localhost 25 Trying 127.0.0.1... Connected to localhost.localdomain (127.0.0.1). Escape character is '^]'. 220 ns1.lunq.net ESMTP unknown ← サーバーから応答がある。 その後下記↓を入力。 ehlo localhost 250-ns1.lunq.net 250-PIPELINING 250-SIZE 104857600 250-VRFY 250-ETRN 250-STARTTLS 250-AUTH PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN ← サーバーから応答がある。 その後にSMTP認証する。 書式は、  auth plain base64エンコードしたパスワードの文字列 auth plain c2VydmVyAHNlcnZlcgBzZXJ2ZXJwYXNzd29yZA== 235 2.0.0 Authentication successful ← successful の文字が返ってきた場合はログインOK これから送信作業に入るのですが、大体の流れはこんな感じ mail from: 自分のメールアドレス OKが帰ってきたら rcpt to: 送信先のメールアドレス OKが帰ってきたら data 354 End data with <CR><LF>.<CR><LF> ↑ こんな感じの文字が帰ってきたら 本文をいれますが、適当に何かを入れても何も返ってきません。 ただ、エラーではないので続けて入力しましょう。 こんな感じで↓ #################################### subject: This is Subject Hellow!! This is mailtest. mailtest is good or bad? Thank you. . #################################### まず、subject: 件名 を入力する。 その後に本文を入力する。上記は1行あけたが、あけなくてもいいです。 そして、最後に「 . 」( ドット ) を入力する。これで終わりですよという意味です。 すると、こんな感じの文字が帰ってきます。 250 2.0.0 Ok: queued as DA71C21C8D1B OK とでていれば大丈夫。その後の、DA71C21C8D1B はキューナンバーです。 これでメールが届いているはずです。 最後に、quit コマンドで、終了です。 一連の流れはこんな感じです。 ########################################################## # printf "server\000server\000serverpassword" | openssl base64 c2VydmVyAHNlcnZlcgBzZXJ2ZXJwYXNzd29yZA== # telnet mail.lunq.net 25 Trying 116.91.120.138... Connected to mail.lunq.net. Escape character is '^]'. 220 ns1.lunq.net ESMTP unknown ehlo localhost 250-ns1.lunq.net 250-PIPELINING 250-SIZE 104857600 250-VRFY 250-ETRN 250-STARTTLS 250-AUTH PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN auth plain c2VydmVyAHNlcnZlcgBzZXJ2ZXJwYXNzd29yZA== 235 2.0.0 Authentication successful mail from: server@lunq.net 250 2.1.0 Ok rcpt to: server@lunq.net 250 2.1.5 Ok data 354 End data with <CR><LF>.<CR><LF> subject: smpt test Hi! This is test. Thank you. . 250 2.0.0 Ok: queued as DA71C21C8D1B quit ########################################################## 以上です。分かりました?
② 受信編
telnet でログインする。書式は  telnet メールサーバー名 ポート番号  自分自身であれば、  telnet localhost 110  他のサーバーであれば、  telnet mail.lunq.net 110 # telnet localhost 110 Trying 127.0.0.1... Connected to localhost.localdomain (127.0.0.1). Escape character is '^]'. +OK Dovecot ready. ← サーバーから応答がある。 その後、ユーザー認証する。 まずは、ユーザー名。書式は、  user POPユーザー名 user server +OK ← サーバーから応答がある。 次に、パスワード。書式は、  pass POPパスワード pass serverpassword +OK Logged in. ← サーバーから応答がある。 次に、現在の情報?のコマンド stat +OK 5 6945929 ← サーバーから応答がある。 次に、保存されているリスト情報 list +OK 5 messages: ← サーバーから応答がある。 1 1428 2 6917160 3 16118 4 10360 5 863 . ← サーバーから応答がある。 上記の書式は、  メール番号 メールサイズ メールを読み込んでみる。書式は、  retr メール番号 retr 5 +OK 863 octets Return-Path: <server@lunq.net> X-Original-To: server@lunq.net Delivered-To: server@lunq.net Received: from localhost (ns1.lunq.net [127.0.0.1]) by ns1.lunq.net (Postfix) with ESMTP id 7175B7D0003 for <server@lunq.net>; Tue, 3 Feb 2009 21:38:56 +0900 (JST) X-Virus-Scanned: amavisd-new at lunq.net Received: from ns1.lunq.net ([127.0.0.1]) by localhost (ns.lunq.net [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id owY-iRKAwjUC for <server@lunq.net>; Tue, 3 Feb 2009 21:38:53 +0900 (JST) Received: from localhost (ns1.lunq.net [127.0.0.1]) by ns1.lunq.net (Postfix) with ESMTP id AC6617D0001 for <server@lunq.net>; Tue, 3 Feb 2009 21:38:28 +0900 (JST) Subject: smpt test Message-Id: <20090203123837.AC6617D0001@ns1.lunq.net> Date: Tue, 3 Feb 2009 21:38:28 +0900 (JST) From: server@lunq.net To: undisclosed-recipients:; Hi! This is test. Thank you. . 削除コマンドはこうです。書式は、  dele メール番号 dele 5 +OK Marked to be deleted. ← サーバーから応答がある。 サーバーからログアウトする。 quit +OK Logging out, messages deleted. Connection closed by foreign host. ← サーバーから応答がある。 一連の流れはこんな感じです。 ########################################################## # telnet localhost 110 Trying 127.0.0.1... Connected to localhost.localdomain (127.0.0.1). Escape character is '^]'. +OK Dovecot ready. user server +OK pass serverpassword +OK Logged in. stat +OK 5 6945929 list +OK 5 messages: 1 1428 2 6917160 3 16118 4 10360 5 863 . retr 5 +OK 863 octets Return-Path: <server@lunq.net> X-Original-To: server@lunq.net Delivered-To: server@lunq.net Received: from localhost (ns1.lunq.net [127.0.0.1]) by ns1.lunq.net (Postfix) with ESMTP id 7175B7D0003 for <server@lunq.net>; Tue, 3 Feb 2009 21:38:56 +0900 (JST) X-Virus-Scanned: amavisd-new at lunq.net Received: from ns1.lunq.net ([127.0.0.1]) by localhost (ns.lunq.net [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id owY-iRKAwjUC for <server@lunq.net>; Tue, 3 Feb 2009 21:38:53 +0900 (JST) Received: from localhost (ns1.lunq.net [127.0.0.1]) by ns1.lunq.net (Postfix) with ESMTP id AC6617D0001 for <server@lunq.net>; Tue, 3 Feb 2009 21:38:28 +0900 (JST) Subject: smpt test Message-Id: <20090203123837.AC6617D0001@ns1.lunq.net> Date: Tue, 3 Feb 2009 21:38:28 +0900 (JST) From: server@lunq.net To: undisclosed-recipients:; Hi! This is test. Thank you. . dele 5 +OK Marked to be deleted. quit +OK Logging out, messages deleted. Connection closed by foreign host. ########################################################## 以上です。分かりました?

Fedora10 PPTPクライアント



いろんなサイトで、PPTPサーバーの構築方法はあると思いますが、クライアント側がなかなかないので、構築した記録を書いときます。

1. まずVPN PPTPに必要なパッケージ、pptp-1.7.2-3.fc10.i386 をインストールする

※ 2008/12/14 現在

# yum -y install pptp

2. スクリプトファイルを作成する

PPTPクライアント用の設定ファイルを作成する

※ その都度接続する場合は
# vi /usr/bin/pptp-client

※ 自動起動する場合は
# vi /etc/rc.d/init.d/pptp-client

------------------------------ ここから ------------------------------

#!/bin/bash
#
# PPTP
# chkconfig: - 99 20
#
# description: PPTP service script

# Source function library.
. /etc/rc.d/init.d/functions

SERVER="pptpサーバー"		# 接続先のIPアドレス or ホスト名
USER="ユーザー名"		# PPTP用 ユーザー名
PASSWORD="パスワード"		# PPTP用 パスワード
HOSTNET="192.168.0.0"		# 接続先のネットワークアドレス
HOSTMASK="255.255.255.0"	# 接続先のネットマスク

RESOLVCONF="/etc/resolv.conf"
RESOLVCONFBAK="/tmp/resolv.conf.bak"

DEBUG="debug"
LOGLEVEL="2"

case "$1" in
    start)
        if [ -z "$(/sbin/pidof pptp)" ]; then
            echo -n "Starting pptpd..."
            if [ -f $RESOLVCONF ] ;then
              cp -p $RESOLVCONF $RESOLVCONFBAK
            fi

            /usr/sbin/pppd \
            $DEBUG lock noauth nodeflate nobsdcomp noccp \
            name $USER \
            password $PASSWORD \
            require-mppe \
            pty "/usr/sbin/pptp $SERVER --nolaunchpppd --loglevel $LOGLEVEL"

            sleep 5
            if [ ! -z "$(/sbin/pidof pptp)" ]; then
              route add -net $HOSTNET netmask $HOSTMASK dev ppp0
              echo -e "                                    [\033[32m  OK\033[0m  ]"
            else
              echo -e "                                    [\033[31m  NG\033[0m  ]"
            fi

            touch /var/lock/subsys/pptp
        else
            echo "pptpd allready running!!!"
        fi
        ;;
    stop)
        if [ -z "$(/sbin/pidof pptp)" ]; then
            echo "pptpd not running!!!"
        else
            echo -n "Shutting down pptpd..."
            /usr/bin/killall /usr/sbin/pptp
            if [ -f $RESOLVCONFBAK ] ;then
              cp -p $RESOLVCONFBAK $RESOLVCONF
            fi
            until [ -z "$(/sbin/pidof pptp)" ]; do :; done
            rm -f /var/lock/subsys/pptp
            echo -e "                               [\033[32m  OK\033[0m  ]"
        fi
        ;;
    status)
        if [ -z "$(/sbin/pidof pptp)" ]; then
            echo -e "pptpd not running...\n"
        else
            echo -e "pptpd is running... pid=[ \033[32m$(/sbin/pidof pptp)\033[0m ]\n"
        fi
        ;;
    version)
        echo -e "$(/usr/sbin/pptp --version)\n"
        ;;
    restart)
        $0 stop
        $0 start
        ;;
    *)
        echo -e "\nUsage: $0 {start|stop|restart|status|version}\n"
        exit 1
esac

exit 0

------------------------------ ここまで ------------------------------

PPTPクライアント用の設定ファイルに実行権を与える

※ その都度接続する場合は
# chmod +x /usr/bin/pptp-client

※ 自動起動する場合は
# chmod +x /etc/rc.d/init.d/pptp-client

# chkconfig --add pptp-client

# chkconfig pptp-client on

# chkconfig --list pptp-client
pptp-client    	0:off	1:off	2:on	3:on	4:on	5:on	6:off

3. PPTP接続

※ その都度接続する場合

オプション無しで開始してみる

# pptp-client
Usage: /usr/bin/pptp-client {start|stop|restart|status|version}

 ↑ヘルプが出る。

開始してみる

# pptp-client start
Starting pptpd...                                    [  OK  ]
#  ←プロンプトが帰ってきたことを確認

IPアドレスを確認する

# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:1E:90:D3:46:B1
          inet addr:xxx.xxx.xxx.xxx  Bcast:xxx.xxx.xxx.xxx  Mask:255.255.255.0
          inet6 addr: fe80::xxx:xxxx:xxxx:xxxx/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6271143 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6592528 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1963469937 (1.8 GiB)  TX bytes:312092375 (297.6 MiB)
          Interrupt:20 Base address:0x8c00 

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:1251500 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1251500 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:181020084 (172.6 MiB)  TX bytes:181020084 (172.6 MiB)

以下が追加されていることの確認

ppp0      Link encap:Point-to-Point Protocol
          inet addr:192.168.0.6  P-t-P:192.168.0.1  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:6 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:60 (60.0 b)  TX bytes:56 (56.0 b)

サーバー側のネットワーク内のPCにpingをとばしてみる

# ping -c 4 192.168.0.80
PING 192.168.0.80 (192.168.0.80) 56(84) bytes of data.
64 bytes from 192.168.0.80: icmp_seq=1 ttl=254 time=6.56 ms
64 bytes from 192.168.0.80: icmp_seq=2 ttl=254 time=6.04 ms
64 bytes from 192.168.0.80: icmp_seq=3 ttl=254 time=6.16 ms
64 bytes from 192.168.0.80: icmp_seq=4 ttl=254 time=5.92 ms

--- 192.168.0.80 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3009ms
rtt min/avg/max/mdev = 5.926/6.175/6.562/0.238 ms

↑ エラーが帰ってきていないことの確認。
これでつながった状態になっている。

# pptp-client status
pptpd is running... pid=[ 3677 3662 ]

# pptp-client version
pptp version 1.7.2

切断してみる

# pptp-client stop
Shutting down pptpd...                               [  OK  ]
#  ←プロンプトが帰ってきたことを確認

IPアドレスを確認する

# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:1E:90:D3:46:B1
          inet addr:xxx.xxx.xxx.xxx  Bcast:xxx.xxx.xxx.xxx  Mask:255.255.255.0
          inet6 addr: fe80::xxx:xxxx:xxxx:xxxx/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6271143 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6592528 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1963469937 (1.8 GiB)  TX bytes:312092375 (297.6 MiB)
          Interrupt:20 Base address:0x8c00 

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:1251500 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1251500 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:181020084 (172.6 MiB)  TX bytes:181020084 (172.6 MiB)

 ↑ ppp0 がなくなっている

サーバー側のネットワーク内のPCにpingをとばしてみる

# ping -c 4 192.168.0.80
PING 192.168.0.80 (192.168.0.80) 56(84) bytes of data.

--- 192.168.0.80 ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 12999ms

↑ エラーが帰ってきていることの確認。
これで切断された状態になっている。

以上です。

Fedora10 インストール



Fedora10 インストール
IIJ 」 のFTPサイトからディスクイメージをダウンロードする。↓
 http://ftp.iij.ad.jp/pub/linux/fedora/releases/10/Fedora/i386/iso/Fedora-10-i386-netinst.iso
ダウンロードしたイメージファイルをCDに書き込む。 書き込むソフトはおのおの選択してください。
DeepBurnerとかは無料なのでお勧めです。
VMware系にインストールするのであれば、 「 DAEMON Tools 」 等を使用して
仮想CDでマウントさせておくという事もできますし、
設定ファイルを以下のように書き換えてもいけます。

# ----- CD-ROM Drive -----
ide1:0.present = "true"
#ide1:0.fileName = "auto detect"
#ide1:0.deviceType = "atapi-cdrom"
#ide1:0.fileName = "linux.iso"
ide1:0.fileName = "boot.iso"
ide1:0.deviceType = "cdrom-image"

書き込みが終われば、そのCDをfedora10をインストールするマシンの
CD-ROM、もしくはDVD-ROMにセットして起動させます。
ちなみに当サイトは、VMware Player(Ver.2.5) にインストールしました。

インストール起動画面

上の画面が出てきたら、「 Enter 」 を押す。



上の画面が出てきたら、一番上を選んで 「 Enter 」 を押す。

すると、こんなのが出てくる。



インストールメディアをチェックしますか?みたいなメッセージですので、
「 Skip 」 を押す。



上記画面が出てきたら、「 Next 」 を押す。

Japanese(日本語) 」 を選択し、
「 Next 」 を押す。

Japanese 」 を選択して、
「 次(N) 」 を押す。

インストール(I) Fedora 」 を選択して、
「 次(N) 」 を押す。
※ アップグレードは、お勧めしません。後々の設定が結構大変だと思いますので。

ホスト名: 」 を適切な名前を入力して、
「 次(N) 」 を押す。



毎回なんですが、「 システムクロックで UTC を使用 」 のチェックをはずします。で、
「 次(N) 」 を押す。

ルートパスワード (P) : 」 を入力して、
「 確認 (C) : 」 を入力して、
「 次(N) 」 を押す。



インストールするパーティションを指定します。当サイトは、
「 選択したドライブ上のすべての・・・ 」 を選択しましたが、
※ 必要に応じて、選択してください。
( Windows と、デュアルブートとかの場合は、上記設定でインストールすると Windows は消えますよ! )次(N) 」 を押す。

変更をディスクに書き込む (W) 」 を押す。



ネットワークの設定です。固定アドレスにする場合は、
「 動的 IP 設定 (DHCP) を・・・(N) 」 のチェックをはずして、
アドレスを指定します。
「 OK(O) 」 を押す。



デフォルトでは、「 オフィスとプロダクティビティ 」 にチェックが入っていますが、
サーバー環境であれば必要ないと思います。
必要に応じてチェックしてください。

「 今すぐカスタマイズする(C) 」 を選択して、
「 次(N) 」 を押す。



追加するパッケージを選択する画面です。必要に応じて、チェックを入れましょう。
後で何をインストールをするのか分かりませんので、
左側の、「 開発 」 を選択して、
右側の、「 開発ツール 」「 開発ライブラリ 」 は、選択しておきましょう。
※ ただインターネットとメールだけとかの場合はいらないと思いますが、一応・・・。次(N) 」 を押す。



上画面がインストール中の画面です。



上画面がインストール完了画面です。
ちなみに、VMWare にCD-Imageでインストールすると、CDを取り出そうとして、なんかメッセージが出てきます。
その場合は、「 NO 」 を選択しましょう。
すると上画面が出てきます。
間違って、「 OK 」 を押すと、ロックしてしまい最悪の状態になりますよ。



上画面が起動時の画面です。プレビュー版もそうでしたが、
何が起動しているかわからなくなりましたね。



で、相変わらずの「 ようこそ 」 画面です。
「 進む(F) 」 を押します。



また、「 進む(F) 」 を押します。

ユーザーの作成 」 です。
管理用のユーザーを作るので、適当な名前と、パスワードを入力して、
「 進む(F) 」 を押します。



日付と時間を指定して、「 進む(F) 」 を押します。

プロフィールを送信しない(D) 」 を選択して、
「 終了(F) 」 を押します。

いいえ、送信しません(F) 」 を押します。



上画面が、ログイン画面です。ログインしてみましょう。



上画面が、GNOME です。ちなみに何もせずに、インターネットはつながりました。



こちらは、LXDE です。こちらも、なにもせずに、インターネットにつながりました。
GNOME よりは、軽い気がします。見た目も Windows チックな感じでとっつきやすいです。

いじょうで、インストールは終了です。

そのうち、設定編を作成します。

Fedora9 PPTPクライアント



いろんなサイトで、PPTPサーバーの構築方法はあると思いますが、クライアント側がなかなかないので、構築した記録を書いときます。

1. まずVPN PPTPに必要なパッケージ、pptp-1.7.1-4.fc9.i386、pptpconfig(GUI設定ツール)をインストールする

※ 2008/11/12 現在

# yum -y install pptp

ここからはGUI用のパッケージです。
コマンド環境では必要ないと思います。
ので、その下の [ 2. スクリプトの作成 ] へ。

※ 当サイトでは入れてしまいましたが。もし上だけで無理でしたら一応入れてみてください。

# yum -y install gtk+

# yum -y install libglade

# wget http://pptpclient.sourceforge.net/yum/stable/fc9/i386/pptpconfig-20060821-1.fc9.noarch.rpm

# wget http://pptpclient.sourceforge.net/yum/stable/fc9/i386/php4-pcntl-4.4.9-1.fc9.i386.rpm

# wget http://pptpclient.sourceforge.net/yum/stable/fc9/i386/php4-pcntl-gtk-1.0.2-4.fc9.i386.rpm

# rpm -ivh php4-pcntl-4.4.9-1.fc9.i386.rpm

# rpm -ivh php4-pcntl-gtk-1.0.2-4.fc9.i386.rpm

# rpm -ivh pptpconfig-20060821-1.fc9.noarch.rpm

2. スクリプトファイルを作成する

PPTPクライアント用の設定ファイルを作成する
# vi /usr/bin/pptp-client

------------------------------ ここから ------------------------------

#!/bin/sh

SERVER="接続先サーバ"       # 接続先のIPアドレス or ホスト名
USER="ユーザ名"             # PPTP用 ユーザー名
PASSWORD="パスワード"       # PPTP用 パスワード
HOSTNET="192.168.0.0"       # 接続先のネットワークアドレス
HOSTMASK="255.255.255.0"    # 接続先のネットマスク

RESOLVCONF="/etc/resolv.conf"
RESOLVCONFBAK="/tmp/resolv.conf.bak"

DEBUG="debug"
LOGLEVEL="2"

case "$1" in
start)
  if [ -z $(/sbin/pidof pptp) ];  then
        echo -n "Starting pptp-client"

    if [ -f $RESOLVCONF ] ;then
      cp -p $RESOLVCONF $RESOLVCONFBAK
    fi

    /usr/sbin/pppd \
    $DEBUG lock noauth nodeflate nobsdcomp noccp \
    name $USER \
    password $PASSWORD \
    require-mppe \
    pty "/usr/sbin/pptp $SERVER --nolaunchpppd --loglevel $LOGLEVEL"

    sleep 10

    route add -net $HOSTNET netmask $HOSTMASK dev ppp0
    echo
  else
    echo "pptp-client is already started"
  fi

;;

stop)
  if [ ! -z $(/sbin/pidof pptp) ];  then
    echo -n "Shutting down pptp-client"
    /usr/bin/killall pptp
    if [ -f $RESOLVCONFBAK ] ;then
      cp -p $RESOLVCONFBAK $RESOLVCONF
    fi
    echo
  else
    echo "pptp-client is not running"
  fi
;;

restart)
  if [ ! -z $(/sbin/pidof pptp) ];  then
    echo -n "Shutting down pptp-client"
    /usr/bin/killall pptp
    if [ -f $RESOLVCONFBAK ] ;then
      cp -p $RESOLVCONFBAK $RESOLVCONF
    fi
    echo
  else
    echo "pptp-client is not running"
  fi
  if [ -z $(/sbin/pidof pptp) ];  then
    echo -n "Starting pptp-client"
    if [ -f $RESOLVCONF ] ;then
      cp -p $RESOLVCONF $RESOLVCONFBAK
    fi

    /usr/sbin/pppd \
    $DEBUG lock noauth nodeflate nobsdcomp noccp \
    name $USER \
    password $PASSWORD \
    require-mppe \
    pty "/usr/sbin/pptp $SERVER --nolaunchpppd --loglevel $LOGLEVEL"

    sleep 10

    route add -net $HOSTNET netmask $HOSTMASK dev ppp0
    echo
  else
    echo "pptp-client is already started"
  fi
;;

status)
        if [ ! -z $(/sbin/pidof pptp) ] ;  then
            echo -n "pptp-client (pid"
            echo -n " `/sbin/pidof pptp`"
            echo ") is running..."
        else
            echo "pptp-client is stopped"
        fi
;;

*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
;;

esac

exit 0

------------------------------ ここまで ------------------------------

PPTPクライアント用の設定ファイルに実行権を与える
# chmod +x /usr/bin/pptp-client

3. PPTP接続

オプション無しで開始してみる

# pptp-client
Usage: /usr/bin/pptp-client {start|stop|restart|status}

 ↑ヘルプが出る。

開始してみる

# pptp-client start
Starting pptp-client
#  ←プロンプトが帰ってきたことを確認

IPアドレスを確認する

# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:1E:90:D3:46:B1
          inet addr:xxx.xxx.xxx.xxx  Bcast:xxx.xxx.xxx.xxx  Mask:255.255.255.0
          inet6 addr: fe80::xxx:xxxx:xxxx:xxxx/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6271143 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6592528 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1963469937 (1.8 GiB)  TX bytes:312092375 (297.6 MiB)
          Interrupt:20 Base address:0x8c00 

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:1251500 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1251500 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:181020084 (172.6 MiB)  TX bytes:181020084 (172.6 MiB)

以下が追加されていることの確認

ppp0      Link encap:Point-to-Point Protocol
          inet addr:192.168.0.6  P-t-P:192.168.0.1  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:6 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:60 (60.0 b)  TX bytes:56 (56.0 b)

サーバー側のネットワーク内のPCにpingをとばしてみる

# ping -c 4 192.168.0.80
PING 192.168.0.80 (192.168.0.80) 56(84) bytes of data.
64 bytes from 192.168.0.80: icmp_seq=1 ttl=254 time=6.56 ms
64 bytes from 192.168.0.80: icmp_seq=2 ttl=254 time=6.04 ms
64 bytes from 192.168.0.80: icmp_seq=3 ttl=254 time=6.16 ms
64 bytes from 192.168.0.80: icmp_seq=4 ttl=254 time=5.92 ms

--- 192.168.0.80 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3009ms
rtt min/avg/max/mdev = 5.926/6.175/6.562/0.238 ms

↑ エラーが帰ってきていないことの確認。
これでつながった状態になっている。

切断してみる

# pptp-client stop
Shutting down pptp-client
#  ←プロンプトが帰ってきたことを確認

IPアドレスを確認する

# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:1E:90:D3:46:B1
          inet addr:xxx.xxx.xxx.xxx  Bcast:xxx.xxx.xxx.xxx  Mask:255.255.255.0
          inet6 addr: fe80::xxx:xxxx:xxxx:xxxx/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6271143 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6592528 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1963469937 (1.8 GiB)  TX bytes:312092375 (297.6 MiB)
          Interrupt:20 Base address:0x8c00 

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:1251500 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1251500 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:181020084 (172.6 MiB)  TX bytes:181020084 (172.6 MiB)

 ↑ ppp0 がなくなっている

サーバー側のネットワーク内のPCにpingをとばしてみる

# ping -c 4 192.168.0.80
PING 192.168.0.80 (192.168.0.80) 56(84) bytes of data.

--- 192.168.0.80 ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 12999ms

↑ エラーが帰ってきていることの確認。
これで切断された状態になっている。

以上です。

GUI環境の場合は、

# pptpconfig

で、設定画面が現れるので

① Linux VPN v0.30Fedora Core 4でYAMAHAルータにPPTPアクセス
 ↑ この辺を参考に


次ページへ »