特殊:Badtitle/NS100:SquidGuard:修订间差异
小无编辑摘要 |
小无编辑摘要 |
||
第193行: | 第193行: | ||
* Using diff files | * Using diff files | ||
* Using Ident | * Using Ident | ||
---- | |||
[[category:CategoryNetworking]] [[category:CategorySecurity]] | |||
[[category:UbuntuHelp]] | [[category:UbuntuHelp]] |
2009年5月12日 (二) 18:56的版本
文章出处: |
{{#if: | {{{2}}} | https://help.ubuntu.com/community/SquidGuard }} |
点击翻译: |
English {{#ifexist: {{#if: UbuntuHelp:SquidGuard | UbuntuHelp:SquidGuard | {{#if: | :}}SquidGuard}}/af | • {{#if: UbuntuHelp:SquidGuard|Afrikaans| [[::SquidGuard/af|Afrikaans]]}}|}} {{#ifexist: {{#if: UbuntuHelp:SquidGuard | UbuntuHelp:SquidGuard | {{#if: | :}}SquidGuard}}/ar | • {{#if: UbuntuHelp:SquidGuard|العربية| [[::SquidGuard/ar|العربية]]}}|}} {{#ifexist: {{#if: UbuntuHelp:SquidGuard | UbuntuHelp:SquidGuard | {{#if: | :}}SquidGuard}}/az | • {{#if: UbuntuHelp:SquidGuard|azərbaycanca| [[::SquidGuard/az|azərbaycanca]]}}|}} {{#ifexist: {{#if: UbuntuHelp:SquidGuard | UbuntuHelp:SquidGuard | {{#if: | :}}SquidGuard}}/bcc | • {{#if: UbuntuHelp:SquidGuard|جهلسری بلوچی| [[::SquidGuard/bcc|جهلسری بلوچی]]}}|}} {{#ifexist: {{#if: UbuntuHelp:SquidGuard | UbuntuHelp:SquidGuard | {{#if: | :}}SquidGuard}}/bg | • {{#if: UbuntuHelp:SquidGuard|български| [[::SquidGuard/bg|български]]}}|}} {{#ifexist: {{#if: UbuntuHelp:SquidGuard | UbuntuHelp:SquidGuard | {{#if: | :}}SquidGuard}}/br | • {{#if: UbuntuHelp:SquidGuard|brezhoneg| [[::SquidGuard/br|brezhoneg]]}}|}} {{#ifexist: {{#if: UbuntuHelp:SquidGuard | UbuntuHelp:SquidGuard | {{#if: | :}}SquidGuard}}/ca | • {{#if: UbuntuHelp:SquidGuard|català| [[::SquidGuard/ca|català]]}}|}} {{#ifexist: {{#if: UbuntuHelp:SquidGuard | UbuntuHelp:SquidGuard | {{#if: | :}}SquidGuard}}/cs | • {{#if: UbuntuHelp:SquidGuard|čeština| [[::SquidGuard/cs|čeština]]}}|}} {{#ifexist: {{#if: UbuntuHelp:SquidGuard | UbuntuHelp:SquidGuard | {{#if: | :}}SquidGuard}}/de | • {{#if: UbuntuHelp:SquidGuard|Deutsch| [[::SquidGuard/de|Deutsch]]}}|}} {{#ifexist: {{#if: UbuntuHelp:SquidGuard | UbuntuHelp:SquidGuard | {{#if: | :}}SquidGuard}}/el | • {{#if: UbuntuHelp:SquidGuard|Ελληνικά| [[::SquidGuard/el|Ελληνικά]]}}|}} {{#ifexist: {{#if: UbuntuHelp:SquidGuard | UbuntuHelp:SquidGuard | {{#if: | :}}SquidGuard}}/es | • {{#if: UbuntuHelp:SquidGuard|español| [[::SquidGuard/es|español]]}}|}} {{#ifexist: {{#if: UbuntuHelp:SquidGuard | UbuntuHelp:SquidGuard | {{#if: | :}}SquidGuard}}/fa | • {{#if: UbuntuHelp:SquidGuard|فارسی| [[::SquidGuard/fa|فارسی]]}}|}} {{#ifexist: {{#if: UbuntuHelp:SquidGuard | UbuntuHelp:SquidGuard | {{#if: | :}}SquidGuard}}/fi | • {{#if: UbuntuHelp:SquidGuard|suomi| [[::SquidGuard/fi|suomi]]}}|}} {{#ifexist: {{#if: UbuntuHelp:SquidGuard | UbuntuHelp:SquidGuard | {{#if: | :}}SquidGuard}}/fr | • {{#if: UbuntuHelp:SquidGuard|français| [[::SquidGuard/fr|français]]}}|}} {{#ifexist: {{#if: UbuntuHelp:SquidGuard | UbuntuHelp:SquidGuard | {{#if: | :}}SquidGuard}}/gu | • {{#if: UbuntuHelp:SquidGuard|ગુજરાતી| [[::SquidGuard/gu|ગુજરાતી]]}}|}} {{#ifexist: {{#if: UbuntuHelp:SquidGuard | UbuntuHelp:SquidGuard | {{#if: | :}}SquidGuard}}/he | • {{#if: UbuntuHelp:SquidGuard|עברית| [[::SquidGuard/he|עברית]]}}|}} {{#ifexist: {{#if: UbuntuHelp:SquidGuard | UbuntuHelp:SquidGuard | {{#if: | :}}SquidGuard}}/hu | • {{#if: UbuntuHelp:SquidGuard|magyar| [[::SquidGuard/hu|magyar]]}}|}} {{#ifexist: {{#if: UbuntuHelp:SquidGuard | UbuntuHelp:SquidGuard | {{#if: | :}}SquidGuard}}/id | • {{#if: UbuntuHelp:SquidGuard|Bahasa Indonesia| [[::SquidGuard/id|Bahasa Indonesia]]}}|}} {{#ifexist: {{#if: UbuntuHelp:SquidGuard | UbuntuHelp:SquidGuard | {{#if: | :}}SquidGuard}}/it | • {{#if: UbuntuHelp:SquidGuard|italiano| [[::SquidGuard/it|italiano]]}}|}} {{#ifexist: {{#if: UbuntuHelp:SquidGuard | UbuntuHelp:SquidGuard | {{#if: | :}}SquidGuard}}/ja | • {{#if: UbuntuHelp:SquidGuard|日本語| [[::SquidGuard/ja|日本語]]}}|}} {{#ifexist: {{#if: UbuntuHelp:SquidGuard | UbuntuHelp:SquidGuard | {{#if: | :}}SquidGuard}}/ko | • {{#if: UbuntuHelp:SquidGuard|한국어| [[::SquidGuard/ko|한국어]]}}|}} {{#ifexist: {{#if: UbuntuHelp:SquidGuard | UbuntuHelp:SquidGuard | {{#if: | :}}SquidGuard}}/ksh | • {{#if: UbuntuHelp:SquidGuard|Ripoarisch| [[::SquidGuard/ksh|Ripoarisch]]}}|}} {{#ifexist: {{#if: UbuntuHelp:SquidGuard | UbuntuHelp:SquidGuard | {{#if: | :}}SquidGuard}}/mr | • {{#if: UbuntuHelp:SquidGuard|मराठी| [[::SquidGuard/mr|मराठी]]}}|}} {{#ifexist: {{#if: UbuntuHelp:SquidGuard | UbuntuHelp:SquidGuard | {{#if: | :}}SquidGuard}}/ms | • {{#if: UbuntuHelp:SquidGuard|Bahasa Melayu| [[::SquidGuard/ms|Bahasa Melayu]]}}|}} {{#ifexist: {{#if: UbuntuHelp:SquidGuard | UbuntuHelp:SquidGuard | {{#if: | :}}SquidGuard}}/nl | • {{#if: UbuntuHelp:SquidGuard|Nederlands| [[::SquidGuard/nl|Nederlands]]}}|}} {{#ifexist: {{#if: UbuntuHelp:SquidGuard | UbuntuHelp:SquidGuard | {{#if: | :}}SquidGuard}}/no | • {{#if: UbuntuHelp:SquidGuard|norsk| [[::SquidGuard/no|norsk]]}}|}} {{#ifexist: {{#if: UbuntuHelp:SquidGuard | UbuntuHelp:SquidGuard | {{#if: | :}}SquidGuard}}/oc | • {{#if: UbuntuHelp:SquidGuard|occitan| [[::SquidGuard/oc|occitan]]}}|}} {{#ifexist: {{#if: UbuntuHelp:SquidGuard | UbuntuHelp:SquidGuard | {{#if: | :}}SquidGuard}}/pl | • {{#if: UbuntuHelp:SquidGuard|polski| [[::SquidGuard/pl|polski]]}}|}} {{#ifexist: {{#if: UbuntuHelp:SquidGuard | UbuntuHelp:SquidGuard | {{#if: | :}}SquidGuard}}/pt | • {{#if: UbuntuHelp:SquidGuard|português| [[::SquidGuard/pt|português]]}}|}} {{#ifexist: {{#if: UbuntuHelp:SquidGuard | UbuntuHelp:SquidGuard | {{#if: | :}}SquidGuard}}/ro | • {{#if: UbuntuHelp:SquidGuard|română| [[::SquidGuard/ro|română]]}}|}} {{#ifexist: {{#if: UbuntuHelp:SquidGuard | UbuntuHelp:SquidGuard | {{#if: | :}}SquidGuard}}/ru | • {{#if: UbuntuHelp:SquidGuard|русский| [[::SquidGuard/ru|русский]]}}|}} {{#ifexist: {{#if: UbuntuHelp:SquidGuard | UbuntuHelp:SquidGuard | {{#if: | :}}SquidGuard}}/si | • {{#if: UbuntuHelp:SquidGuard|සිංහල| [[::SquidGuard/si|සිංහල]]}}|}} {{#ifexist: {{#if: UbuntuHelp:SquidGuard | UbuntuHelp:SquidGuard | {{#if: | :}}SquidGuard}}/sq | • {{#if: UbuntuHelp:SquidGuard|shqip| [[::SquidGuard/sq|shqip]]}}|}} {{#ifexist: {{#if: UbuntuHelp:SquidGuard | UbuntuHelp:SquidGuard | {{#if: | :}}SquidGuard}}/sr | • {{#if: UbuntuHelp:SquidGuard|српски / srpski| [[::SquidGuard/sr|српски / srpski]]}}|}} {{#ifexist: {{#if: UbuntuHelp:SquidGuard | UbuntuHelp:SquidGuard | {{#if: | :}}SquidGuard}}/sv | • {{#if: UbuntuHelp:SquidGuard|svenska| [[::SquidGuard/sv|svenska]]}}|}} {{#ifexist: {{#if: UbuntuHelp:SquidGuard | UbuntuHelp:SquidGuard | {{#if: | :}}SquidGuard}}/th | • {{#if: UbuntuHelp:SquidGuard|ไทย| [[::SquidGuard/th|ไทย]]}}|}} {{#ifexist: {{#if: UbuntuHelp:SquidGuard | UbuntuHelp:SquidGuard | {{#if: | :}}SquidGuard}}/tr | • {{#if: UbuntuHelp:SquidGuard|Türkçe| [[::SquidGuard/tr|Türkçe]]}}|}} {{#ifexist: {{#if: UbuntuHelp:SquidGuard | UbuntuHelp:SquidGuard | {{#if: | :}}SquidGuard}}/vi | • {{#if: UbuntuHelp:SquidGuard|Tiếng Việt| [[::SquidGuard/vi|Tiếng Việt]]}}|}} {{#ifexist: {{#if: UbuntuHelp:SquidGuard | UbuntuHelp:SquidGuard | {{#if: | :}}SquidGuard}}/yue | • {{#if: UbuntuHelp:SquidGuard|粵語| [[::SquidGuard/yue|粵語]]}}|}} {{#ifexist: {{#if: UbuntuHelp:SquidGuard | UbuntuHelp:SquidGuard | {{#if: | :}}SquidGuard}}/zh | • {{#if: UbuntuHelp:SquidGuard|中文| [[::SquidGuard/zh|中文]]}}|}} {{#ifexist: {{#if: UbuntuHelp:SquidGuard | UbuntuHelp:SquidGuard | {{#if: | :}}SquidGuard}}/zh-hans | • {{#if: UbuntuHelp:SquidGuard|中文(简体)| [[::SquidGuard/zh-hans|中文(简体)]]}}|}} {{#ifexist: {{#if: UbuntuHelp:SquidGuard | UbuntuHelp:SquidGuard | {{#if: | :}}SquidGuard}}/zh-hant | • {{#if: UbuntuHelp:SquidGuard|中文(繁體)| [[::SquidGuard/zh-hant|中文(繁體)]]}}|}} |
{{#ifeq:UbuntuHelp:SquidGuard|:SquidGuard|请不要直接编辑翻译本页,本页将定期与来源同步。}} |
{{#ifexist: :SquidGuard/zh | | {{#ifexist: SquidGuard/zh | | {{#ifeq: {{#titleparts:SquidGuard|1|-1|}} | zh | | }} }} }} {{#ifeq: {{#titleparts:SquidGuard|1|-1|}} | zh | | }}
<<Include(Tag/StyleCleanup)>> <<Include(Tag/NeedsExpansion)>> This howto describes the process of setting up Squid and SquidGuard for the purpose of internet content filtering. There are many different configuration options available. The settings used in this howto are very simplistic and may not suit your needs. In any case it will get you up and running. More complex settings can be added afterwards.
Introduction
Squid is a proxy server, HTTP requests are sent to Squid instead of being sent directly to the internet. SquidGuard is a web filter plugin for Squid which is used to restrict access to domains/URLs based upon access control lists. When SquidGuard receives a request it is examined and will either allow the page to load or will redirect to a predetermined “block” page or script. SquidGuard makes its decisions based upon the use of access control lists and databases of domains, URLs, and expressions.
Installation
Make sure you have the Universe repository enabled Install Squid and SquidGuard
sudo apt-get install squid squidguard
If you don't have a web server installed
sudo apt-get install apache2
Key File Locations
File | Purpose |
/etc/squid/squid.conf | Squid configuration file |
/var/log/squid/access.log | Squid access log file |
/etc/squid/squidGuard.conf | SquidGuard configuration file |
/var/lib/squidguard/db | SquidGuard database files |
/var/log/squid/squidGuard.log | SquidGuard log file |
Squid Configuration
The squid.conf file is huge, with hundreds of options. In this howto we will only be changing a few settings. Open the squid.conf file for editing
gksudo gedit /etc/squid/squid.conf
Turn on line numbers in gedit (Edit > Preferences) Find the `http_port tag` (should be on or around line 53, its currently Line 89 in 7.10 release) By default it reads `# http_port 3128` This is the default port that Squid will listen on for requests. If you want to change it, uncomment the line and set the correct port. If you want Squid to listen only on one specific NIC, you can also change the IP address – for example `192.168.1.5:3128` Now we need to tell squid where squidguard is. Find the redirect_program tag (should be around line 1028, in Suqid 2.6 from 7.10 release use tag url_rewrite_program around line 1500 instead) There is no default setting here, so we need to add our own line below the redirect_program description:
redirect_program /usr/bin/squidGuard –c /etc/squid/squidGuard.conf
OK, now we'll setup who is allowed access to the proxy. Find the http_access section (should start around line 1860,line 2589 in 7.04 and line 2608 in 7.10 release) Uncomment these 2 lines:
#http_access allow our_networks
You'll need to change 192.168.1.0/24 to match your network. Unless you have a second subnet you can delete 192.168.2.0/24 if you get a startup error :- 'FATAL: Could not determine fully qualified hostname. Please set visible_hostname' you will also need to modify the visible_hostname tag (around line 2909 in 7.10) to:- NOTE: this needs to be added as a new line in 7.10 (not sure about other releases) as there is no commented out line re-introduce.
visible_hostname localhost
Save the file and close gedit
SquidGuard Configuration
For the purposes of this howto we will use a very simple configuration for SquidGuard, with only one category of sites that we want to block. More complex and useful configurations are explained on the official SquidGuard site. First we will create a list of domains we want to block
sudo mkdir /var/lib/squidguard/db/weapons/ gksudo gedit /var/lib/squidguard/db/weapons/domains
Insert the following, then save the file.
israeli-weapons.com uws.com glock.com
proxy must own all the db files
sudo chown -R proxy:proxy /var/lib/squidguard/db
Now we edit our squidGuard.conf file.
gksudo gedit /etc/squid/squidGuard.conf
Delete everything after the line: `logdir /var/log/squid` Replace the deleted text with the following:
dest weapons { domainlist weapons/domains } acl { default { pass !weapons redirect http://yourip/block.html } }
Time to compile the domains list into a database
sudo squidGuard –C all
Create a page to redirect blocked requests to
sudo nano /var/www/block.html
REMEMBER, this 'block.html' page points to the default web servers directories, probably Apache as installed above. You must have a web server running on the machine for this to work! or you get an error message with the redirect on the client's PC. You could also redirect it to another server running a web server and let it host the error pages. Put whatever message you want in this page. Fire up squid and squidguard If it is not running you can use :- sudo /etc/init.d/squid start|restart|stop then this will work
squid -k reconfigure
Testing
Change all your client browser settings to use your new proxy. If you are using Firefox, this is done via Edit > Preferences > Connection Settings. Enter the IP address of your new Proxy server, and the port number you previously configure. The 3 domains we added to our domains file should be blocked.
Troubleshooting
It is fairly common to run into problems. 99% of the time, it comes down to permissions or ownership of files. First of all, lets check what processes are running.
ps -e | grep squid
You should see 1 or 2 squid processes, and 5 squidGuard processes. If not then lets restart Squid.
squid -k reconfigure
Again, check what processes are running. Still having problems? Check what's being written to the squidGuard.log file
tail /var/log/squid/squidGuard.log
You might see something here that mentions that SquidGuard has gone into emergency mode. If this is the case, the following may help. It is often useful to run squidGuard directly from the command line to see what it is doing. An example is:
echo "http://www.somesite.com 10.0.0.1/ - - GET" | squidGuard -d -c /etc/squid/squidGuard.conf
This should be run as root.
SquidGuard Emergency Mode
When squidguard starts up, it tries to do the following things:
- Read the configuration file
- Read the database or text files with the lists of sites to block
- Write to its log file
If it fails to do any of these things, it goes into "emergency mode"; effectively this means that it doesn't do anything. The following problems will cause either 1, 2, or 3 to fail:
- The configuration file is not in the place specified in squid.conf. Make sure squidguard is started with this line in squid.conf:
redirect_program /usr/bin/squidGuard –c /etc/squid/squidGuard.conf
- The database files are not in the place defined in squidGuard.conf. Make sure the following is one of the first lines in squidGuard.conf:
/var/lib/squidguard/db
- The ownership of the configuration file, logfiles, or blacklist files is not correct. These files should be owned by the user and group under which the squid program runs. In the case of Ubuntu, that user is `proxy`
- To make sure the ownership is correct, run the following commands:
chown proxy:proxy /etc/squid/squidGuard.conf chown -R proxy:proxy /var/lib/squidguard/db chown -R proxy:proxy /var/log/squid/
- The permissions of the configuration file, logfiles, or blacklist files is not correct. Set the permissions as follows:
chmod 644 /etc/squid/squidGuard.conf chmod -R 640 /var/lib/squidguard/db chmod -R 644 /var/log/squid/ find /var/lib/squidguard/db -type d -exec chmod 755 \{\} \; -print chmod 755 /var/log/squid
- There is a line-end before the "{" character in source or dest lists:
Bad:
dest weapons {
Good:
dest weapons {
After fixing these problems issue the command : `squid –k reconfigure` To restart Squid and SquidGuard with the new settings. You also need to create Swap directories with 'squid -z' If you still have errors you can start squid with 'squid -NCd1' which starts in debug/verbose mode which will show any errors. As above, the most likely will be permissions.
External Links
In Need Of Further Documentation
- More sophisticated configurations (source groups, time settings, more destination groups, urls, expressions)
- Using diff files
- Using Ident