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


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Правила iptables для squid  (Прочитано 7659 раз)

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

Оффлайн Solodoron

  • Автор темы
  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Правила iptables для squid
« : 03 Мая 2017, 12:21:31 »
Добрый день. Iptables занимаюсь впервые, поэтому хотел попросить вашего мнения, на сколько правильно все написано. Может какие то записи можно грамотнее написать. Ну и может что то нужно доработать.
iptables настроен на компьютере, где используется squid.

#!/bin/sh
#пересылка пакетов
echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X

iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

#Разрешаем трафик
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i enp3s0 -j ACCEPT

#разрешить принимать уже установленные соединения
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#ICMP
iptables -A INPUT -p icmp -j ACCEPT

#SSH
iptables -A INPUT -s 192.168.1.111/32 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP

#откроем доступ наружу из внутренней сети
iptables -A FORWARD -i enp3s0 -o eno1 -j ACCEPT

#влючаем NAT
iptables -t nat -A POSTROUTING -o eno1 -s 192.168.1.0/24 -j MASQUERADE

#Разрешить принимать ответы из внешней сети
iptables -A FORWARD -i eno1 -m state --state ESTABLISHED,RELATED -j ACCEPT

#Ограничим доступ во внутреннюю сеть снаружи
iptables -A FORWARD -i eno1 -o enp3s0 -j REJECT

#разрешить машинам ходить в интернет по портам
iptables -A FORWARD -p TCP -s 192.168.1.0/24 -m multiport --dport 80,443,53 -j ACCEPT
iptables -A FORWARD -p TCP -d 192.168.1.0/24 -m multiport --dport 80,443,53 -j ACCEPT
iptables -A FORWARD -p UDP -s 192.168.1.0/24 -m multiport --dport 53 -j ACCEPT
iptables -A FORWARD -p UDP -d 192.168.1.0/24 -m multiport --dport 53 -j ACCEPT

#Заворачиваем http на прокси
iptables -t nat -A PREROUTING -i enp3s0 ! -d 192.168.1.0/24 -p tcp -m multuport --dport 80,8080 -j DNAT --to 192.168.1.254:3228


Также через прокси работает wsus. Хочу написать ему правило, чтобы он мог работать только с серверами microsoft. Подскажите как это можно реализовать?


Пользователь добавил сообщение 03 Мая 2017, 13:32:56:
Конечно по аналогии, хотелось бы ограничить доступ компьютеру только в определенную подсеть, находящаяся в интернете.
Это правило поможет?
iptables -t filter -A FORWARD -s 192.168.0.10 -d 234.234.234.0/24 -p tcp -m tcp --dport 80 -j ACCEPT
« Последнее редактирование: 03 Мая 2017, 13:32:56 от Solodoron »

Оффлайн salvador

  • Участник
  • *
  • Сообщений: 106
    • Просмотр профиля
Re: Правила iptables для squid
« Ответ #1 : 03 Мая 2017, 14:44:28 »
Solodoron, для чего вам нужен squid, если у вас и без squid в интернет доступ открыт?

#влючаем NAT
iptables -t nat -A POSTROUTING -o eno1 -s 192.168.1.0/24 -j MASQUERADE

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Правила iptables для squid
« Ответ #2 : 03 Мая 2017, 15:19:27 »
Видимо чтобы трафик считать, немного рулить или экономить
#Заворачиваем http на прокси
iptables -t nat -A PREROUTING -i enp3s0 ! -d 192.168.1.0/24 -p tcp -m multuport --dport 80,8080 -j DNAT --to 192.168.1.254:3228

Оффлайн Solodoron

  • Автор темы
  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Re: Правила iptables для squid
« Ответ #3 : 03 Мая 2017, 15:28:18 »
salvador85, у меня весь трафик идет через прокси. Без прописанного прокси на компьютере выйти в интернет невозможно

#Заворачиваем http на прокси
iptables -t nat -A PREROUTING -i enp3s0 ! -d 192.168.1.0/24 -p tcp -m multuport --dport 80,8080 -j DNAT --to 192.168.1.254:3228

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Правила iptables для squid
« Ответ #4 : 03 Мая 2017, 16:10:17 »
Это  у Вас кальмар не правильно настроен. Точнее не так. В таблесах настроено для прозрачного прокси, а сам прокси под это не настроен.

Оффлайн salvador

  • Участник
  • *
  • Сообщений: 106
    • Просмотр профиля
