と、いつもの素人発想の(今更CentOS6?)思いつき「やってみた」私的備忘録です(m_m)
関係ないですが・・・Windows10のAnniversary Updateして、WSL(BASH)入れたらいつのまにか、サービスにSSHサーバーが・・・。netstat -a | findstr LISTEN したら、22番ポートが立ち上がってるやんけ!しかも全解放状態で(笑) ググったらWindows10を開発者モードにするとSSHdがインストール?されるみたい・・・とほほ。とりあえずサービス無効にした。でも、こういうのちゃんと通知してくれないと・・・ある意味公式のバックドアやん・・・。まぁ、開発者モードだから文句は言えないか・・・。
本題です。
社内で割り当てられたIPアドレスは3つで、
- 社内業務用PC(グループウェアとかメールとか専用・ガチガチにセキュリティ高め&監視対象)のWindows7
- 開発用のメインPC(Windows10) Windows Defenderのみ
- 検証用のサーバー(CentOS6.7)
Surface3でOneNoteをメモ帳代わりに常時使っているので、ちょっと前までは、メインPCのWindowsに、APモードで利用できるUSBドングルタイプの無線LAN子機をつけて通信させていました。内緒だけど(^^;
で、8/3のAnniversary Updateで、このUSBドングルの無線LAN子機のドライバがサポート外になったのか、APモードにすると設定画面が消えてしまい正常に繋げなくなりました。ドライバのバージョンアップを待っているのですが、どうも対応しなそうな感じ・・・。環境依存で何かエラーになってるのかなー?と思いつつ原因が分からず。とりあえず、ドライバのバージョンアップを気長に待ってみたい。
で、やっぱり社内LANに接続できないと、不便・・・ってことで、検証用のサーバーにクロスケーブルで接続させてCentOSをルーター代わりにしてNATすりゃいいや、と思い、以下の構成でとりあえずやってみる。
検証用サーバーにもSurface3にも余っているLAN口がないので・・・バッファローのUSB-NICを二つ買ってきてクロスケーブルで繋ぐ。思ったんだけど、わざわざクロスケーブル買う必要なかったかもしれない・・・最近のNICってケーブルの種類を自動認識するし。
Surface3に接続させたUSB3-NICは自動認識ですぐにリンクアップ完了。IPアドレスを10.0.0.2と指定。準備完了。
CentOS側は・・・USB2-NICは自動認識するも、やっぱり手動設定させなければ・・・めんどっちーな・・・。
まずはMACアドレス確認。(下記MACアドレスは実際の値ではありません。ご了承のほど)
# dmesg | tail Slow work thread pool: Ready usb 2-2: new high speed USB device number 2 using ehci_hcd usb 2-2: New USB device found, idVendor=0b95, idProduct=7720 usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 usb 2-2: Product: AX88772 usb 2-2: Manufacturer: ASIX Elec. Corp. usb 2-2: SerialNumber: 228729 usb 2-2: configuration #1 chosen from 1 choice asix 2-2:1.0: eth1: register 'asix' at usb-0000:00:1d.7-2, ASIX AX88772 USB 2.0 Ethernet, aa:bb:cc:dd:ee:ff usbcore: registered new interface driver asix
フムフム、ちゃんとeth1として認識してますな。ドライバは既に入ってんすね。ラクショー・ラクショー。MACアドレス(aa:bb:cc:dd:ee:ff)をコピーして、
設定ファイルをコピーして適当に修正後、リンクアップして確認・・・。
# cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth1 # vi /etc/sysconfig/network-scripts/ifcfg-eth1 (ここでMACとかGATEWAYとかIPとかUUIDとか修正) (UUIDは /usr/bin/uuidgen で。) (リンクアップして確認する) # ifup eth1 Determining if ip address 10.0.0.1 is already in use for device eth1... # ifconfig eth0 Link encap:Ethernet HWaddr 11:22:33:44:55:66 inet addr:192.168.1.101 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:178189 errors:0 dropped:0 overruns:0 frame:0 TX packets:144306 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:128726184 (122.7 MiB) TX bytes:49793405 (47.4 MiB) Interrupt:16 eth1 Link encap:Ethernet HWaddr aa:bb:cc:dd:ee:ff inet addr:10.0.0.1 Bcast:10.0.0.255 Mask:255.255.255.0 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:76 errors:0 dropped:0 overruns:0 frame:0 TX packets:76 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:8996 (8.7 KiB) TX bytes:8996 (8.7 KiB)
ここで一旦クロスケーブルで接続して、Surface3側からpingしてみると、ちゃんと開通。
とりあえず、CentOS(eth1:10.0.0.1)とSurface3(10.0.0.2)の接続完了。
このままだと、社内LAN(192.168.1.0/24)にはパケットが飛ばないので、ここからNATの設定を試みる。
とりあえず、教科書どおりにやってみる。
# vi /etc/sysctl.conf (net.ipv4.ip_forward = 1 に修正:異なるNIC間の転送を許可する。) (設定を有効化) # sysctl -p (10.0.0.0/24のパケットを社内LANに繋がっているNICにNATして流す.用語の使い方間違ってます(m_m) # iptables -t nat -A POSTROUTING -o eth0 -s 10.0.0.0/24 -j MASQUERADE (surface3からのパケットを社内LANへそのまま転送許可する。 # iptables -I FORWARD 1 -i eth1 -o eth0 -s 10.0.0.0/24 -j ACCEPT # iptables -I FORWARD 1 -m state --state ESTABLISHED,RELATED -j ACCEPT
ここでsurface3側から開発者用PC(192.168.1.102)にpingを打ってみると、ちゃんとパケットが到達。
この状態で、surface3の通知エリアにあるネットワークアイコンを見ると、ビックリマークが消え、インターネットアクセスに変わってます。一応surface3のEdgeで会社のホームページを見てみる。\(^O^)/
オールOK。設定を保存。
# service iptables save iptables: ファイアウォールのルールを /etc/sysconfig/iptables に保存中: [ OK ] (ここでiptablesを再起動) # service iptables restart iptables: チェインをポリシー ACCEPT へ設定中nat filter [ OK ] iptables: ファイアウォールルールを消去中: [ OK ] iptables: モジュールを取り外し中:[ OK ] iptables: ファイアウォールルールを適用中: [ OK ] iptables: 追加のモジュールを読み込み中:nf_conntrack_ftp nf_conntrack_netbios_ns [ OK ]
ってなわけで、CentOSの簡易ルーター化完了。
本当は、このUSB2-NICがCentOSマシンに接続された時だけ、上記手順をスクリプト化したファイルを実行させたり、USB2-NICが取り外された時に元の状態に戻すスクリプトを実行させたりしたいのですが、USB2-NICの接続状態を監視したりする方法とか、そういうのはどうやるんだろう・・・?
また暇になったら調べてみようっと。