このブログを検索

この記事の内容は、個人の見解、検証の範囲のものであり、誤りがある可能性があります。
個人の責任において情報活用をお願いします。


2018年3月29日木曜日

【VyOS】VyOSでWebプロキシサーバーを設定してみた その2 ホワイトリストを試してみた


だいぶ時間が経ってしまいましたが、私が検証でよく使うVyOSを使ったWebプロキシをいろいろと試してみたいと思います。

~VyOSでWebプロキシを設定してみた~
1.Webプロキシを試してみた
2.ホワイトリストを試してみた ← 今回



前回はVyOSにWebプロキシを設定し、Webプロキシが利用できることを確認しました。
今回はホワイトリストを設定して許可したドメイン以外へアクセスできないことを確認します。
今回は下記ドメインへのアクセスは許可し、他のドメインはすべて拒否します。

<許可ドメイン>
  • yahoo.co.jp
  • www.blogger.com
  • google.com
  • techblog-cidept.blogspot.jp
  • google.co.jp
以下のコマンドを設定します。

set service webproxy url-filtering squidguard default-action 'block'
set service webproxy url-filtering squidguard local-ok 'yahoo.co.jp'
set service webproxy url-filtering squidguard local-ok 'www.blogger.com'
set service webproxy url-filtering squidguard local-ok 'google.com'
set service webproxy url-filtering squidguard local-ok 'techblog-cidept.blogspot.jp'
set service webproxy url-filtering squidguard local-ok 'google.co.jp'
VyOSでWebプロキシを有効にするには、以下のコマンドを設定します。

set service webproxy default-port '3128'
set service webproxy listen-address 192.168.129.133 port '3128'
ブラウザのプロキシをVyOSに設定し、実際に動作を確かめます。
ブラウザからYahoo!JAPANのWebサイトへアクセスします。


ページは表示されましたが、画像などは表示されません。
ブラウザの機能を利用して、ページのソースを表示を確認します。


yimg.jpから画像などのコンテンツを取得しているようです。
VyOSに設定を追加します。

set service webproxy url-filtering squidguard local-ok yimg.jp
commit
今度は画像や広告を含め正常にページが表示されました。


許可したドメインのWebサイトに設定されているリンク先ドメインがVyOSプロキシの許可リストに含まれていない場合、ページは表示されません。Yahoo!JAPAN上のFacebookページへのリンクをクリックすると、下記のように表示されます。


Yahoo天気などVyOSに登録したドメインと一致していれば下記のようにWebサイトを表示できます。


今回は、VyOSのWebプロキシでホワイトリストを設定し確認しました。
『set service webproxy url-filtering squidguard default-action 'block'』コマンドでホワイトリストに設定していない通信を全て拒否し、『set service webproxy url-filtering squidguard local-ok』コマンドで閲覧を許可するドメインを設定しました。
最近ではWebサイトで表示するコンテンツの一部をAWSS3などクラウド上のオブジェクトストレージから取得してホームページを形成しているサイトが多くなっています。そのため、Webプロキシをホワイトリストで設定したい場合、表示したいサイトのソースを確認する必要があります。次回は、ブラックリストを設定します。今回の全体Configは下記となります。参考まで。