Re: Правила iptables для squid
« Ответ #5 : 03 Мая 2017, 16:32:18 »
Solodoron, по всем портам в сети 192.168.1.0/24, кроме TCP 80 и 8080, вы пускаете в обход прокси.

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Правила iptables для squid
« Ответ #6 : 03 Мая 2017, 20:07:14 »
salvador85, Вы не совсем правы, так как
Без прописанного прокси на компьютере выйти в интернет невозможно
Т.е. Solodoron настройками браузера заворачивает все порты через прокси.

Оффлайн Solodoron

  • Автор темы
  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Re: Правила iptables для squid
« Ответ #7 : 04 Мая 2017, 16:22:28 »
В таблесах настроено для прозрачного прокси, а сам прокси под это не настроен.
fisher74 подскажите пожалуйста, что вы имеете ввиду.

Пользователь добавил сообщение 04 Мая 2017, 16:33:31:
Solodoron, по всем портам в сети 192.168.1.0/24, кроме TCP 80 и 8080, вы пускаете в обход прокси.
salvador85 Разве правило делает так, чтобы весь трафик пользователей шел через прокси, разве нет? Это позволяет мониторить деятельность пользователей в интернете
« Последнее редактирование: 04 Мая 2017, 16:33:31 от Solodoron »

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Правила iptables для squid
« Ответ #8 : 04 Мая 2017, 23:07:18 »
что вы имеете ввиду
именно то что написал.
Правило редректа заточено для прозрачного режима работы кальмара. А кальмара быть прозрачным не научили (судя по Вашим словам)

Разве правило делает так, чтобы весь трафик пользователей шел через прокси, разве нет?
Я Вас умоляю. Интернет уже давно не ограничивается только http. Я бы даже сказал, что http в 21-ом веке, наверное самый безобидный и худенький трафик.

Оффлайн salvador

  • Участник
  • *
  • Сообщений: 106
    • Просмотр профиля
Re: Правила iptables для squid
« Ответ #9 : 05 Мая 2017, 08:39:43 »
Solodoron, сейчас тенденция такая, что сквид может только смотреть на какие домены ходил пользователь, т.к. больше половина трафика зашифровано.
Я не зря спросил зачем вам прокси.

Я на ваши правило смотрю в целом и выдаю готовый результат.

Сейчас у вас настроено так, что если в системе не настроен прокси, то все имеют выход в интернет по всем портам кроме 80 и 8080.

На мой взгляд, firewall нужно настраивать без подобных дыр, если вы хотите всех пускать через прокси. Отдельные пк можно выпускать в обход прокси настоив nat только для них (при необходимости).

Оффлайн Solodoron

  • Автор темы
  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Re: Правила iptables для squid
« Ответ #10 : 05 Мая 2017, 09:57:27 »
salvador85и    fisher74
Основная задача нашего прокси - это выполнять функции кеширующего прокси.
Я подумал, почему бы не поэкспериментировать.

Я переработал конфиг прокси и вернул правила iptables к заводским.

#!/bin/sh
#пересылка пакетов
echo 1 > /proc/sys/net/ipv4/ip_forward

#Разрешаем траффик на lo
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i enp3s0 -j ACCEPT

#откроем доступ наружу из внутренней сети
iptables -A FORWARD -i enp3s0 -o eno1 -j ACCEPT

#влючаем NAT
iptables -t nat -A POSTROUTING -o eno1 -s 192.168.1.0/24 -j MASQUERADE

#Разрешить принимать ответы из внешней сети
iptables -A FORWARD -i eno1 -m state --state ESTABLISHED,RELATED -j ACCEPT

#Ограничим доступ во внутреннюю сеть снаружи
iptables -A FORWARD -i eno1 -o enp3s0 -j REJECT

#Перенаправление всего http-трафика на прокси-сервер
iptables -t nat -A PREROUTING -i enp3s0 ! -d 192.168.1.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.1.254:3128

#где работает наш прокси
acl ip_full src "/etc/squid/ip_full.list"
acl ip_admin src "/etc/squid/ip_admin.list"
acl cloud dst 172.0.0.0/8

acl SSL_ports port 443 #SSL
acl Safe_ports port 80 #HTTP
acl Safe_ports port 8080 #HTTP
acl Safe_ports port 53 #DNS
acl Safe_ports port 443 #HTTPS
acl Safe_ports port 21 #FTP
acl Safe_ports port 70 #gopher
acl Safe_ports port 210 #wais
acl Safe_ports port 1025-65535 #незарегистрированные порты
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

