Автор Тема: Ограничение доступа к интернету  (Прочитано 27749 раз)

Оффлайн rits

  • Завсегдатай
  • *
  • Сообщений: 1 031
  • ITS
Re: Ограничение доступа к интернету
« Ответ #15 : 08.02.2019 07:26:23 »
Если у меня одна сетевая DHCP (для внешнего инета), а другая 192.168.10.1 для внутренней сети(*.*.*.2-254), то все запросы мне нужно перенаправить с 192.168.10.1:80 на 192.168.10.1:3128 (3129). Я правильно понимаю задачу или нет?
Возможно 443 порт Https тоже и все остальные протоколы, ftp
3proxy удобней будет, он понимает почтовые протоколы и может DNS "проксировать". https://3proxy.ru/
Собираем 3proxy:
# make -f Makefile.Linux
Прежде чем компилировать в ОС должны быть установлены следующие пакеты: gccXXX libsslXXX
в каталоге с исходниками имеется каталог ./src в котором лежит скомпилированный бинарник 3proxy.
Бинарник бросить сюда # mkdir /usr/local/3proxy
Инит скрипт такой:
#!/bin/sh

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/local/3proxy/3proxy
DAEMON_OPTS=/usr/local/3proxy/3proxy.cfg
NAME=3proxy
DESC=3proxy

test -f $DAEMON || exit 0

set -e

case "$1" in
   start)
     echo -n "Starting $DESC: "
     start-stop-daemon --start --quiet --pidfile /usr/local/3proxy/$NAME.pid \
         --exec $DAEMON $DAEMON_OPTS
     echo "done."
     ;;
   stop)
     echo -n "Stopping $DESC: "
     start-stop-daemon --stop --quiet --pidfile /usr/local/3proxy/$NAME.pid \
         --exec $DAEMON
     echo "done."
     ;;
   *)
     N=/etc/init.d/$NAME
     # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
     echo "Usage: $N {start|stop}" >&2
     exit 1
     ;;
esac

exit 0

Сделать скрипт исполняемым:
# chmod +x /etc/rc.d/init.d/3proxy

Настроить конфиг-файл с именем 3proxy.cfg и поместить в каталог /usr/local/3proxy.
Запуск 3proxy /etc/rc.d/init.d/3proxy start
Для автозапуска, разместить в файле rc.local (/etc/rc.d/rc.local) строчку /etc/rc.d/init.d/3proxy start
Конфиг "курить" самостоятельно ))

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 099
Re: Ограничение доступа к интернету
« Ответ #16 : 08.02.2019 08:29:17 »
Если у меня одна сетевая DHCP (для внешнего инета), а другая 192.168.10.1 для внутренней сети(*.*.*.2-254), то все запросы мне нужно перенаправить с 192.168.10.1:80 на 192.168.10.1:3128 (3129). Я правильно понимаю задачу или нет?
Возможно 443 порт Https тоже и все остальные протоколы, ftp
3proxy удобней будет, он понимает почтовые протоколы и может DNS "проксировать". https://3proxy.ru/
3proxy - это ещё один вариант. Только а смысл DNS проксировать? Его просто надо на этм же шлюзе и поднять, кэширующий. Прфмо вот можно Bind, не думая. Сразу будет в рабочем варианте, но можно настроить форвард либо к провайдеру, либо на какие-нибудь 1.1.1.1 и 8.8.8.8. Почтовые протоколы можно через NAT напрямую выпускать.

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 099
Re: Ограничение доступа к интернету
« Ответ #17 : 08.02.2019 08:39:24 »
Если у меня одна сетевая DHCP (для внешнего инета), а другая 192.168.10.1 для внутренней сети(*.*.*.2-254), то все запросы мне нужно перенаправить с 192.168.10.1:80 на 192.168.10.1:3128 (3129). Я правильно понимаю задачу или нет?
Несовсем. Надо перехватывать транзитные запросы, а не то, что идёт на сам шлюз. И 3129 - это https по-умолчанию, и непрозрачный, если память не изменяет (но всё задаётся в squid.conf, порты можно назначить любые; возможно, что с ограничением "больше 1024"). Прозрачный искать в конфиге по слову intercept. В общем, результат настроек должен, в итоге, дать то же самое, что дают вот эти две команды:
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80  -j DNAT --to 192.168.10.1:3228
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 443 -j DNAT --to 192.168.10.1:3229
Хотя идущее на 192.168.10.1 это тоже перехватит, на самом деле. Тут по обстоятельствам. Если доступ к web-серверу на шлюзе нужен, то надо в правиле указать исключение, если нет, можно забить. Доступ к ЦУС на 8080, его так не зацепит.

