Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Прозрачный прокси. Все перепробовал - не работает  (Прочитано 3055 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: Прозрачный прокси. Все перепробовал - не рk
« Ответ #15 : 30 Ноября 2009, 16:48:41 »
-A PREROUTING -i eth1 -p tcp -m tcp --dport 5190 -j REDIRECT --to-ports 3128
-A PREROUTING -i eth1 -p tcp -m tcp --dport 9091 -j REDIRECT --to-ports 3128
Насколько знаю я и википедия:
Squid — программный пакет, реализующий функцию кэширующего прокси-сервера для протоколов HTTP, FTP, Gopher и (в случае соответствующих настроек) HTTPS.
Те протоколы, что на портах 5190, 9091 к вышеперечисленным не относятся, и там кешировать нечего. Убираем.



-A FORWARD -s 192.168.0.0/24 -p tcp -m multiport --dports 5190 -j ACCEPT
-A OUTPUT -o eth1 -p tcp -m tcp --dport 443 -m state --state NEW -j ACCEPT
Просто лишнее.

-A INPUT -i eth1 -p tcp -m tcp --dport 443 -m state --state NEW -j ACCEPT
Тогда уж так:
-A INPUT -i eth1 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-P INPUT DROP
А то, всёравно то одно правило ничего незакрывает и по всем признакам во внешней сети появляется халявный прокси. Этими правилами закрывается всё, что приходит не на eth1 или lo.

-A FORWARD -o ppp0 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:1536 -j TCPMSS --clamp-mss-to-pmtu
-A FORWARD -o ppp0 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:1536 -j TCPMSS --clamp-mss-to-pmtu
-A FORWARD -o ppp0 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:1536 -j TCPMSS --clamp-mss-to-pmtu
-A FORWARD -o ppp0 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:1536 -j TCPMSS --clamp-mss-to-pmtu
Одного раза вполне достаточно.

Да, и что там в /proc/sys/net/ipv4/ip_forward ? Если 0, тогда нужно раскомментировать в /etc/sysctl.conf строку net.ipv4.ip_forward=1.

Пользователь решил продолжить мысль 30 Ноября 2009, 14:51:32:
-A POSTROUTING -o eth0 -j MASQUERADE
Насколько я понял, в качестве инета ppp0 вроде как. Тогда еще добавь:
-A POSTROUTING -o ppp0 -j MASQUERADE
« Последнее редактирование: 30 Ноября 2009, 16:52:03 от Mam(O)n »

Оффлайн Unreg

  • Активист
  • *
  • Сообщений: 751
  • Ubuntu 8.04 / Acer Aspire One 110 > Debian 5.04
    • Просмотр профиля
    • LJ
#!/bin/bash
#cat /etc/fwsec

SYSCTL="/sbin/sysctl -w"

# Required to enable IPv4 forwarding.
# Redhat users can try setting FORWARD_IPV4 in /etc/sysconfig/network to true
# Alternatively, it can be set in /etc/sysctl.conf
if [ "$SYSCTL" = "" ]
then
echo "1" > /proc/sys/net/ipv4/ip_forward
else
$SYSCTL net.ipv4.ip_forward="1"
fi

# This enables dynamic address hacking.
# This may help if you have a dynamic IP address \(e.g. slip, ppp, dhcp\).
if [ "$SYSCTL" = "" ]
then
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
else
$SYSCTL net.ipv4.ip_dynaddr="1"
fi

# This enables SYN flood protection.
# The SYN cookies activation allows your system to accept an unlimited
# number of TCP connections while still trying to give reasonable
# service during a denial of service attack.
if [ "$SYSCTL" = "" ]
then
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
else
$SYSCTL net.ipv4.tcp_syncookies="1"
fi

#rc.flush-iptables begin

#
# flush all the rules in the filter and nat tables.
#
iptables  -F -v
iptables  -t nat -F -v
iptables  -t mangle -F -v
#
# erase all chains that's not default in filter and nat table.
#
iptables  -X -v
iptables  -t nat -X -v
iptables -t mangle -X -v
#rc.flush-iprables end

#Интерфейсы
WAN=eth0
#WAN_VPN=ppp999
#VPN_IP="`ifconfig $WAN_VPN | head -n 2 | sed 'N;s/\n/ /' | awk '{print $8}' | sed -e 's/addr://'`"
LAN=eth1

WAN_IP="`ifconfig $WAN | head -n 2 | sed 'N;s/\n/ /' | awk '{print $7}'  | sed -e 's/addr://'`"
LAN_IP="`ifconfig $LAN | head -n 2 | sed 'N;s/\n/ /' | awk '{print $7}'  | sed -e 's/addr://'`"

SQUID_IP=$LAN_IP
SQUID_PORT="`grep transparent /etc/squid/squid.conf | awk '{print $2}'`"

#INT_NET=192.168.1.0/24
INT_NET="`ip addr show $LAN | grep inet | awk '{print $2}'`"

#Virtual Server
#http web server
iptables -A INPUT -p tcp -m state --state NEW --dport 80 -i $WAN -j ACCEPT -v
iptables -A PREROUTING -t nat -i $WAN -p tcp --dport 80 -j DNAT --to 192.168.1.2:80 -v

# Disabling SMB connections from Internet
iptables -A INPUT -i $WAN -p tcp --dport microsoft-ds -j DROP
iptables -A INPUT -i $WAN -p udp --dport microsoft-ds -j DROP

#NAT
#transparent proxy
echo "[+] Transparent proxy"
iptables -t nat -A PREROUTING -i $LAN -d ! $INT_NET -p tcp -m multiport --dport 80,8080 -j DNAT --to $SQUID_IP:$SQUID_PORT -v

iptables -F FORWARD -v
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT -v
iptables -A FORWARD -m conntrack --ctstate NEW -i $LAN -j ACCEPT -v
iptables -A FORWARD -m conntrack --ctstate DNAT -j ACCEPT -v
iptables -P FORWARD DROP -v
iptables -t nat -F POSTROUTING -v
#iptables -t nat -A POSTROUTING -s $INT_NET -o $WAN -j MASQUERADE -v
iptables -t nat -A POSTROUTING -s $INT_NET -o $WAN -j SNAT --to-source $WAN_IP -v

#iptables -t nat -A POSTROUTING -s $INT_NET -o $WAN_VPN -j SNAT --to-source $VPN_IP -v
#или
#iptables -t nat -A POSTROUTING -s $INT_NET -o $WAN_VPN -j MASQUERADE -v

iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu -v

ругайте
« Последнее редактирование: 02 Декабря 2009, 22:20:29 от Unreg »

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
ругайте
Цитировать
Пассажир ловит такси:
- Шеф, гони на Чехова!
- Чехов сука, гад, сволочь!

Ну а в остальном что ругать. Всё зависит от поставленных задач. Вот только это смущает:
iptables -A INPUT -p tcp -m state --state NEW --dport 80 -i $WAN -j ACCEPT -v
iptables -A PREROUTING -t nat -i $WAN -p tcp --dport 80 -j DNAT --to 192.168.1.2:80 -v
Тут либо одно либо другое. Вместе одно из правил теряет смысл.

Оффлайн Unreg

  • Активист
  • *
  • Сообщений: 751
  • Ubuntu 8.04 / Acer Aspire One 110 > Debian 5.04
    • Просмотр профиля
    • LJ
ну задача банальна - что можем - проксируем, что лень - через nat пускаем, + соседям по сети стараемся бесплатный доступ не подарить

если доступ в Интернет осуществляется при помощи VPN - снять символы комментария с соответствующих строк

iptables -A INPUT -p tcp -m state --state NEW --dport 80 -i $WAN -j ACCEPT -v
#iptables -A PREROUTING -t nat -i $WAN -p tcp --dport 80 -j DNAT --to 192.168.1.2:80 -v
WEB сервер на шлюзе
#iptables -A INPUT -p tcp -m state --state NEW --dport 80 -i $WAN -j ACCEPT -v
iptables -A PREROUTING -t nat -i $WAN -p tcp --dport 80 -j DNAT --to 192.168.1.2:80 -v
WEB сервер за шлюзом

потом настройка dns, dhcp, https://forum.ubuntu.ru/index.php?topic=74464.msg558098

 

Страница сгенерирована за 0.017 секунд. Запросов: 20.