このブログを検索

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


2018年3月29日木曜日

【VyOS】VyOSでWebプロキシサーバーを設定してみた その3 ブラックリストを利用してみよう 準備編 その1


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

~VyOSでWebプロキシを設定してみた~
1.Webプロキシを試してみた
2.ホワイトリストを試してみた
3.ブラックリストを試してみた 
  準備編 その1:ブラックリストをダウンロード ←今回



今回から数回に渡り、Webプロキシのブラックリストを試してみます。
今回は準備編です。VyOSに手動でブラックリストを設定することもできますが、用意されているブラックリストファイルをダウンロードして利用することもできます。今回は、用意されているブラックリストファイルをダウンロードしてVyOSでブラックリストを利用できるようにします。ダウンロードは以下のコマンドを実行します。

update webproxy blacklists
実際に実行すると下記のようにブラックリストのファイルがダウンロードされ、VyOSに展開されます。
ファイルはヨーロッパにある大学のFTPサーバーからダウンロードされます。

vyos@vyos:~$ update webproxy blacklists
Would you like to re-download the blacklist? [confirm][y]
Connecting to ftp.univ-xxxx.xx (xxx.xx.xx.xxx:21)
blacklists.gz        100% |**********************************************************| 10858k 00:00:00 ETA
Uncompressing blacklist...
Checking permissions...
Skip link for   [ads] -> [publicite]
Building DB for [adult/domains] - 1926933 entries
Building DB for [adult/urls] - 67608 entries
Skip link for   [aggressive] -> [agressif]
Building DB for [agressif/domains] - 324 entries
Building DB for [agressif/urls] - 36 entries
Building DB for [arjel/domains] - 69 entries
Building DB for [associations_religieuses/domains] - 1 entries
Building DB for [astrology/domains] - 28 entries
Building DB for [astrology/urls] - 1 entries
Building DB for [audio-video/domains] - 3237 entries
Building DB for [audio-video/urls] - 162 entries
Building DB for [bank/domains] - 1698 entries
Building DB for [bitcoin/domains] - 252 entries
Building DB for [bitcoin/urls] - 3 entries
Building DB for [blog/domains] - 1469 entries
Building DB for [blog/urls] - 2 entries
Building DB for [celebrity/domains] - 636 entries
Building DB for [celebrity/urls] - 39 entries
Building DB for [chat/domains] - 213 entries
Building DB for [chat/urls] - 17 entries
Building DB for [child/domains] - 68 entries
Building DB for [child/urls] - 2 entries
Building DB for [cleaning/domains] - 170 entries
Building DB for [cleaning/urls] - 3 entries
Building DB for [cooking/domains] - 16 entries
Building DB for [cryptojacking/domains] - 2522 entries
Building DB for [dangerous_material/domains] - 28 entries
Building DB for [dangerous_material/urls] - 21 entries
Building DB for [dating/domains] - 3563 entries
Building DB for [dating/urls] - 10 entries
Building DB for [ddos/domains] - 232 entries
Building DB for [download/domains] - 51 entries
Building DB for [download/urls] - 15 entries
Building DB for [drogue/domains] - 591 entries
Building DB for [drogue/urls] - 464 entries
Skip link for   [drugs] -> [drogue]
Building DB for [educational_games/domains] - 8 entries
Building DB for [educational_games/urls] - 2 entries
Building DB for [filehosting/domains] - 825 entries
Building DB for [filehosting/urls] - 8 entries
Building DB for [financial/domains] - 79 entries
Building DB for [financial/urls] - 1 entries
Building DB for [forums/domains] - 189 entries
Building DB for [forums/urls] - 20 entries
Building DB for [gambling/domains] - 1116 entries
Building DB for [gambling/urls] - 4 entries
Building DB for [games/domains] - 9557 entries
Building DB for [games/urls] - 1592 entries
Building DB for [hacking/domains] - 268 entries
Building DB for [hacking/urls] - 33 entries
Building DB for [jobsearch/domains] - 385 entries
Building DB for [lingerie/domains] - 65 entries
Building DB for [lingerie/urls] - 6 entries
Building DB for [liste_blanche/domains] - 239 entries
Building DB for [liste_blanche/urls] - 2 entries
Building DB for [liste_bu/domains] - 2743 entries
Building DB for [liste_bu/urls] - 94 entries
Building DB for [local-ok-default/domains] - 1 entries
Building DB for [local-ok-url-default/urls] - 1 entries
Skip link for   [mail] -> [forums]
Building DB for [malware/domains] - 3478 entries
Building DB for [malware/urls] - 11365 entries
Building DB for [malware/expressions] - 1 entries
Building DB for [manga/domains] - 542 entries
Building DB for [manga/urls] - 194 entries
Building DB for [marketingware/domains] - 819 entries
Building DB for [marketingware/urls] - 2 entries
Building DB for [mixed_adult/domains] - 145 entries
Building DB for [mixed_adult/urls] - 7 entries
Building DB for [mobile-phone/domains] - 44 entries
Building DB for [mobile-phone/urls] - 2 entries
Building DB for [phishing/domains] - 63502 entries
Building DB for [phishing/urls] - 6 entries
Skip link for   [porn] -> [adult]
Building DB for [press/domains] - 4451 entries
Building DB for [press/urls] - 1 entries
Skip link for   [proxy] -> [redirector]
Building DB for [publicite/domains] - 1123 entries
Building DB for [publicite/urls] - 306 entries
Building DB for [publicite/expressions] - 1 entries
Building DB for [radio/domains] - 484 entries
Building DB for [radio/urls] - 10 entries
Building DB for [reaffected/domains] - 7 entries
Building DB for [reaffected/urls] - 1 entries
Building DB for [redirector/domains] - 129148 entries
Building DB for [redirector/urls] - 292 entries
Building DB for [remote-control/domains] - 41 entries
Building DB for [remote-control/urls] - 1 entries
Building DB for [sect/domains] - 143 entries
Building DB for [sect/urls] - 1 entries
Building DB for [sexual_education/domains] - 11 entries
Building DB for [sexual_education/urls] - 8 entries
Building DB for [shopping/domains] - 36401 entries
Building DB for [shopping/urls] - 3 entries
Building DB for [shortener/domains] - 262 entries
Building DB for [social_networks/domains] - 641 entries
Building DB for [social_networks/urls] - 1 entries
Building DB for [special/domains] - 1 entries
Building DB for [special/expressions] - 1 entries
Building DB for [sports/domains] - 2277 entries
Building DB for [strict_redirector/domains] - 129148 entries
Building DB for [strict_redirector/urls] - 21 entries
Building DB for [strict_redirector/expressions] - 1 entries
Building DB for [strong_redirector/domains] - 129148 entries
Building DB for [strong_redirector/urls] - 21 entries
Building DB for [strong_redirector/expressions] - 1 entries
Building DB for [translation/domains] - 166 entries
Building DB for [translation/urls] - 4 entries
Building DB for [tricheur/domains] - 27 entries
Building DB for [tricheur/urls] - 19 entries
Building DB for [update/domains] - 5 entries
Skip link for   [violence] -> [agressif]
Building DB for [warez/domains] - 885 entries
Building DB for [warez/urls] - 14 entries
Building DB for [webmail/domains] - 332 entries
Building DB for [webmail/urls] - 9 entries

