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


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Не получается настроить прозрачный прокси  (Прочитано 4822 раз)

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

Оффлайн dim-mik

  • Автор темы
  • Участник
  • *
  • Сообщений: 104
    • Просмотр профиля
Re: Не получается настроить прозрачный прокси
« Ответ #15 : 27 Сентября 2010, 21:11:32 »
пишу
iptables-save > /etc/iptables
смотрю файл /etc/iptables - пустой

После ввода
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.1:3128
sudo iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
iptables-save > /etc/iptables

смотрю файл /etc/iptables
# Generated by iptables-save v1.4.4 on Mon Sep 27 19:57:44 2010
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.1:3128
sudo iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
COMMIT
# Completed on Mon Sep 27 19:57:44 2010

Оффлайн dim-mik

  • Автор темы
  • Участник
  • *
  • Сообщений: 104
    • Просмотр профиля
Re: Не получается настроить прозрачный прокси
« Ответ #16 : 19 Ноября 2010, 15:31:39 »
Удалось настроить прозрачный прокси следующим способом.

/etc/sysctl.conf
net.ipv4.ip_forward = 1

iptables -t nat -A PREROUTING -s 192.168.0.1 -p tcp --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.0.1:3128
iptables -t nat -A POSTROUTING -j MASQUERADE

Порт 80 перенаправляется на Squid3, все остальное мимо.

/etc/squid3/squid.conf
http_port 3128 transparent
acl admin arp 01:02:03:04:05:06 # mac адрес компьютера admin
acl comp1 arp 01:02:03:04:05:07 # mac адрес компьютера comp1
acl comp2 arp 01:02:03:04:05:08 # mac адрес компьютера comp2
acl wlall url_regex "/etc/squid3/wlall"  # список белых сайтов для всех
acl comp1 url_regex "/etc/squid3/wlcomp1"  # список белых сайтов для comp1
acl comp2 url_regex "/etc/squid3/wlcomp2"  # список белых сайтов для comp2
http_access allow admin # разрешить admin все
http_access allow comp1 wlall # разрешить comp1 список wlall
http_access allow comp1 wlcomp1 # разрешить comp1 список wlcomp1
http_access allow comp2 wlall # разрешить comp2 список wlall
http_access allow comp2 wlcomp2 # разрешить comp2 список wlcomp2
http_access deny all  

Из браузеров пускает только по mac адресу компьютера
и только на те сайты, которые записаны в списке.
Все остальное (аськи, почтовики, клиент-банки и др.) ходит без ограничений.
Для определенных раскладов то что нужно.
Но в некоторых случаях хотелось бы закрыть все порты,
а открыть только 80, 25, 110, 465 и т.д.
Как сделать не пойму.
« Последнее редактирование: 19 Ноября 2010, 16:03:08 от dim-mik »

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13763
    • Просмотр профиля
Re: Не получается настроить прозрачный прокси
« Ответ #17 : 19 Ноября 2010, 15:33:46 »
ИМХО, следующая строка портит весь сахараин, позволяя пакетам на 80-ый порт гулять мимо прокси

iptables -t nat -A PREROUTING -s 192.168.0.1 -p tcp --dport 80 -j ACCEPT

Да и порт squid расходится с тем куда перенаправляется
« Последнее редактирование: 19 Ноября 2010, 15:44:36 от fisher74 »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: Не получается настроить прозрачный прокси
« Ответ #18 : 19 Ноября 2010, 15:44:14 »
ИМХО, следующая строка портит весь сахараин, позволяя пакетам на 80-ый порт гулять мимо прокси

iptables -t nat -A PREROUTING -s 192.168.0.1 -p tcp --dport 80 -j ACCEPT


Пакетам с единственного адреса. (И я подозреваю, что это адрес самого сервера)
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13763
    • Просмотр профиля
