Наши
Сайдбары
   
IRC-канал
Linuxportal.ru
   
Импорт новостей
 
Вход Быстрая регистрация На главную

Поиск:
 
   БИБЛИОТЕКА
     Другие статьи этого раздела:
 

    Сеть
Другие разделы библиотеки:
   БИБЛИОТЕКА
     последние поступления:
 

Hardware
Перевод Serial-Programming-HOWTO
15.05.2006 | San АНДРЕЕВ
Перевод Linux Power Management Support
03.04.2004 | San АНДРЕЕВ
Варианты решения проблем со смещением геометрии монитора.
10.10.2003 | EsTaF
Multimedia
VideoCD для пингвинов
10.10.2003 | Buddha
Смотрим любимые фильмы с помощью MPlayer
23.07.2003 | Alexey Dmitriev
X-сервер
Включаем Bytecode Interpreter в пакете freetype в некоторых дистрибутивах
05.07.2006 | Alexey Dmitriev
НАСТРОЙКА СЕРВЕРА XDMCP ДЛЯ WINDOWS-КЛИЕНТОВ
09.09.2004 | Kotjara
Type1 и truetype шрифты в LaTeX.
03.05.2004 | geekkoo
Разное
Как самому написать концепцию информационной безопасности
22.03.2007 | Crion
Список рекомендуемой литературы
11.09.2006 | San АНДРЕЕВ
The Multi Router Traffic Grapher
02.06.2004 | Crion
Сеть
"Огненная стена" или строим файрвол на базе iptables
15.03.2005 | Alexey Dmitriev
Защищенная почтовая система
08.09.2004 | Crion
Postfix+Cyrus-SASL
18.12.2003 | geekkoo
Система
Написание драйверов под Linux: рекомендации, типичные ошибки и ловушки.
16.01.2007 | Mr.Nobody
Перевод Linux Daemon HOWTO
21.08.2006 | San АНДРЕЕВ
Усыпляем компьютер
11.01.2006 | San АНДРЕЕВ
   БИБЛИОТЕКА Сеть    
Автор статьи:
Дата: 30.07.2003

Установка и настройка Squid-2.5.STABLE1 с PAM аутентификацией

Установка и настройка Squid-2.5.STABLE1 с PAM аутентификацией.
Описанная ниже процедура протестирована на ASPLinux-7.3 kernel 2.4.19+ grsecurity patch на системе с процессором P-!!!

Шаг1
Скачайте с архив squid-2.5.STABLE1.tar.gz
Распакуйте архив с пакетом squid-2.5.STABLE1.tar.gz в каталоге /var/tmp:
tar -xzpf squid-2.5.STABLE1.tar.gz
Перейдите в каталог /var/tmp/ squid-2.5.STABLE1:
cd /var/tmp/squid-2.5.STABLE1
Создайте учетную запись пользователя squid без пароля и доступа к командному интерпретатору:
useradd -c "Squid user" –u 23 -s /bin/false –r -d /var/spool/squid squid 2>/dev/null || :


Шаг 2
В файле /var/tmp/SQUID-2.5STABLE1/src/Makefile.in
Замените строку:
DEFAULT_LOG_PREFIX = $(localstatedir)/logs
на:
DEFAULT_LOG_PREFIX = $(localstatedir)/log/squid
Замените строку:
DEFAULT_PID_FILE = $(DEFAULT_LOG_PREFIX)/squid.pid
на:
DEFAULT_PID_FILE = /var/squid.pid
Замените строку:
DEFAULT_SWAP_DIR = $(localstatedir)/cache
на:
DEFAULT_SWAP_DIR = $(localstatedir)/var/spool/squid

Шаг 3

cd /var/tmp/SQUID-2.5STABLE1
CFLAGS="-O2 -march=i686 -funroll-loops" \
./configure \
--prefix=''
--sysconfdir=/etc/squid
--libexecdir=/usr/lib/squid \
--localstatedir=/var \
--bindir=/usr/sbin \
--exec_prefix=/usr \
--datadir=/usr/lib/squid \
--mandir=/usr/share/man \
--enable-gnuregex \
--with-pthreads \
--enable-storeio=diskd,ufs \
--enable-removal-policies="heap" \
--enable-delay-pools \
--enable-cache-digests \
--enable-kill-parent-hack \
--enable-poll \
--enable-default-err-language="Russian-1251" \
--enable-err-language="Russian-1251" \
--enable-linux-netfilter \
--disable-ident-lookups \
--enable-truncate \
--enable-auth="basic" \
--enable-basic-auth-helpers="PAM"
--enable-ssl
Все параметры я пробывал вводить как с кавычками так и без – результат один. Назначение опций можно понять по комментариям файла configure

Шаг 4
Откомпилируйте основную часть кода:
make all