То есть, как-то вот так надо в конфиге написать:
http_port 3128
http_port 3228 intercept

https_port 3129
https_port 3229 intercept

Кстати, про ftp там тоже есть: ftp_port. И тоже есть режим intercept.
« Последнее редактирование: 08.02.2019 11:32:57 от asy »

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 099
Re: Ограничение доступа к интернету
« Ответ #18 : 08.02.2019 08:45:53 »
Хм, здесь https://habr.com/ru/post/267851/ пишут, что типа работает прозрачно перенаправление https. Интересно, если будете проверять и заработает, напишите сюда.
Правда в статье написана. Можно и вовсе нормально фильтровать, если сделать MITM и разложить принудительно свой сертификат у всех в локалке. А вот описанное в статье "без подмены" скоро закончится: esni так уже не разберёшь.

Оффлайн rits

  • Завсегдатай
  • *
  • Сообщений: 1 031
  • ITS
Re: Ограничение доступа к интернету
« Ответ #19 : 08.02.2019 10:34:05 »
Если у меня одна сетевая DHCP (для внешнего инета), а другая 192.168.10.1 для внутренней сети(*.*.*.2-254), то все запросы мне нужно перенаправить с 192.168.10.1:80 на 192.168.10.1:3128 (3129). Я правильно понимаю задачу или нет?
Возможно 443 порт Https тоже и все остальные протоколы, ftp
3proxy удобней будет, он понимает почтовые протоколы и может DNS "проксировать". https://3proxy.ru/
3proxy - это ещё один вариант. Только а смысл DNS проксировать? Его просто надо на этм же шлюзе и поднять, кэширующий. Прфмо вот можно Bind, не думая. Сразу будет в рабочем варианте, но можно настроить форвард либо к провайдеру, либо на какие-нибудь 1.1.1.1 и 8.8.8.8. Почтовые протоколы можно через NAT напрямую выпускать.
Возможно и нет смысла, я так не делаю. Просто информация к сведению и как вариант, 3proxy может работать как dns ретранслятор, уж не знаю кеширует ли он записи. Думаю, для любителей Windows, поднять dns на рабочей станции не покупая сервер, возможно и имеет смысл ))

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 099
Re: Ограничение доступа к интернету
« Ответ #20 : 08.02.2019 11:12:47 »
Думаю, для любителей Windows
Сейчас вроде про Linux речь. :-)

Оффлайн yaleks

  • Мастер
  • ***
  • Сообщений: 6 222
Re: Ограничение доступа к интернету
« Ответ #21 : 08.02.2019 13:36:53 »
Хм, здесь https://habr.com/ru/post/267851/ пишут, что типа работает прозрачно перенаправление https. Интересно, если будете проверять и заработает, напишите сюда.
Правда в статье написана. Можно и вовсе нормально фильтровать, если сделать MITM и разложить принудительно свой сертификат у всех в локалке. А вот описанное в статье "без подмены" скоро закончится: esni так уже не разберёшь.
Ещё про "DNS over TLS" не забудьте, тогда вообще хрен поймешь где юзеры гуляют.
Только через инжекцию в браузеры, что там тоже сильно сильно хотят ограничить ( https://github.com/uBlockOrigin/uBlock-issues/issues/338 ).

Оффлайн finashin82

  • Завсегдатай
  • *
  • Сообщений: 53
Re: Ограничение доступа к интернету
« Ответ #22 : 08.02.2019 13:42:12 »
УУУХ. У меня сейчас лопнет голова от обилия программ и настроек :)

