Безопасность и оптимизация Linux.Редакция для Red Hat

       

Компиляция и оптимизация


Шаг 1

Перейдите в каталог с исходными кодами Squid и введите следующие команды на вашем терминале:

CC="egcs" \

CFLAGS="-O9 -funroll-loops -ffast-math -malign-double -mcpu=pentiumpro -march=pentiumpro -fomit-frame-pointer -fno-exceptions" \

./configure \

--prefix=/usr \

--exec-prefix=/usr \

--bindir=/usr/sbin \

--libexecdir=/usr/lib/squid \

--localstatedir=/var \

--sysconfdir=/etc/squid \

--enable-delay-pools \

--enable-cache-digests \



--enable-poll \

--disable-ident-lookups \

--enable-truncate \

--enable-heap-replacement

Эти опции говорят Squid:

  • Использовать delay pools для ограничения и контроля использования полосы пропускания пользователями.
  • Использовать Cache Digests для улучшения времени ответа клиентам и использования сети.
  • Использовать poll() вместо select(), так как это предпочтительней чем select.
  • Отключить ident-lookups для удаления кодов, которые выполняют Ident (RFC 931) lookups и уменьшить возможность denial-of-service.
  • Разрешить усекание, чтобы осуществить некоторое улучшение в производительности при удалении файлов.
  • Использовать возможность Squid, называемую heap-replacement, чтобы иметь возможность выбора различных вариантов алгоритма замены кэша вместо стандартного алгоритма LRU для улучшения производительности. Смотрите ниже для более детального объяснения.
  • Шаг 2

    Сейчас, мы должны скомпилировать и инсталлировать Squid на сервере:

    [root@deep squid-2.3.STABLE2]# make -f makefile

    [root@deep squid-2.3.STABLE2]# make install

    [root@deep squid-2.3.STABLE2]# mkdir -p /var/log/squid

    [root@deep squid-2.3.STABLE2]# rm -rf /var/logs/

    [root@deep squid-2.3.STABLE2]# chown squid.squid /var/log/squid/

    [root@deep squid-2.3.STABLE2]# chmod 750 /var/log/squid/

    [root@deep squid-2.3.STABLE2]# chmod 750 /cache/

    [root@deep squid-2.3.STABLE2]# rm -f /usr/sbin/RunCache

    [root@deep squid-2.3.STABLE2]# rm -f /usr/sbin/RunAccel

    [root@deep squid-2.3.STABLE2]# strip /usr/sbin/squid

    [root@deep squid-2.3.STABLE2]# strip /usr/sbin/client


    [root@deep squid-2.3.STABLE2]# strip /usr/lib/squid/dnsserver

    [root@deep squid-2.3.STABLE2]# strip /usr/lib/squid/unlinkd

    [root@deep squid-2.3.STABLE2]# strip /usr/lib/squid/cachemgr.cgi

    Команда “make -f” будет компилировать все исходные файлы в исполняемые двоичные, “make install” будет инсталлировать все исполняемые и сопутствующие им файлы в необходимые места. Команда “mkdir” создаст новый каталог “squid” под каталогом “/var/log”. Команда “rm -rf” удалит каталог “/var/logs”, так как этот каталог был создан для храннеия файлов регистрации, связанных со Squid, которые были перемещены в каталог “/var/log/squid”. Команда “chown” изменит владельца “/var/log/squid” на пользователя squid, и “chmod” изменит права доступа к каталогам “squid” и “cache” (0750/drwxr-x---) из соображений безопасности. Заметим, что мы удаляем небольшие скрипты “RunCache” и “RunAccel”, которые запускают Squid в режиме кэширования или акселератора, так как мы используем лучший скрипт “squid” расположенный в каталоге “/etc/rc.d/init.d/”. Команда “strip” уменьшит размер двоичных файлов для оптимизации их производительности.

    Очистка после работы

    [root@deep /]# cd /var/tmp

    [root@deep tmp]# rm -rf squid-version/ squid-version.STABLEz-src.tar.gz

    [root@deep tmp]# rm -rf malloc/ malloc.tar.gz (если вы используете внешнюю библиотеку GNU malloc)

    Команды “rm” будет удалять все файлы с исходными кодами, которые мы использовали при компиляции и инсталляции Squid и GNU malloc. Также будут удалены сжатые архивы Squid и GNU malloc из каталога “/var/tmp”.


    Содержание раздела