Есть роутер, он же шлюз (192.168.0.2), который водит всех в инет через NAT и DHCP-сервер, который выдает всем IP. Я поднимаю второй шлюз на Ubuntu и ставлю туда прокси. Идея в том, чтобы админы юзали в качестве шлюза NAT-железку, а у юзеров в качестве шлюза стоял прокси, у которого в свою очередь шлюзом является NAT-железка.
Сейчас у всех соединение как у админа на картинке. Вопрос в том получится ли сделать полную картину, если на убунте будет один сетевой интерфейс?
Сори, если не ясно излагаю вопрос - впервые обращаюсь за помощью на форум, до этого всегда справлялся сам.
Могу выложить конфиги сквида, iptables и всего, что попросите. В данный момент Ubuntu уже работает как шлюз, но я наверное накосячил с настройкой и сквид не фильтрует.
Пользователь решил продолжить мысль 16 Апреля 2013, 11:57:38:
Вот решил не ждать пока попросят. Всё-равно конфиги выкладывать придется:
IPTABLES*nat
:OUTPUT ACCEPT [0:0]
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
# Включаем NAT
-A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE
#for squid
-A PREROUTING -s 192.168.0.0/24 ! -d 192.168.0.100 -p tcp -m multiport --dport 80,8080 -j REDIRECT --to-port 3128
-A PREROUTING -s 192.168.0.0/24 ! -d 192.168.0.100 -p udp -m multiport --dport 80,8080 -j REDIRECT --to-port 3128
COMMIT
*filter
:FORWARD ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
# Разрешаем трафик на loopback-интерфейсе
-A INPUT -i lo -j ACCEPT
# Разрешаем доступ из внутренней сети наружу
-A FORWARD -i eth0 -o eth0 -j ACCEPT
# Разрешаем ответы из внешней сети
-A FORWARD -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
COMMIT
# ПРОБОВАЛ ТАКЖЕ СЛЕДУЮЩИЕ ВАРИАНТЫ ДЛЯ ЗАВОРОТА НА СКВИД:
#-A OUTPUT -p tcp --dport 80 -j DNAT --to-destination 192.168.0.100:3128
#-A PREROUTING -i eth0 ! -d 192.168.0.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.0.100:3128
#-A PREROUTING -i eth0 -p tcp -–dport 443 -s 192.168.0.0/24 -j REDIRECT –to-ports 3128
#-A PREROUTING -p tcp -m multiport --dport 80,443 -j REDIRECT --to-port 3128
#-A PREROUTING -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.1:3128
#-A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128
#-A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 3128
SQUID.CONFhttp_port 3128 transparent
acl all src 0/0
acl localnet src 192.168.0.0/24
icp_port 0
cache_mem 256 MB
maximum_object_size_in_memory 512 KB
maximum_object_size 120480 KB
cache_dir ufs /var/spool/squid 5000 32 256
cache_swap_low 90
cache_swap_high 95
logfile_rotate 5
acl SSL_ports port 443 # https
#acl SSL_ports port 563 # snews
#acl SSL_ports port 873 # rsync
acl Safe_ports port 22 # SSH-connection
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
#acl Safe_ports port 70 # gopher
#acl Safe_ports port 210 # wais
#acl Safe_ports port 1025-65535 # unregistered ports
#acl Safe_ports port 280 # http-mgmt
#acl Safe_ports port 488 # gss-http
#acl Safe_ports port 591 # filemaker
#acl Safe_ports port 777 # multiling http
#acl Safe_ports port 631 # cups
#acl Safe_ports port 873 # rsync
#acl Safe_ports port 901 # SWAT
acl CONNECT method CONNECT
http_access allow localnet
http_access deny all
http_access deny !Safe_ports
error_directory /usr/share/squid/errors/Russian-1251
memory_pools on
memory_pools_limit 30 MB
INTERFACESauto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.0.100
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.2
post-up iptables-restore < /etc/iptables.up.rules