vyos@vyos# run show configuration commands
set interfaces ethernet eth0 address 'dhcp'
set interfaces ethernet eth0 duplex 'auto'
set interfaces ethernet eth0 hw-id '00:0c:29:02:82:5f'
set interfaces ethernet eth0 smp_affinity 'auto'
set interfaces ethernet eth0 speed 'auto'
set interfaces ethernet eth1 address '10.0.0.1/24'
set interfaces ethernet eth1 duplex 'auto'
set interfaces ethernet eth1 hw-id '00:0c:29:02:82:69'
set interfaces ethernet eth1 smp_affinity 'auto'
set interfaces ethernet eth1 speed 'auto'
set interfaces loopback 'lo'
set nat source rule 1 description 'Internal-to-External-NAPT'
set nat source rule 1 outbound-interface 'eth0'
set nat source rule 1 source address '10.0.0.0/8'
set nat source rule 1 translation address 'masquerade'
set service dhcp-server disabled 'false'
set service dhcp-server shared-network-name dhcp-pool-1 authoritative 'disable'
set service dhcp-server shared-network-name dhcp-pool-1 description 'lab-1-dhcp'
set service dhcp-server shared-network-name dhcp-pool-1 subnet 10.0.0.0/24 default-router '10.0.0.1'
set service dhcp-server shared-network-name dhcp-pool-1 subnet 10.0.0.0/24 dns-server '10.0.0.1'
set service dhcp-server shared-network-name dhcp-pool-1 subnet 10.0.0.0/24 domain-name 'lab.local'
set service dhcp-server shared-network-name dhcp-pool-1 subnet 10.0.0.0/24 domain-search 'lab.local'
set service dhcp-server shared-network-name dhcp-pool-1 subnet 10.0.0.0/24 lease '86400'
set service dhcp-server shared-network-name dhcp-pool-1 subnet 10.0.0.0/24 start 10.0.0.64 stop '10.0.0.223'
set service dhcp-server shared-network-name dhcp-pool-1 subnet 10.0.0.0/24 static-route destination-subnet '172.16.0.0/24'
set service dhcp-server shared-network-name dhcp-pool-1 subnet 10.0.0.0/24 static-route router '10.0.0.2'
set service dns forwarding cache-size '150'
set service dns forwarding listen-on 'eth0'
set service dns forwarding listen-on 'eth1'
set service dns forwarding name-server '8.8.8.8'
set service ssh port '22'
set service webproxy default-port '3128'
set service webproxy listen-address 192.168.129.133 port '3128'
set service webproxy url-filtering squidguard default-action 'block'
set service webproxy url-filtering squidguard local-ok 'yahoo.co.jp'
set service webproxy url-filtering squidguard local-ok 'www.blogger.com'
set service webproxy url-filtering squidguard local-ok 'google.com'
set service webproxy url-filtering squidguard local-ok 'techblog-cidept.blogspot.jp'
set service webproxy url-filtering squidguard local-ok 'google.co.jp'
set service webproxy url-filtering squidguard local-ok 'yimg.jp'
set system config-management commit-revisions '20'
set system console device ttyS0 speed '9600'
set system host-name 'vyos'
set system login user vyos authentication encrypted-password '$1$[password]'
set system login user vyos authentication plaintext-password ''
set system login user vyos level 'admin'
set system name-server '8.8.8.8'
set system name-server '8.8.4.4'
set system ntp server 'ntp.nict.jp'
set system package auto-sync '1'
set system package repository community components 'main'
set system package repository community distribution 'helium'
set system package repository community password ''
set system package repository community url 'http://packages.vyos.net/vyos'
set system package repository community username ''
set system syslog global facility all level 'notice'
set system syslog global facility protocols level 'debug'
set system time-zone 'Asia/Tokyo'
[edit]
vyos@vyos#
[edit]
vyos@vyos# run show version
Version:      VyOS 1.1.8
Description:  VyOS 1.1.8 (helium)
Copyright:    2017 VyOS maintainers and contributors
Built by:     maintainers@vyos.net
Built on:     Sat Nov 11 13:44:36 UTC 2017
Build ID:     1711111344-b483efc
System type:  x86 64-bit
Boot via:     image
Hypervisor:   VMware
HW model:     VMware Virtual Platform
HW S/N:       VMware-56 4d ae 3d f9 2d 50 57-ff 4a 2f 72 c5 02 82 5f
HW UUID:      564DAE3D-F92D-5057-FF4A-2F72C502825F
Uptime:       01:14:59 up 1 day,  3:03,  2 users,  load average: 0.08, 0.03, 0.05

[edit]
vyos@vyos#
[edit]
vyos@vyos# ip addr
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0:  mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:02:82:5f brd ff:ff:ff:ff:ff:ff
    inet 192.168.129.133/24 brd 192.168.129.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe02:825f/64 scope link
       valid_lft forever preferred_lft forever
3: eth1:  mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:02:82:69 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.1/24 brd 10.0.0.255 scope global eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe02:8269/64 scope link
       valid_lft forever preferred_lft forever
[edit]
vyos@vyos#