Установка Squid на Centos

Загружается сам сквид

# 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'));
1.00 avg. rating (50% score) - 1 vote

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 пакет стоит?

css.php