Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
squid.doc
Скачиваний:
4
Добавлен:
01.05.2025
Размер:
1.45 Mб
Скачать

17.3 Прозрачное кеширование на Linux 2.2 и ipchains

от Martin Lyons

Вам необходимо отконфигурировать ваше ядро для работы с ipchains. Конфигурирование ядра Linux вне поля зрения этого FAQ. Один из способов сделать это:

# cd /usr/src/linux

# make menuconfig

Нижеследующее показывает важные функции ядра, которые необходимо включить:

[*] Network firewalls

[ ] Socket Filtering

[*] Unix domain sockets

[*] TCP/IP networking

[ ] IP: multicasting

[ ] IP: advanced router

[ ] IP: kernel level autoconfiguration

[*] IP: firewalling

[ ] IP: firewall packet netlink device

[*] IP: always defragment (required for masquerading)

[*] IP: transparent proxy support

You must include the IP: always defragment, otherwise it prevents you from using the REDIRECT chain.

Можете использовать этот скрипт как шаблон для вашего собственного rc.firewall, настраивающего ipchains:

#!/bin/sh

# rc.firewall Linux kernel firewalling rules

# Leon Brooks (leon at brooks dot fdns dot net)

FW=/sbin/ipchains

ADD="$FW -A"

# Flush rules, for testing purposes

for i in I O F # A # If we enabled accounting too

do

${FW} -F $i

done

# Default policies:

${FW} -P input REJECT # Incoming policy: reject (quick error)

${FW} -P output ACCEPT # Output policy: accept

${FW} -P forward DENY # Forwarding policy: deny

# Input Rules:

# Loopback-interface (local access, eg, to local nameserver):

${ADD} input -j ACCEPT -s localhost/32 -d localhost/32

# Local Ethernet-interface:

# Redirect to Squid proxy server:

${ADD} input -p tcp -d 0/0 80 -j REDIRECT 8080

# Accept packets from local network:

${ADD} input -j ACCEPT -s localnet/8 -d 0/0 -i eth0

# Only required for other types of traffic (FTP, Telnet):

# Forward localnet with masquerading (udp and tcp, no icmp!):

${ADD} forward -j MASQ -p tcp -s localnet/8 -d 0/0

${ADD} forward -j MASQ -P udp -s localnet/8 -d 0/0

Как заметил Andrew Shipton для ядер 2.0.x вам не нужно включать форвард пакетов, но для ядер 2.1.x и 2.2.x, использующих ipchains, вам необходимо сделать это. Форвард пакетов включается следующей командой:

echo 1 > /proc/sys/net/ipv4/ip_forward

17.4 Прозрачное кеширование на Linux 2.4 и netfilter

Замечание: эта информация взята из Daniel Kiracofe's Transparent Proxy with Squid mini-HOWTO.

Вам нужно собрать новое ядро. Убедитесь, что в ядро включены все указанные опции (а не собраны модулями):

  • Networking support

  • Sysctl support

  • Network packet filtering

  • TCP/IP networking

  • Connection tracking (Under ``IP: Netfilter Configuration'' in menuconfig)

  • IP tables support

  • Full NAT

  • REDIRECT target support

  • /proc filesystem support

Вы должны сказать NO для ``Fast switching''

После сборки ядра установите его и перегрузитесь.

Вам необходимо включить форвард пакетов (в вашем стартовом скрипте):

echo 1 > /proc/sys/net/ipv4/ip_forward

Используйте команду iptables, чтобы заставить ваше ядро перехватывать HTTP-соединения и направлять их на Squid:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]