Загружается сам сквид
# 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'));
6 комментариев
А смысл установки mysql из исходников? yum не справился?
Спасибо за статютью. Интересно на сколько процесс отличен для установки squid версии 3?
Vasenin Andrew, незнаю, непробовал
[root@srv /]# make
gcc -I/usr/local/include/mysql -c mysql_auth.c
In file included from mysql_auth.c:11:
mysql.h:71:27: error: mysql_version.h: Нет такого файла или каталога
mysql.h:72:23: error: mysql_com.h: Нет такого файла или каталога
mysql.h:73:24: error: mysql_time.h: Нет такого файла или каталога
mysql.h:74:21: error: typelib.h: Нет такого файла или каталога
mysql.h:76:70: error: my_list.h: Нет такого файла или каталога
In file included from mysql_auth.c:11:
mysql.h:117: ошибка: поле ‘type’ имеет неполный тип
mysql.h:146:22: error: my_alloc.h: Нет такого файла или каталога
mysql.h:153: ошибка: expected specifier-qualifier-list before ‘MEM_ROOT’
mysql.h:257: ошибка: expected specifier-qualifier-list before ‘NET’
mysql.h:320: ошибка: expected specifier-qualifier-list before ‘MEM_ROOT’
mysql.h:346: ошибка: expected specifier-qualifier-list before ‘NET’
mysql.h:512: предупреждение: декларация ‘enum mysql_enum_shutdown_level’ внутри списка параметров
mysql.h:512: предупреждение: область действия типа — только данная декларация или определение, что может не соответствовать вашим намерениям
mysql.h:519: предупреждение: декларация ‘enum enum_mysql_set_option’ внутри списка параметров
mysql.h:654: ошибка: поле ‘buffer_type’ имеет неполный тип
mysql.h:666: ошибка: expected ‘)’ before ‘*’ token
mysql.h:667: ошибка: expected ‘;’ before ‘void’
mysql.h:677: ошибка: expected specifier-qualifier-list before ‘MEM_ROOT’
mysql.h:754: предупреждение: декларация ‘enum enum_server_command’ внутри списка параметров
mysql_auth.c: In function ‘main’:
mysql_auth.c:31: предупреждение: return type of ‘main’ is not ‘int’
make: *** [mysql_auth.o] Ошибка 1
Какя версия mysql должна быть?
pavel, а dev пакет стоит?