The webproxy daemon must be restarted
Would you like to restart it now? [confirm][y]
Restarting Squid HTTP Proxy 3.x: squid3 Waiting.....................done.
.
vyos@vyos:~$
ダウンロードしたブラックリストには何が含まれているのか確認します。
まず、VyOSでブラックリストを確認するコマンドを確認します。
vyos@vyos:~$ show webproxy blacklist まで入力しタブキーを押します。

vyos@vyos:~$ show webproxy blacklist 
Possible completions:
  categories    Show webproxy blacklist categories
  domains       Show webproxy blacklist domains
  log           Show contents of webproxy blacklist log
  search        Show webproxy blacklist search
  urls          Show webproxy blacklist urls


vyos@vyos:~$

ブラックリストのカテゴリ、ドメイン、ログ、検索、URLを確認できるようです。
今回は、カテゴリーを確認します。下記コマンドを実行します。

show webproxy blacklist categories
下記カテゴリを利用できることが確認できます。

vyos@vyos:~$ show webproxy blacklist categories
ads
adult
aggressive
agressif
arjel
associations_religieuses
astrology
audio-video
bank
bitcoin
blog
celebrity
chat
child
cleaning
cooking
cryptojacking
dangerous_material
dating
ddos
dialer
download
drogue
drugs
educational_games
filehosting
financial
forums
gambling
games
hacking
jobsearch
lingerie
liste_blanche
liste_bu
local-ok-default
local-ok-url-default
mail
malware
manga
marketingware
mixed_adult
mobile-phone
phishing
porn
press
proxy
publicite
radio
reaffected
redirector
remote-control
sect
sexual_education
shopping
shortener
social_networks
special
sports
strict_redirector
strong_redirector
translation
tricheur
update
violence
warez
webmail
vyos@vyos:~$
どんなカテゴリを利用できるのかわかりました。
では、カテゴリにはどんなドメインが入っているのか?
次回、確認してみます。それでは。

【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#