* [Sysadmins] ALTLinux - заворачивание http-трафика iptables->squid
@ 2007-12-29 7:58 Хихин Руслан
2007-12-30 11:19 ` Olvin
0 siblings, 1 reply; 2+ messages in thread
From: Хихин Руслан @ 2007-12-29 7:58 UTC (permalink / raw)
To: ALT Linux sysadmin discuss
[-- Attachment #1: Type: text/plain, Size: 6579 bytes --]
Здравствуйте !
Получил на форуме
http://forum.oszone.net/post-706093.html#post706093
такой вопрос :
Затрудняюсь с ходу ответить, может у кого будут какие сооброжения ?
---------- Пересланное сообщение ----------
Subject: [Общий по Linux] ALTLinux - заворачивание http-трафика
iptables->squid
Date: 29 декабря 2007
From: Компьютерный форум OSzone.net <techadmin@oszone.net>
Форум: Общий по Linux
Тема: ALTLinux - заворачивание http-трафика iptables->squid
(http://forum.oszone.net/newpostinthread-97007.html)
Автор: morok
Текст сообщения:
===>>>-----------------------------------------------
Добрый день...
поставили передо мной такую банальную задачу организации интернета:
1. любые приложения не ходящие по http должны коннектица прозрачно(без
маппинга портов и соксификации через прокси)
2. рулить доступом пользователей http, и считать трафик по каждому
В распоряжении имелось:
1. ADLS-интернет
2. локальная сеть
3. интернет-маршрутизатор на базе AltLinux 4 Desctop с 2мя сетевыми
интерфейсами
eth0 - в ADSL, и eth1 - в сеть
Решил сделать так:
для прозрачного доступа пользователей в интернет NATить адреса в
IPTables, и поднять PPPoE для коннекта пользователей. Для
контролирования HTTP - заворачивать в IPTables запросы с 80 порта на
прозрачный прокси-сервер Squid.
Поднял NAT+PPPoE, поднял squid...по отдельности все работает, но как
только я делаю squid прозрачным и заворачиваю запросы с 80 порта на
squid - http работать отказывается...
скрипт для Iptables
-------------------------------------
#!/bin/sh
function get_addr()
{
IFCONFIG='/sbin/ifconfig';
HEAD='head -2';
TAIL='tail -1';
CUT='cut -d: -f2';
IP=`$IFCONFIG $1 | $HEAD | $TAIL | awk '{print $2}' | $CUT`;
echo $IP;
}
### Внешний интерфейс
EXTDEV="eth0"
### внутренний интерфейс
PPPOEDEV="eth1"
### сеть для PPPOE клиентов.
INETWORKIP="192.168.100.0/255.255.255.0"
EXTERNALIP=`get_addr $EXTDEV`
ENETWORKIP=$EXTERNALIP+"/255.255.255.255"
INTERNALIP=`get_addr $INTDEV`
LOOPBACK="127.0.0.1"
ANYWHERE="0.0.0.0/0"
PORTS="1024:65535"
INTDEV="ppp+"
/sbin/depmod -a
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_tables
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_mangle
/sbin/modprobe iptable_nat
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_limit
/sbin/modprobe ipt_MASQUERADE
/sbin/modprobe ipt_owner
/sbin/modprobe ipt_REJECT
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_conntrack_irc
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_nat_irc
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
for file in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo 1 > $file
done
for file in /proc/sys/net/ipv4/conf/*/accept_redirects; do
echo 0 > $file
done
for file in /proc/sys/net/ipv4/conf/*/accept_source_route; do
echo 0 > $file
done
/sbin/iptables -F
/sbin/iptables -F -t nat
/sbin/iptables -N ALLOW_ICMP
/sbin/iptables -N ALLOW_PORTS
/sbin/iptables -N CHECK_FLAGS
/sbin/iptables -N DENY_PORTS
/sbin/iptables -N DST_EGRESS
/sbin/iptables -N KEEP_STATE
/sbin/iptables -N SRC_EGRESS
# По умолчанию все входящие пакеты сбрасываем
/sbin/iptables -P INPUT DROP
/sbin/iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
/sbin/iptables -A INPUT -j ACCEPT -s $EXTERNALIP -d $ANYWHERE
/sbin/iptables -A INPUT -j ACCEPT -s $ANYWHERE -d $ANYWHERE -i $INTDEV
/sbin/iptables -A INPUT -j ACCEPT -s $ANYWHERE -d $ANYWHERE -i lo
/sbin/iptables -A INPUT -j ACCEPT -s $ANYWHERE -d $ANYWHERE -i
$EXTDEV -m state --state RELATED,ESTABLISHED
/sbin/iptables -A INPUT -j ACCEPT -p icmp -s $ANYWHERE -d $ANYWHERE
/sbin/iptables -A INPUT -j ACCEPT -p udp -s $INETWORKIP --sport 53 -d
$ANYWHERE
# По умолчанию все исходящие пакеты сбрасываем
/sbin/iptables -P OUTPUT DROP
/sbin/iptables -A OUTPUT -j ACCEPT -s $ANYWHERE -d $ANYWHERE -o $INTDEV
/sbin/iptables -A OUTPUT -j ACCEPT -s $ANYWHERE -d $EXTERNALIP
/sbin/iptables -A OUTPUT -j ACCEPT -s $ANYWHERE -d $ANYWHERE -o lo
/sbin/iptables -A OUTPUT -j ACCEPT -s $ANYWHERE -d $ANYWHERE -o
$EXTDEV -m state --state RELATED,ESTABLISHED
/sbin/iptables -A OUTPUT -j ACCEPT -p udp -s $EXTERNALIP -d
$ANYWHERE --dport 53
/sbin/iptables -A OUTPUT -j ACCEPT -p icmp -s $ANYWHERE -d $ANYWHERE
/sbin/iptables -A OUTPUT -j ACCEPT -s $ANYWHERE -d $ANYWHERE -o
$EXTDEV -m state --state RELATED,ESTABLISHED
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -A FORWARD -j ACCEPT -s $ANYWHERE -d $ANYWHERE -i $INTDEV
/sbin/iptables -A FORWARD -j ACCEPT -p icmp -s $ANYWHERE -d $ANYWHERE -i
$INTDEV
### редирект HTTP запросов на прокси сервер Squid.
/sbin/iptables -t nat -A PREROUTING -i $INTDEV -p tcp --dport 80 -j
REDIRECT --to-port 3128
## Маскарадинг клиентов
/sbin/iptables -t nat -A POSTROUTING -j SNAT -s $INETWORKIP -d
$ANYWHERE -o $EXTDEV --to $EXTERNALIP
/sbin/iptables -t nat -A POSTROUTING -j MASQUERADE -s $INETWORKIP -d
$ANYWHERE -o $EXTDEV
## Запуск PPPOE-SERVER
killall -w -9 pppoe-server
/usr/sbin/pppoe-server -I $PPPOEDEV -L $INTERNALIP
-----------------------------------------
squid.conf
---------------------------
http_port 3128 transparent
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
cache_mem 20 MB
maximum_object_size 16192 KB
cache_dir ufs /home/slaven/squid/cache 1000 16 256
emulate_httpd_log on
access_log /home/slaven/squid/logs/access.log squid
cache_log /dev/null
cache_store_log none
acl office src 192.168.100.0/255.255.255.0
acl all src 0.0.0.0/0.0.0.0
acl localhost src 127.0.0.1/255.255.255.255
acl CONNECT method CONNECT
http_access deny all !office
icp_access allow all
---------------------------
Браузер по таймауту говорит, что невозможно отобразить страницу.
а access.log сквидовский ловит подобное:
-----------------------------------------
1198840773.503 179912 192.168.100.1 TCP_MISS/504 1461 GET
http://www.google.ru/complete/search? - DIRECT/216.239.59.104 text/html
------------------------------------------
Если делаю squid непрозрачным, то он валит в браузер сообщение о
неправильно переданном запросе, и аналогичную запись делает в
access.log.
На момент написания поста перерыл просторы инета в поисках решения, но
поа безрезультатно. Буду признателен за любую помощь
===>>>-----------------------------------------------
Перейти в тему: http://forum.oszone.net/newpostinthread-97007.html
--
А ещё говорят так (fortune):
I want to kill everyone here with a cute colorful Hydrogen Bomb!!
________________________________________________________________________
С уважением Хихин Руслан
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 197 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [Sysadmins] ALTLinux - заворачивание http-трафика iptables->squid
2007-12-29 7:58 [Sysadmins] ALTLinux - заворачивание http-трафика iptables->squid Хихин Руслан
@ 2007-12-30 11:19 ` Olvin
0 siblings, 0 replies; 2+ messages in thread
From: Olvin @ 2007-12-30 11:19 UTC (permalink / raw)
To: hihin, ALT Linux sysadmin discuss
Хихин Руслан пишет:
> Браузер по таймауту говорит, что невозможно отобразить страницу.
> а access.log сквидовский ловит подобное:
> -----------------------------------------
> 1198840773.503 179912 192.168.100.1 TCP_MISS/504 1461 GET
> http://www.google.ru/complete/search? - DIRECT/216.239.59.104 text/html
> ------------------------------------------
>
> Если делаю squid непрозрачным, то он валит в браузер сообщение о
> неправильно переданном запросе, и аналогичную запись делает в
> access.log.
Минутку, если непрозрачный сквид (это когда прокси руками прописан в
браузере) даёт отлуп, то с какой стати ему не давать отлуп в прозрачном
режиме? Вы пробовали с дефолтными конфигами, где нет прозрачного
проксирования? Когда это заработает, тогда только нужно крутить дальше.
По существу: проверьте, пропускает ли сервер запросы с localhost. У вас
для localhost нету разрешения.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2007-12-30 11:19 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-12-29 7:58 [Sysadmins] ALTLinux - заворачивание http-трафика iptables->squid Хихин Руслан
2007-12-30 11:19 ` Olvin
ALT Linux sysadmins discussion
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/sysadmins/0 sysadmins/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 sysadmins sysadmins/ http://lore.altlinux.org/sysadmins \
sysadmins@lists.altlinux.org sysadmins@lists.altlinux.ru sysadmins@lists.altlinux.com
public-inbox-index sysadmins
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.sysadmins
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git