#разрешить доступ к прокси из внутренней сети
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports

http_access allow localhost manager
http_access deny manager

http_access allow ip_full !cloud
http_access allow ip_admin cloud
http_access deny !ip_full
http_access deny !ip_admin

#порт и IP адрес сервера
http_port 3128

dns_nameservers х.х.х.х

#доступный объем оперативной памяти ОЗУ
cache_mem 3096 MB

#максимальный размер объекта в кэше
maximum_object_size_in_memory 512 KB

#директория хранения кеш
cache_dir ufs /var/spool/squid 7000 16 256

#максимальный и минимальный размер кэшируемого файла
minimum_object_size 2 KB
maximum_object_size 61440 KB

#записываем логи и храним их 31 день
access_log daemon:/var/log/squid/access.log squid
cache_log:/var/log/squid/cache.log
#cache_store_log daemon:/var/log/squid/store.log
debug_options ALL,1 # секция “ALL”, глубина отладки 1
logfile_rotate 31

coredump_dir /var/spool/squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern (Release|Packages(.gz)*)$ 0 20% 2880
refresh_pattern . 0 20% 4320

То что я хотел реализовать правилами iptables, реализовал прокси.
С iptables я занимаюсь впервые, поэтому меня интересовало насколько правильно я написал правила. В данный момент настроено так, что любой пользователь из подсети 192.168.1.0/24 не может сам воспользоваться интернетом.

Сегодня буду крутить "гайки" поставлю запрещающее правило и от этих настроек буду двигаться
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

Надеюсь хватит правил)) Посоветуйте пожалуйста в каком направлении нужно двигаться?
#разрешить машинам ходить в интернет по портам
iptables -A FORWARD -p TCP -s 192.168.1.0/24 -m multiport --dport 80,443,53 -j ACCEPT
iptables -A FORWARD -p TCP -d 192.168.1.0/24 -m multiport --dport 80,443,53 -j ACCEPT
iptables -A FORWARD -p UDP -s 192.168.1.0/24 -m multiport --dport 53 -j ACCEPT
iptables -A FORWARD -p UDP -d 192.168.1.0/24 -m multiport --dport 53 -j ACCEPT

Оффлайн salvador

  • Участник
  • *
  • Сообщений: 106
    • Просмотр профиля
Re: Правила iptables для squid
« Ответ #11 : 05 Мая 2017, 10:13:22 »
iptables -A FORWARD -p UDP -s 192.168.1.0/24 -m multiport --dport 53 -j ACCEPT
iptables -A FORWARD -p UDP -d 192.168.1.0/24 -m multiport --dport 53 -j ACCEPT

Я правильно понимаю, что внутри вашей локальной сети нет кеширующего DNS?

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28365
    • Просмотр профиля
Re: Правила iptables для squid
« Ответ #12 : 05 Мая 2017, 17:10:10 »
Основная задача нашего прокси - это выполнять функции кеширующего прокси.
HTTPS контент кешировать не выйдет, вам проще будет просто убрать сквид и забыть о его существовании как о бесполезной мозголомке
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

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

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13756
    • Просмотр профиля
Re: Правила iptables для squid
« Ответ #13 : 05 Мая 2017, 17:25:58 »
+1 к предыдущему оратору.
Вместо изучения кальмара, изучите лучше поглубже iptables - много полезней будет и для Вас и для системы.

Оффлайн Solodoron

  • Автор темы
  • Новичок
  • *
  • Сообщений: 11
    • Просмотр профиля
Re: Правила iptables для squid
« Ответ #14 : 10 Мая 2017, 11:51:23 »
iptables -A FORWARD -p UDP -s 192.168.1.0/24 -m multiport --dport 53 -j ACCEPT
iptables -A FORWARD -p UDP -d 192.168.1.0/24 -m multiport --dport 53 -j ACCEPT

Я правильно понимаю, что внутри вашей локальной сети нет кеширующего DNS?

Внутри локальной сети нет кеширующего DNS.

+1 к предыдущему оратору.
Вместо изучения кальмара, изучите лучше поглубже iptables - много полезней будет и для Вас и для системы.
Поэтому я и занялся iptables)очень интересная вещь))
« Последнее редактирование: 10 Мая 2017, 12:47:04 от Solodoron »

 

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