1 (24.02.2010 14:18:24 отредактировано dolf85)

Всем привет! Такая проблема, есть сеть 192.168.0.0/24, есть шлюз debian lenny 192.168.0.1, хочу на некоторые ip-адреса в инете дать полный доступ всем, а весь остальной инет для подсети 192.168.0.128/25 завернуть в сквид, а некоторые привелигированные пользователи должны ходить всюду без прокси, делаю так:
#!/bin/bash
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe iptable_nat
modprobe ip_nat_ftp
echo 1 > /proc/sys/net/ipv4/ip_forward


iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -t nat -F POSTROUTING
iptables -t nat -F PREROUTING

iptables -A INPUT -p esp -j ACCEPT
iptables -A OUTPUT -p esp -j ACCEPT
iptables -A INPUT -p ah -j ACCEPT
iptables -A OUTPUT -p ah -j ACCEPT
iptables -A INPUT -p gre -j ACCEPT
iptables -A OUTPUT -p gre -j ACCEPT


iptables -A INPUT -j ACCEPT -s 192.168.0.1/24 -d 0/0
iptables -A INPUT -j ACCEPT -s 79.170.186.215/24 -d 0/0
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth1 -j MASQUERADE

#Пытаюсь всем пользователям разрешить ходить напрямую
iptables -t nat -A PREROUTING -s 192.168.0.0/24 -p tcp --destination 79.170.111.11 -j ACCEPT
iptables -t nat -A PREROUTING -s 192.168.0.0/24 -p tcp --destination 217.11.1.50 -j ACCEPT

#Теперь заворачиваю всю непривелигированную подсеть в сквид
iptables -t nat -A PREROUTING -i eth0 -s 192.168.0.128/25 -p tcp -d ! 192.168.0.1 --dport 80 -j REDIRECT --to-port 3128

#Даю полный доступ привелигированным пользователям
iptables -A FORWARD -d 192.168.0.28/32 -j ACCEPT
iptables -A FORWARD -d 192.168.0.41/32 -j ACCEPT
iptables -A FORWARD -d 192.168.0.0/24 -j DROP

Squid.conf:

http_port 192.168.0.1:3128 transparent
acl office src 192.168.0.128/25
http_access allow office

delay_pools 1
delay_class 1 1
delay_access 1 allow office

delay_parameters 1 8000/8000

В чём проблема? у меня не срабатывает ни прямой доступ, ни пользователи через сквид не могу работать в инете.

2 (25.02.2010 11:05:01 отредактировано Cr3w)

Как-то так... Возможно что-нибудь забыл)

#!/bin/bash

# Clear all tables
iptables -t filter -F
iptables -t filter -X
iptables -t nat -F
iptables -t nat -X

# Default rules
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

# Allow all at localhost
iptables -A INPUT -i lo -s 127.0.0.1 -j ACCEPT
iptables -A OUTPUT -o lo -d 127.0.0.1 -j ACCEPT

# Allow I/O at localnet
iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT
iptables -A OUTPUT -d 192.168.0.0/24 -j ACCEPT
iptables -A FORWARD -d 192.168.0.0/24 -j ACCEPT

# NAT/Masquerade
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth1 -j MASQUERADE
#or
#iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth1 -j SNAT --to-source #INTERNET_IP#

# Allow FORWARD all localnet users to allowed hosts
iptables -A FORWARD -s 192.168.0.0/24 -d 79.170.111.11 -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -d 217.11.1.50 -j ACCEPT

# Allow FORWARD privileged users to all
iptables -A FORWARD -s 192.168.0.28 -j ACCEPT
iptables -A FORWARD -s 192.168.0.41 -j ACCEPT

# Redirect to Squid
iptables -t nat -A PREROUTING -s 192.168.0.128/25 -p tcp -m multiport --dport 80,3128,8080 -j REDIRECT --to-port 3128

3 (25.02.2010 11:11:11 отредактировано Hrafn)

Туплю ac
не обращайте внимания

4

iptables -A INPUT -s lo -j ACCEPT
iptables -A INPUT -s кому_можно_админить_сервер -j ACCEPT
iptables -A INPUT -s кому_в_сквид -p tcp --dport 3128 -m state --state NEW -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A FORWARD -s кому_напрямую -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -t nat -A POSTROUNTING -s кому_напрямую -o исходящий_интерфейс_смотрящий_в_интернет -j MASQUERADE
iptables -t nat -A PREROUTING -s кому_в_сквид -p tcp --dport 80 -j REDIRECT --to-port 3128

iptables -P INPUT DROP
iptables -P FORWARD DROP

5

Получилось?

Говорила мне мама не работай под рутом.

6

Пытался сделать вот так:

!/bin/bash
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe iptable_nat
modprobe ip_nat_ftp
echo 1 > /proc/sys/net/ipv4/ip_forward


iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -t nat -F POSTROUTING
iptables -t nat -F PREROUTING

iptables -A INPUT -p esp -j ACCEPT
iptables -A OUTPUT -p esp -j ACCEPT
iptables -A INPUT -p ah -j ACCEPT
iptables -A OUTPUT -p ah -j ACCEPT
iptables -A INPUT -p gre -j ACCEPT
iptables -A OUTPUT -p gre -j ACCEPT


iptables -A INPUT -j ACCEPT -s 192.168.0.1/24 -d 0/0
iptables -A INPUT -j ACCEPT -s 79.170.186.211/24 -d 0/0
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth1 -j MASQUERADE

iptables -A FORWARD -s 192.168.0.0/24 -d 79.170.111.11/32 -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -d 217.11.1.50/32 -j ACCEPT

iptables -t nat -A PREROUTING -i eth0 -s 192.168.0.128/25 -p tcp -d ! 79.170.111.11 --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i eth0 -s 192.168.0.128/25 -p tcp -d ! 217.11.1.50 --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i eth0 -s 192.168.0.128/25 -p tcp -d ! 192.168.0.1 --dport 80 -j REDIRECT --to-port 3128

iptables -A FORWARD -d 192.168.0.20/32 -j ACCEPT
iptables -A FORWARD -d 192.168.0.21/32 -j ACCEPT
iptables -A FORWARD -d 192.168.0.22/32 -j ACCEPT
iptables -A FORWARD -d 192.168.0.23/32 -j ACCEPT
iptables -A FORWARD -d 192.168.0.25/32 -j ACCEPT
iptables -A FORWARD -d 192.168.0.40/32 -j ACCEPT
iptables -A FORWARD -d 192.168.0.111/32 -j ACCEPT
iptables -A FORWARD -d 192.168.0.112/32 -j ACCEPT

iptables -A FORWARD -d 192.168.0.0/24 -j DROP

При такой конфигурации у пользователей которых заворачиваю в сквид на все странички выпадает ошибка(192.168.0.133 TCP_DENIED/400 2260 GET error:invalid-request - NONE/- text/html) и не отображается, а у тех, кто прописан напрямую всё работает