Мне бы разобраться с этими программами, а уже потом о новых думать. Это мой первый линукс, сначала разбирался с установкой, потом с общими командами, потом с ЦУС, потом со Squid, а добили меня iptables.
Стоит винда с программкой (типа шлюз), проблем не было, решил опередить события (импортозамещение) и поставить линукс сервер. Если б знал, что это так проблемно, подумал бы :) а сейчас надо разобраться, раз уж взялся.

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

Настройки iptables попробую позже, как дойдут руки.
ЗЫ: Ох, чувствую, замучаю я Вас вопросами. :)

Оффлайн yaleks

  • Мастер
  • ***
  • Сообщений: 6 222
Re: Ограничение доступа к интернету
« Ответ #23 : 08.02.2019 13:57:17 »
Стоит винда с программкой (типа шлюз), проблем не было, решил опередить события (импортозамещение) и поставить линукс сервер. Если б знал, что это так проблемно, подумал бы :) а сейчас надо разобраться, раз уж взялся.
вам надо "прозрачно" или вы можете задавать настройки прокси на пользовательских хостах?

Оффлайн finashin82

  • Завсегдатай
  • *
  • Сообщений: 53
Re: Ограничение доступа к интернету
« Ответ #24 : 08.02.2019 14:05:54 »
Я могу задавать настройки, но хочу прозрачно (компов штук 20-30). На винде, в программе делаются фильтры для каждого компа (привязка ип по мак), если фильтр отключить, то доступа к инету нет. Отключение компов от инета - это единственное необходимое условие(пока), без которого мне никак.

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 099
Re: Ограничение доступа к интернету
« Ответ #25 : 08.02.2019 14:14:37 »
Если б знал, что это так проблемно, подумал бы :)
Просто возможностей на много больше, на самом-то деле. :-)

Оффлайн yaleks

  • Мастер
  • ***
  • Сообщений: 6 222
Re: Ограничение доступа к интернету
« Ответ #26 : 08.02.2019 14:24:37 »
Я могу задавать настройки, но хочу прозрачно (компов штук 20-30). На винде, в программе делаются фильтры для каждого компа (привязка ип по мак), если фильтр отключить, то доступа к инету нет. Отключение компов от инета - это единственное необходимое условие(пока), без которого мне никак.
ну так можно и без Squid, просто в iptables запрещать FORWARD для нужных IP.
Привязку IP к MAC делать в dhcp.

Оффлайн finashin82

  • Завсегдатай
  • *
  • Сообщений: 53
Re: Ограничение доступа к интернету
« Ответ #27 : 08.02.2019 14:41:04 »
К сожалению, как раз в iptables мне пока разобраться не получается. На нем, родимом, и застрял.

ip по mac я и сделал, но если мне нужно сразу отключить 15 компов (к примеру), как быть в это случае?
« Последнее редактирование: 08.02.2019 14:42:48 от finashin82 »

Оффлайн yaleks

  • Мастер
  • ***
  • Сообщений: 6 222
Re: Ограничение доступа к интернету
« Ответ #28 : 08.02.2019 15:22:00 »
К сожалению, как раз в iptables мне пока разобраться не получается. На нем, родимом, и застрял.

ip по mac я и сделал, но если мне нужно сразу отключить 15 компов (к примеру), как быть в это случае?
ну можете что-то типа https://github.com/kolyuchiy/webcafe-traffic запилить (в качестве образца, не уверен что это заработает сразу на современных версиях).

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 099
Re: Ограничение доступа к интернету
« Ответ #29 : 08.02.2019 16:09:48 »
но если мне нужно сразу отключить 15 компов (к примеру), как быть в это случае?
Как угодно (но важно выбрать один способ управления правилами, чтобы не запутаться однажды). Можно вот так:
for IP in 192.168.3.{1..20}; do
    iptables -A FORWARD -s $IP -j REJECT
done
Или если не в скрипте, а прямо в консольке в одну строку (";" добавилась, хотя и в первом случае она хуже бы не сделала):
for IP in 192.168.3.{1..20}; do iptables -A FORWARD -s $IP -j REJECT; done
« Последнее редактирование: 08.02.2019 16:13:55 от asy »