Шаг 5
Откомпилируйте модуль auth_pam. Везде написано, что это нужно делать, но он создается сам, по-моему при использовании в configure опции --enable-basic-auth-helpers="PAM"
cd helpers/basic/auth_pam
make
Шаг6
Проинсталлируйте основные файлы
find /* > /root/instfiles/squid1
cd /var/tmp/SQUID-2.5STABLE1
make install
Шаг 7
Проинсталлируйте auth_pam
cd helpers/basic/auth_pam
install –m 4511 pam_auth /usr/lib/squid

Шаг 7
Создайте необходимые каталоги, назначьте прва доступа к ним, удалите не нужные файлы:
mkdir –p /var/spool/squid
mkdir –p /var/spool/squid
chown –R squid.squid /var/spool/squid
mkdir –R squid.squid var/spool/squid
rm –f /usr/sbin/RunCashe
rm –f /usr/sbin/RunAccel
/sbin/ldconfig
Шаг 8
Создайте список установленных файлов:
find /* /root/instfiles/squid2
diff /root/instfiles/squid1 /root/instfiles/squid2 > /root/instfiles/squid.installed

Шаг 9
Создайте файл /etc/pam.d/squid
и добавьте в него строки:
#%PAM-1.0
auth required /lib/security/pam_stack.so service=system-auth
account required /lib/security/pam_stack.so service=system-auth


Шаг 10
Подредактируйте /etc/squid/squid.conf в соответсвии с вашими потребностями. Полезно посмотреть комментарии в /etc/squid.conf.default и приведенном ниже образце:

cp_port 0
ssl_unclean_shutdown on
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
cache_mem 128 MB
cache_replacement_policy heap GDSF
memory_replacement_policy heap GDSF
cache_dir diskd /var/spool/squid 750 16 256
cache_store_log none
log_fqdn on
auth_param basic program /usr/lib/squid/pam_auth
auth_param basic children 5
auth_param basic realm Squid Proxy-Caching Web Server
auth_param basic credentialsttl 2 hours
#Это для доступа куда угодно с аутентификацией
acl usera proxy_auth REQUIRED
#Это моя локальная сеть у вас может быть по другому
acl localnet src 192.168.1.0/255.255.255.0
acl localhost src 127.0.0.1/255.255.255.255
acl SSL_ports port 443 563
acl Safe_ports port 80 21 443 563 70 210 1025-65535 280 488 591 777
acl CONNECT method CONNECT
#Это для доступа к серверу 212.24.38.75 без аутентификации
acl myserver dst 212.24.38.75
acl PURGE method PURGE
acl all src 0.0.0.0/0.0.0.0
#Это для доступа к серверу 212.24.38.75 без аутентификации
http_access allow myserver
#Это для доступа куда угодно с аутентификацией
http_access allow usera
http_access allow localnet
http_access allow localhost
http_access allow PURGE localhost
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny CONNECT
http_access deny PURGE
http_access deny all
#Поменяйте e-mail в соответсвии с вашими реалиями
cache_mgr root@localhost
cache_effective_user squid
cache_effective_group squid
logfile_rotate 0
log_icp_queries off
cachemgr_passwd my-secret-pass all
buffered_logs on

Шаг 11
Создайте файл /etc/rc.d/init.d/squid и добавьте в него строки:
#!/bin/bash

# This shell script takes care of starting and stopping Squid (Proxy server).
#
# chkconfig: 345 90 25
# description: Squid - Internet Object Cache. Internet object caching is \
# a way to store requested Internet objects (i.e., data available \
# via the HTTP, FTP, and gopher protocols) on a system closer to the \
# requesting site than to the source. Web browsers can then use the \
# local Squid cache as a proxy HTTP server, reducing access time as \
# well as bandwidth consumption.
#
# processname: squid

# pidfile: /var/run/squid.pid
# config: /etc/squid/squid.conf

PATH=/usr/bin:/sbin:/bin:/usr/sbin
export PATH

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0

# Check if the squid.conf file is present.
[ -f /etc/squid/squid.conf ] || exit 0

# Source Squid configureation.
if [ -f /etc/sysconfig/squid ]; then
. /etc/sysconfig/squid
else
SQUID_OPTS="-D"
SQUID_SHUTDOWN_TIMEOUT=100
fi

# Determine the name of the squid binary.
[ -f /usr/sbin/squid ] && SQUID=squid
[ -z "$SQUID" ] && exit 0

prog="$SQUID"

# Determine which one is the cache_swap directory
CACHE_SWAP=`sed -e 's/#.*//g' /etc/squid/squid.conf | \
grep cache_dir | awk '{ print $3 }'`
[ -z "$CACHE_SWAP" ] && CACHE_SWAP=/var/spool/squid

RETVAL=0

start() {
for adir in $CACHE_SWAP; do
if [ ! -d $adir/00 ]; then
echo -n "init_cache_dir $adir... "
$SQUID -z -F 2>/dev/null
fi
done
echo -n $"Starting $prog: "
$SQUID $SQUID_OPTS 2> /dev/null &
# Trap and prevent certain signals from being sent to the Squid process.
trap '' 1 2 3 18
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$SQUID
[ $RETVAL -eq 0 ] && echo_success
[ $RETVAL -ne 0 ] && echo_failure
echo
return $RETVAL
}

stop() {
echo -n $"Stopping $prog: "
$SQUID -k check >/dev/null 2>&1
RETVAL=$?
if [ $RETVAL -eq 0 ] ; then
$SQUID -k shutdown &
rm -f /var/lock/subsys/$SQUID
timeout=0
while : ; do
[ -f /var/run/squid.pid ] || break
if [ $timeout -ge $SQUID_SHUTDOWN_TIMEOUT ]; then
echo
return 1
fi
sleep 2 && echo -n "."
timeout=$((timeout+2))
done
echo_success
echo
else
echo_failure
echo
fi
return $RETVAL
}

reload() {
$SQUID $SQUID_OPTS -k reconfigure
}

restart() {
stop
start
}

condrestart() {
[ -e /var/lock/subsys/squid ] && restart || :
}

# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
reload)
reload
;;
restart)
restart
;;
condrestart)
condrestart
;;
*)
echo $"Usage: $0 {start|stop|reload|restart|condrestart}"
exit 1
esac
exit $?

Шаг 12
Запустите squid:
/etc/init.d/squid start



Все статьи раздела "Сеть"

©"Linuxportal.Ru". Материалы сайта можно
использовать свободно при условии
сохранения этой свободы при дальнейшем
распространении, если явно не указано иное

Дизайн и программирование:

Поставьте
нашу кнопку:
Получить код кнопки
Linux Portal.ru ::: Линукс Портал.ру
Наш партнер: