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


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Помогите разобраться IPTABLES+SQUID3  (Прочитано 992 раз)

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

Оффлайн AROR

  • Автор темы
  • Новичок
  • *
  • Сообщений: 26
    • Просмотр профиля
Помогите разобраться IPTABLES+SQUID3
« : 27 Ноября 2014, 18:11:03 »
Доброго времени суток!
Бьюсь третий день, сквид ни в какую не хочет блокировать указанные мной ресурсы не из файла, ни напрямую.
Грешу на iptables. Т.к. новичок в этом, прошу вашей помоши, укажите на ошибку!
Если есть возможность как подправить конфиги, что бы доступ к интернету был только у членов домена.

squid.conf
acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1

acl SSL_ports port 443
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 CONNECT method CONNECT

acl blocked_urls url_regex vkontakte.ru vk.com
http_access deny blocked_urls

http_access allow manager localhost
http_access deny manager

http_access deny !Safe_ports

http_access deny CONNECT !SSL_ports

http_access allow localhost

http_access deny all

http_port 3128

hierarchy_stoplist cgi-bin ?

coredump_dir /var/spool/squid3

refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320

iptables
# Generated by iptables-save v1.4.8 on Thu Nov 27 16:58:57 2014
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A PREROUTING -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.111.2:3389
-A POSTROUTING -s 192.168.111.0/24 ! -d 192.168.111.0/24 -j SNAT --to-source 212.33.18.50
COMMIT
# Completed on Thu Nov 27 16:58:57 2014
# Generated by iptables-save v1.4.8 on Thu Nov 27 16:58:57 2014
*mangle
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
COMMIT
# Completed on Thu Nov 27 16:58:57 2014
# Generated by iptables-save v1.4.8 on Thu Nov 27 16:58:57 2014
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -s 127.0.0.1/32 -j ACCEPT
-A INPUT -s 192.168.111.1/32 -j ACCEPT
-A INPUT -s 192.168.111.0/24 -i eth1 -p tcp -m multiport --dports 22,53,80,123,3128 -m state --state NEW -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT
-A INPUT -s 192.168.111.0/24 -i eth1 -p icmp -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 3389 -j ACCEPT
-A INPUT -j ULOG
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -p tcp -m tcp --dport 3389 -j ACCEPT
-A FORWARD -s 192.168.111.0/24 -i eth1 -j ACCEPT
-A FORWARD -j ULOG
COMMIT
# Completed on Thu Nov 27 16:58:57 2014

firewall.sh
#!/bin/bash
# включаем проброс пакетов
echo 1 > /proc/sys/net/ipv4/ip_forward

# описываем переменные
cmd="/sbin/iptables -A"
inif="eth1"
outif="eth0"
our_net="192.168.111.0/24"

# очищаем правила
iptables -F
iptables -F -t nat
iptables -F -t mangle
iptables -X
iptables -Z

# все разрешаем
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

#пропускать ответы на запросы инициированные из внутренней подсети
$cmd FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$cmd INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#проброс пакетов из внутренней подсети на внешний интерфейс
$cmd POSTROUTING -s 192.168.111.0/24 ! -d 192.168.111.0/24 -j SNAT --to-source 212.33.18.50 -t nat

# вход сам на себя
$cmd INPUT -i lo -j ACCEPT
$cmd INPUT -s 127.0.0.1 -j ACCEPT
$cmd INPUT -s 192.168.111.1 -j ACCEPT

# открытиые порты для внутренней подсети
$cmd INPUT -s $our_net -p tcp -m multiport --dport 22,53,80,123,3128 -j ACCEPT -m state --state NEW --syn -i $inif
$cmd INPUT -s $our_net -p icmp -j ACCEPT -i $inif

# ssh на внешний интрефейс
$cmd INPUT -p tcp --dport 22 -j ACCEPT $outif
$cmd INPUT -p tcp --dport 80 -j ACCEPT -i $outif

# переадресация RDP на контроллер домена
$cmd INPUT -p tcp --dport 3389 -j ACCEPT -i $outif
$cmd PREROUTING -p tcp --dport 3389 -j DNAT --to-destination 192.168.111.2:3389 -t nat
$cmd FORWARD -p tcp --dport 3389 -j ACCEPT

#разрешенные порты для прямого доступа в интернет (почта, почта с ssl. браузер, браузер через https, icq, jabber, Gtalk)
#$cmd FORWARD -s 192.168.111.0/24 ! -d 192.168.111.0/24 -p tcp -m multiport --dport 25,80,8080,110,443,465,995,5190,5222,5223 -j ACCEPT -m state --state NEW --syn -i $inif

#полный прямой доступ
$cmd FORWARD -s 192.168.111.0/24 -j ACCEPT -i $inif

#только браузер
#$cmd FORWARD -p tcp --dport 80 -j ACCEPT -i $inif

#логирование
$cmd INPUT -j ULOG
$cmd FORWARD -j ULOG

#дропать все, что явно не разрешено
iptables -P FORWARD DROP
iptables -P INPUT DROP

/sbin/iptables-save > /etc/iptables

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Помогите разобраться IPTABLES+SQUID3
« Ответ #1 : 27 Ноября 2014, 19:23:06 »
Если вы хотите проконтролировать работу proxy, то разрешать весь filter/FORWARD наружу — не самая лучшая идея.
Шибко умный браузер может решить пойти в обход, когда proxy будет его отшибать.

Оффлайн AROR

  • Автор темы
  • Новичок
  • *
  • Сообщений: 26
    • Просмотр профиля
Re: Помогите разобраться IPTABLES+SQUID3
« Ответ #2 : 27 Ноября 2014, 21:35:31 »
Подскажите пожалуйста что поправить.

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Помогите разобраться IPTABLES+SQUID3
« Ответ #3 : 27 Ноября 2014, 21:39:40 »
-A FORWARD -s 192.168.111.0/24 -i eth1 -j ACCEPT
Данное правило разрешает любой транзитный трафик наружу.
С этим надо что-то делать.

Оффлайн AROR

  • Автор темы
  • Новичок
  • *
  • Сообщений: 26
    • Просмотр профиля
Re: Помогите разобраться IPTABLES+SQUID3
« Ответ #4 : 28 Ноября 2014, 07:52:39 »
А можно ли на этом этапе как то завернуть трафик на squid ?
Цитировать
#разрешенные порты для прямого доступа в интернет (почта, почта с ssl. браузер, браузер через https, icq, jabber, Gtalk)
#$cmd FORWARD -s 192.168.111.0/24 ! -d 192.168.111.0/24 -p tcp -m multiport --dport 25,80,8080,110,443,465,995,5190,5222,5223 -j ACCEPT -m state --state NEW --syn -i $inif

#полный прямой доступ
$cmd FORWARD -s 192.168.111.0/24 -j ACCEPT -i $inif

#только браузер
#$cmd FORWARD -p tcp --dport 80 -j ACCEPT -i $inif

Просто шлюз достался в таком виде, перечитал кучу форумов, пока что в голове весь пазл не сложился.
Если не сложно, поясните пожалуйста с конкретным примером, как переписать iptables что бы весь трафик шел через squid.

Оффлайн koshev

  • Старожил
  • *
  • Сообщений: 1709
  • חתול המדען
    • Просмотр профиля
Re: Помогите разобраться IPTABLES+SQUID3
« Ответ #5 : 28 Ноября 2014, 08:12:24 »
Доброго времени суток!
<skip>
Если есть возможность как подправить конфиги, что бы доступ к интернету был только у членов домена.
Доброго! Скажите, а домен у вас на чём построен?
OpenWrt 19.07

Оффлайн AROR

  • Автор темы
  • Новичок
  • *
  • Сообщений: 26
    • Просмотр профиля
Re: Помогите разобраться IPTABLES+SQUID3
« Ответ #6 : 28 Ноября 2014, 08:49:15 »
Домен на Win Server 2008 R2

Пользователь решил продолжить мысль 28 Ноября 2014, 08:59:45:
Получилось заблочить нужный сайт таким образом:
iptables -I FORWARD -d site.ru -j DROPМожно конечно рассмотреть как временный вариант (можно ли прикрутить список к айпитейблу?
Но конечно хотелось бы запустить проверку через прокси...
« Последнее редактирование: 28 Ноября 2014, 08:59:45 от AROR »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: Помогите разобраться IPTABLES+SQUID3
« Ответ #7 : 28 Ноября 2014, 12:27:17 »
Эта конструкция заблокирует только один адрес указанного сайта. Тот, который по чистой случайности окажется первым при запросе вашим правилом DNS сервера.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн koshev

  • Старожил
  • *
  • Сообщений: 1709
  • חתול המדען
    • Просмотр профиля
Re: Помогите разобраться IPTABLES+SQUID3
« Ответ #8 : 28 Ноября 2014, 13:54:32 »
Домен на Win Server 2008 R2
How to Force Proxy Settings Via Group Policy
Плюс можно SQUID подружить с AD через NTLM || Kerberos
Тогда маскарад на шлюзе не обязателен.
Я думаю, как-то в этом направлении нужно...
OpenWrt 19.07

 

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