yahoo.comとすべてのサブドメインへのアクセスを制限する必要がありますelinks
。イカを使う必要がありました。
答え1
あなたはそれを使用することができます
acl my_network src 192.168.0.0/16 # RFC1918 possible internal network
acl block_yahoo dstdomain .yahoo.com
http_access deny my_network block_yahoo
http_access allow my_network
http_access deny all
"/etc/squid/squid.conf"に上記の行を追加したら、次のコマンドを実行してイカ設定を再ロードします。
squid -k reconfigure
引用するこのリンクより多くの情報を知りたい場合
答え2
2つのイーサネットカードを使用したイカインターネットフィルタリング
ここでは、Centos 6.5をSquidサーバーとして使用します。
イーサネットカードが2枚あります。
192.168.1.0/24がISPルーター@ 192.168.1.1に接続され、IP 192.168.1.15が割り当てられているeth0
eth1、ネットワークは198.168.0.0/24ローカルネットワークのDHCPサーバー、または固定IPの192.168.0.15を使用します。
iptableには、リダイレクト用のsquid3リダイレクトルールを含むデフォルトのルールがあります。
両方のイーサネットカードには、異なるネットワークに割り当てられた静的IPアドレスが必要です。
以下にブロックされたファイルのリストを作成します。
vim /etc/squid/blockedsites.squid
ブロックするウェブサイトを入力してください
.facebook.com
.skypeassets.com
.yahoo.com
.ui.skype.com
.twitter.com
.ndtv.com
ブロックされたキーワードのリストを作成する
`vim /etc/squid/blockkeywords.squid`
porn
xxx
ブロックされたIPリストの作成
vim /etc/squid/blockip.squid
192.168.0.125
許可されたIPリストの作成
vim /etc/squid/allowip.squid
192.168.0.10
構成ファイルを編集し、次の規則を入力します。
vim /etc/squid/squid.conf
それぞれに必要なルールを変更します。
#########################################################################
##### Restricting Web Access By Time #####
acl home_network src 192.168.0.0/24
acl business_hours time M T W H F A 08:45-22:00
acl RestrictedHost src 192.168.0.221
# Restricting Web Access By Time
http_access deny RestrictedHost
http_access allow home_network business_hours
#########################################################################
acl blockregexurl url_regex -i .facebook.com gtalk.google.com talkx.l.google.com .facebook.com .mail.gmail.com .skype.com
http_access deny blockregexurl
#########################################################################
##### Block Using Mac Address #####
#acl badmac arp E3:40:G8:07:B7:54
#http_access deny badmac
#########################################################################
#### Block Using Port of Specific IP ####
#acl block_port port 1234
#acl no_block_port_ip src 192.168.1.36
#http_access deny block_port !no_block_port_ip
#http_access allow all
#########################################################################
#####Restricting Access to specific web sites#####
# ACL blocksites
acl blocksites dstdomain "/etc/squid/blockedsites.squid"
# Deny access to blocksites ACL
http_access deny blocksites
#########################################################################
# ACL blockkeywords
acl blockkeywords url_regex -i "/etc/squid/blockkeywords.squid"
# Deny access to blockkeywords ACL
http_access deny blockkeywords
#########################################################################
##### Restricting Access to specific Ipaddress #####
# ACL blockip
acl blockip src "/etc/squid/blockip.squid"
# Deny access to blockip ACL
http_access deny blockip
#########################################################################
# ACL allowip
acl allowip src "/etc/squid/allowip.squid"
http_access allow allowip
#########################################################################
##### Restricting Download size #####
#Restrict download size
#reply_body_max_size 100 MB all
#########################################################################
##### facebook Rule ######
acl fb dstdomain .facebook.com
acl officetime time M T W H F A 9:30-18:00
# Facebook Restriction
http_reply_access deny fb officetime
http_access deny CONNECT fb officetime
#########################################################################
###### Hotmail MSN Block######
acl msn url_regex messenger.hotmail.com
# Yahoo! Messenger
acl ym dstdomain .messenger.yahoo.com .psq.yahoo.com
acl ym dstdomain .us.il.yimg.com .msg.yahoo.com .pager.yahoo.com
acl ym dstdomain .rareedge.com .ytunnelpro.com .chat.yahoo.com
acl ym dstdomain .voice.yahoo.com
acl ymregex url_regex yupdater.yim ymsgr myspaceim
acl ym dstdomain .skype.com .imvu.com
# Yahoo Messenger
http_access deny ym
http_access deny ymregex
#########################################################################
##### MSN Imagine messenger Restriction#####
acl messenger_site dstdomain .imagine-msn.com/messenger
##### Google Talk Restriction #####
acl messenger_site dstdomain .talk.google.com
##### Google talk ssl Restriction #####
acl messenger_site dstdomain talkx.l.google.com:443
acl gtalk dstdomain gtalk.google.com talkx.l.google.com
##### Ebuddy Messenger Restrcition #####
acl messenger_site dstdomain .ebuddy.com
http_access deny messenger_site
#########################################################################
#### Skype Messenger Block #####
# Skype
acl numeric_IPs dstdom_regex ^(([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)|(\[([0-9af]+)?:([0-9af:]+)?:([0-9af]+)?\])):443
acl Skype_UA browser ^skype
acl validUserAgent browser \S+
# Skype Restriction
http_access deny numeric_IPS
http_access deny Skype_UA
http_access deny !validUserAgent
###########################################################################
# Hostname
visible_hostname squidserver
###########################################################################
# Squid normally listens to port 3128
http_port 3128 intercept
###########################################################################
必要に応じてACLを変更してください。
次に、プロキシサーバーにiptablesを追加し、.shファイルを作成して保存し、shを使用して実行します。
vim iptables.sh
生成されたshファイルにスクリプトを入力します。
#! /bin/sh
#just for the sake of turning the networks off and on... not sure if it would work turning them back on only at the end of script ?
ifconfig eth0 down;
ifconfig eth1 down;
ifconfig lo down;
ifconfig lo up;
ifconfig eth0 up;
ifconfig eth1 up;
ifup eth0;
ifup eth1;
#I seemed to have some issues with the routing table so i thought I throw in a check up :
route add 127.0.0.1 dev lo;
route add -net 127.0.0.0/8 dev lo;
route add -net 192.168.0.0/24 dev eth1;
route add 192.168.1.0 dev eth0;
route add default gw 192.168.1.1;
# turn fowarding off while configuring iptables :
sysctl net/ipv4/ip_forward=0
iptables -F
iptables -X
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD ACCEPT
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
#And on again once the policies are set
sysctl net/ipv4/ip_forward=1
#redirect port 80 on lan card and masquerade on wan card :
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
#accept all packets in lo and protect against spoofing :
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -i !lo -s 127.0.0.0/8 -j DROP
iptables -A FORWARD -i !lo -s 127.0.0.0/8 -j DROP
#accept only established input but all output on WAN card
iptables -A OUTPUT -o eth0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
#just forget the invalid packets :
iptables -A OUTPUT -o eth0 -m state --state INVALID -j DROP
iptables -A INPUT -i eth0 -m state --state INVALID -j DROP
#not sure whether to put this before or after spoofing protection ?
iptables -A INPUT -i eth1 -j ACCEPT
iptables -A OUTPUT -o eth1 -j ACCEPT
#against spoofing on LAN card input :
iptables -A INPUT -i !eth1 -s 192.168.0.0/24 -j DROP
iptables -A FORWARD -i !eth1 -s 192.168.0.0/24 -j DROP
次に、次のようにスクリプトを実行します。
sh iptables.sh
コマンドを使用して iptables を確認します。
iptables -L
iptablesを使って保存
iptables-save > /root/iptables_save.ip
それ以外の場合は、iptablesスクリプトをrcファイルに追加して、再起動するたびに実行するようにします。
vim /etc/rc.local
これをrc.localファイルに追加します
sh /root/iptables.sh
次に、クライアントコンピュータのIPを192.168.0.1に変更し、ゲートウェイをプロキシIPアドレスに変更します。
たとえば、
address 192.168.0.99
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.15
それはすべて..
これはhttpsをブロックせず、ユーザーはhttpsサイトを引き続き閲覧できます。 httpsをブロックする必要がある場合は、各ブラウザにsquidサーバープロキシ設定を追加する必要があります。
httpsの透明設定をブロックする必要がある場合は、すべてのhttpsサイトを確実にブロックするSSL Bumpを設定する必要があります。
上記の内容については、私のウェブサイトの投稿を確認してください。2つのイーサネットカードを使用したイカインターネットフィルタリング