Загружается сам сквид
# yum install squid
Вот что-то типа этого выдается в ответ
Loading «fastestmirror» plugin
Loading mirror speeds from cached hostfile
* rpmforge: ftp-stud.fht-esslingen.de
* base: mirror.silyus.net
* updates: mirror.silyus.net
* addons: mirror.silyus.net
* extras: mirror.silyus.net
rpmforge 100% |=========================| 1.1 kB 00:00
base 100% |=========================| 1.1 kB 00:00
updates 100% |=========================| 951 B 00:00
addons 100% |=========================| 951 B 00:00
extras 100% |=========================| 1.1 kB 00:00
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
–> Running transaction check
—> Package squid.i386 7:2.6.STABLE6-5.el5_1.3 set to be updated
–> Processing Dependency: perl(URI::URL) for package: squid
–> Running transaction check
—> Package perl-URI.noarch 0:1.35-3 set to be updated
–> Finished Dependency Resolution
Dependencies Resolved
=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
squid i386 7:2.6.STABLE6-5.el5_1.3 base 1.2 M
Installing for dependencies:
perl-URI noarch 1.35-3 base 116 k
Transaction Summary
=============================================================================
Install 2 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 1.3 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): perl-URI-1.35-3.no 100% |=========================| 116 kB 00:00
(2/2): squid-2.6.STABLE6- 100% |=========================| 1.2 MB 00:00
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: perl-URI ######################### [1/2]
Installing: squid ######################### [2/2]
Installed: squid.i386 7:2.6.STABLE6-5.el5_1.3
Dependency Installed: perl-URI.noarch 0:1.35-3
Complete!
Далее конфигурим сам сквид.
# mcedit /etc/squid/squid.conf
Для начала нужно определить ACL (access control list) для работы со сквидом. Порт по умолчанию TCP 3128.
Пример добавления доступа отовсюду, есть в исходном конфиге.
acl all src 0.0.0.0/0.0.0.0
Первый раз сквид надо запускать с параметром -z для создания своп-директорий
# squid -z
2008/12/15 20:27:35| parseConfigFile: line 586 unrecognized: ‘ACL’
2008/12/15 20:27:35| Creating Swap Directories
После стартуем уже как надо
# /etc/init.d/squid start
Starting squid: ….. [ OK ]
Проверяем, открыт ли порт
# netstat -tulpn | grep 3128
tcp 0 0 0.0.0.0:3128 0.0.0.0:* LISTEN 26375/(squid)
Порт открыт.
Далее нужно закрыть доступ без пароля, например авторизацией через mysql.
Здесь лежит сама база юзеров, тут скрипт авторизации.
Сливаем
# wget http://www.kaba.org.ua/soft/squid/base.sql # wget http://www.kaba.org.ua/soft/squid/mysql_auth.tar.bz2
Импортируем базу
# mysql -u root -p mysql < base.sql
Скрипту нужен gcc, у меня не оказалось
#yum install gcc
Также нужна библиотека mysql-devel
# yum install mysql-devel
Находим пути библиотек и самого мускула в мейкфайле
# updatedb # locate mysql.h
/usr/include/mysql/mysql.h
# locate mysqlclient
/usr/lib/mysql/libmysqlclient.a
/usr/lib/mysql/libmysqlclient.so
/usr/lib/mysql/libmysqlclient.so.15
/usr/lib/mysql/libmysqlclient.so.15.0.0
/usr/lib/mysql/libmysqlclient_r.a
/usr/lib/mysql/libmysqlclient_r.so
/usr/lib/mysql/libmysqlclient_r.so.15
/usr/lib/mysql/libmysqlclient_r.so.15.0.0
Предварительно меняем переменные DBHOST,DBUSER,DB,DBPASSWORD в скрипте на свои и make, затем копируем в нужную директорию скомпиленные файлы. Далее прописываем в /etc/squid/squid.conf
auth_param basic program /usr/local/sbin/mysql_auth
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
И перезагружаем сквид
Юзеры добавляются так
INSERT INTO proxy_users VALUES('','user',password('somepass'));