Re: Не получается настроить прозрачный прокси
« Ответ #19 : 19 Ноября 2010, 15:58:10 »
Угу, я - слепой, но порты всё равно разные: перенаправляется на 3128, а squid слушает 3129

Оффлайн dim-mik

  • Автор темы
  • Участник
  • *
  • Сообщений: 104
    • Просмотр профиля
Re: Не получается настроить прозрачный прокси
« Ответ #20 : 19 Ноября 2010, 16:04:45 »
Ошибка механическая при вводе (стоит 3128)
http_port 3128 transparent
Вопрос открыт.
« Последнее редактирование: 19 Ноября 2010, 16:14:19 от dim-mik »

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13763
    • Просмотр профиля
Re: Не получается настроить прозрачный прокси
« Ответ #21 : 19 Ноября 2010, 16:29:15 »
Ну так запрети таблесами всю цепочку FORWARD, а то что нужно разреши
sudo iptables -P FORWARD DROP
sudo iptables -A FORWARD -p tcp -m multiport --dports 25,110,465 -j ACCEPT

Оффлайн dim-mik

  • Автор темы
  • Участник
  • *
  • Сообщений: 104
    • Просмотр профиля
Re: Не получается настроить прозрачный прокси
« Ответ #22 : 19 Ноября 2010, 17:06:21 »
sudo iptables -P FORWARD DROP
все запрещается

sudo iptables -A FORWARD -p tcp -m multiport --dports 80,8080,3128,25,110,465 -j ACCEPT
ничего не разрешается

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13763
    • Просмотр профиля
Re: Не получается настроить прозрачный прокси
« Ответ #23 : 19 Ноября 2010, 17:23:25 »
покажи полностью таблесы
sudo iptables-save

Оффлайн dim-mik

  • Автор темы
  • Участник
  • *
  • Сообщений: 104
    • Просмотр профиля
Re: Не получается настроить прозрачный прокси
« Ответ #24 : 19 Ноября 2010, 17:43:45 »
# Generated by iptables-save v1.4.4 ...
*filter
:INPUT ACCEPT [20:2021]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A FORWARD -p tcp -m multiport --dports 80,8080,3128,25,110,465 -j ACCEPT
COMMIT
# Completed on ...
# Generated by iptables-save v1.4.4 ...
*nat
:PREROUTING ACCEPT [4:545]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
iptables -t nat -A PREROUTING -s 192.168.0.1/32 -p tcp --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.0.1:3128
iptables -t nat -A POSTROUTING -j MASQUERADE
COMMIT
# Completed on ...

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13763
    • Просмотр профиля
Re: Не получается настроить прозрачный прокси
« Ответ #25 : 19 Ноября 2010, 17:52:01 »
Добавь
sudo iptables -I FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

Оффлайн dim-mik

  • Автор темы
  • Участник
  • *
  • Сообщений: 104
    • Просмотр профиля
Re: Не получается настроить прозрачный прокси
« Ответ #26 : 19 Ноября 2010, 18:22:07 »
Заработало только получение почты по 110 порту.
Отправка по 465 - нет.
Mozilla - нет.

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13763
    • Просмотр профиля
Re: Не получается настроить прозрачный прокси
« Ответ #27 : 19 Ноября 2010, 18:36:11 »
Видимо conntrack не осиляет
sudo iptables -A FORWARD -p tcp --sports 465 -j ACCEPT
А вообще, тут по хорошему бы ещё ограничения по source и destination адресам добавить....

Оффлайн dim-mik

  • Автор темы
  • Участник
  • *
  • Сообщений: 104
    • Просмотр профиля
Re: Не получается настроить прозрачный прокси
« Ответ #28 : 20 Ноября 2010, 18:27:32 »
Не получается.
Пните в хороший мануал по iptables.

Оффлайн Unreg

  • Активист
  • *
  • Сообщений: 751
  • Ubuntu 8.04 / Acer Aspire One 110 > Debian 5.04
    • Просмотр профиля
    • LJ
Re: Не получается настроить прозрачный прокси
« Ответ #29 : 20 Ноября 2010, 18:53:53 »
wan=eth1 lan=eth0?
подсеть для клиентов 192.168.0.0/24?
iptables-restore этого сюда

# Generated by iptables-save v1.4.2 on Sat Nov 20 18:48:59 2010
*raw
:PREROUTING ACCEPT [139426227:87240434263]
:OUTPUT ACCEPT [32812158:32158573561]
COMMIT
# Completed on Sat Nov 20 18:48:59 2010
# Generated by iptables-save v1.4.2 on Sat Nov 20 18:48:59 2010
*mangle
:PREROUTING ACCEPT [137986412:86612972545]
:INPUT ACCEPT [27669636:18390482776]
:FORWARD ACCEPT [109870422:68157571813]
:OUTPUT ACCEPT [32706211:32059782527]
:POSTROUTING ACCEPT [142587047:100194531492]
-A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
COMMIT
# Completed on Sat Nov 20 18:48:59 2010
# Generated by iptables-save v1.4.2 on Sat Nov 20 18:48:59 2010
*nat
:PREROUTING ACCEPT [1350920:115145020]
:POSTROUTING ACCEPT [4168355:233749824]
:OUTPUT ACCEPT [479954:33217489]
-A PREROUTING -s 192.168.0.0/24 ! -d 192.168.0.0/24 -i eth0 -p tcp  -m multiport --dports 80,8080 -j DNAT --to-destination 192.168.0.1:3128 -v
-A POSTROUTING -s 192.168.0.0/24 -o eth1 -j MASQUERADE -v
COMMIT
# Completed on Sat Nov 20 18:48:59 2010
# Generated by iptables-save v1.4.2 on Sat Nov 20 18:48:59 2010
*filter
:INPUT ACCEPT [26547:2117586]
:FORWARD DROP [46:3509]
:OUTPUT ACCEPT [32706226:32059785725]
-A FORWARD -m conntrack --ctstate INVALID -j DROP -v
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -v
-A FORWARD -s 192.168.0.0/24 -i eth0 -m conntrack --ctstate NEW -j ACCEPT -v
-A FORWARD -m conntrack --ctstate DNAT -j ACCEPT -v
COMMIT
# Completed on Sat Nov 20 18:48:59 2010

Пользователь решил продолжить мысль 20 Ноября 2010, 19:11:07:
кстати говоря

$ uname -r; /usr/sbin/iptables -V
Цитировать
2.6.30.1-l7
iptables v1.4.4
$ sudo iptables-save -t nat
Цитировать
-A PREROUTING ! -d 172.16.1.0/24 -i eth1 -p tcp -m iprange --src-range 172.16.1.2-172.16.1.254 -m multiport --dports 80,8080 -j DNAT --to-destination 172.16.1.1:3131
а
$ uname -r; /sbin/iptables -V
2.6.26-2-686
iptables v1.4.2
$ sudo iptables-save -t nat

Цитировать
-A PREROUTING -d ! 192.168.5.0/24 -i eth1 -p tcp -m iprange --src-range 192.168.5.2-192.168.5.254 -m multiport --dports 80,8080 -j DNAT --to-destination 192.168.5.1:3128



Пользователь решил продолжить мысль 20 Ноября 2010, 19:23:34:
да, и что бы соседи на прот прокси не ломились

Цитировать
sudo iptables -I INPUT -m tcp -p tcp --dport 3128 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -v
sudo iptables -I INPUT -s 192.168.0.0/24 -d 192.168.0.1 -i eth0 -m tcp -p tcp --dport 3128 -m conntrack --ctstate NEW -j ACCEPT -v
sudo iptables -I INPUT 3 -m tcp -p tcp --dport 3128 -j DROP -v
« Последнее редактирование: 20 Ноября 2010, 19:29:53 от Unreg »

 

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