nlo 0 Posted 2012-06-02 05:25:44 Share Posted 2012-06-02 05:25:44 Имеем прокси настроен прозрачно доступен с локалки всем Задача такова: 1-Закрыть прокси всем неавторизованным с локалки 2-Открыть доступ к проксе авторизованным и в наглую проходящие порты во внешку протащить через прокси пробовал: #Закрываем порт прокси для неавторизованных и открываем авторизованных и протаскиваем $IPTABLES -t filter -I INPUT -p tcp -s 192.168.10.0/24 --dport 3128 -j DROP $IPTABLES -t filter -I INPUT -p tcp -s 10.0.0.0/24 --dport 3128 -j DROP $IPTABLES -t nat -A PREROUTING -m set --set FSNAT -p tcp --dport 80 -j REDIRECT --to-ports 10.0.0.1:3128 Почему то не прокатывает итог: порт прокси остаётся закрыт всем хотя протащить пытается Помогите с решением плиз Link to post Share on other sites
dummy 8 Posted 2012-06-02 07:47:05 Share Posted 2012-06-02 07:47:05 у меня стоит так файрвол: # Очищаем правила файрвола iptables -F iptables -t filter -F iptables -t filter -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X # Политика по умолчанию DROP: всем всё запрещено iptables -t filter -P INPUT DROP iptables -t filter -P FORWARD DROP iptables -t filter -P OUTPUT DROP ........ iptables -t filter -A INPUT -s $INT_NET -p tcp --dport 5555 -j ACCEPT iptables -t filter -A INPUT -s $INT_NET -p udp --dport 5555 -j ACCEPT ....... в онконнект: /sbin/iptables -t nat -A PREROUTING -s $IP ! -d $INT_NET -p tcp --dport 80 -j REDIRECT --to-port 3127 в squid.conf acl localnet src 10.1.0.0/16 http_access allow localnet http_port 3127 transparent PS: для ipset, я думаю, аналогично Link to post Share on other sites
nlo 0 Posted 2012-06-02 08:36:09 Author Share Posted 2012-06-02 08:36:09 Спасибо канешно но не катит На серваке не только СТГ работает Link to post Share on other sites
exnetlife 126 Posted 2012-06-02 13:01:45 Share Posted 2012-06-02 13:01:45 эм.. судя по правилам закрываем для всех, и потом на закрытый порт редиректим. нужно сделать так: $IPTABLES -t filter -I INPUT -p tcp -m set --set FSNAT src,src --dport 3128 -j ACCEPT $IPTABLES -t filter -I INPUT -p tcp --dport 3128 -j DROP $IPTABLES -t nat -A PREROUTING -m set --set FSNAT src,src -p tcp --dport 80 -j REDIRECT --to-ports 10.0.0.1:3128 Link to post Share on other sites
nlo 0 Posted 2012-06-02 13:57:48 Author Share Posted 2012-06-02 13:57:48 эм.. судя по правилам закрываем для всех, и потом на закрытый порт редиректим. нужно сделать так: $IPTABLES -t filter -I INPUT -p tcp -m set--set FSNAT src,src --dport 3128-j ACCEPT $IPTABLES -t filter -I INPUT -p tcp --dport 3128-j DROP $IPTABLES -t nat -A PREROUTING -m set--set FSNAT src,src -p tcp --dport 80-j REDIRECT --to-ports 10.0.0.1:3128 Это правило заворачивает всех на прокси при чём закрывая порт 80 на котором висит локальный веб сервер Link to post Share on other sites
exnetlife 126 Posted 2012-06-02 14:42:48 Share Posted 2012-06-02 14:42:48 Я предлагаю вам попробовать выполнить правила которые я указал а потом рассказывать (с ошибками) что делает последняя строка. Проблема была до строки "заворачивания", nat и filter представляют собой разные таблицы в ядре, и между собой не связаны. Вы закрыли своими правилами вход порта 3128, и пытаетесь туда завернуть кого-то из набора FSNAT. Что не правильно. Я дал 3 строки, уже рабочие. Вы не удосужились даже почитать их. При этом, после того как ipset был включен в стандартный набор ядра, необходимо указывать src,src или dst,dst для матчинга источника и получателя соответственно. У вас же, строка для матчинга сэта - не верная. Link to post Share on other sites
nlo 0 Posted 2012-06-02 14:50:00 Author Share Posted 2012-06-02 14:50:00 Я предлагаю вам попробовать выполнить правила которые я указал а потом рассказывать (с ошибками) что делает последняя строка. Проблема была до строки "заворачивания", nat и filter представляют собой разные таблицы в ядре, и между собой не связаны. Вы закрыли своими правилами вход порта 3128, и пытаетесь туда завернуть кого-то из набора FSNAT. Что не правильно. Я дал 3 строки, уже рабочие. Вы не удосужились даже почитать их. При этом, после того как ipset был включен в стандартный набор ядра, необходимо указывать src,src или dst,dst для матчинга источника и получателя соответственно. У вас же, строка для матчинга сэта - не верная. Я попробовал :-) в том то и сложность что установлены правила для локального хождения трафика Всех неизвестных и неавторизованных юзверей днатит на локальный сайт где им предлагается для выхода в инет либо зарегатья либо авторизоваться а так же туда попадают должники с предложением оплаты. Я прочитал строки и даже попробовал в итоге неавторизованных не пускает на локальный сайт с предложением у авторизованных долго тупит и ничего не открывает в итоге прерывается по таймауту Link to post Share on other sites
nlo 0 Posted 2012-06-02 14:51:38 Author Share Posted 2012-06-02 14:51:38 Нужно закрыть порт всем неавторизованным и протащить всех авторизованных через прокси Я бы не спрашивал здесь если бы всё так было просто :-) Link to post Share on other sites
exnetlife 126 Posted 2012-06-02 19:23:22 Share Posted 2012-06-02 19:23:22 давай попорядку. есть 2 хоста. 1. маршрутизатор (на котором крутятся эти правила) 2. прокси сервер с IP 10.0.0.1 на прокси сервере цеплялся tcpdump'ом? Скорее всего приходят запросы, а ответы уходят по другому интерфейсу, который смотрит в сторону клиентов. Так? Link to post Share on other sites
nlo 0 Posted 2012-06-03 05:57:48 Author Share Posted 2012-06-03 05:57:48 Нет ! Прокси на том же хосте что и СТГ Кроме того на этом хосте ещё крутится МУСКУЛ ВЕБ АСЯ ИРК ну и ешо пара приятных мелочей. и вся эта кухня имеет ип 10.0.0.1 туда-же цепляются авторизатором она же шлюзовая она же считает трафик На ней же ЛК Ну так сказать всо в одном :-) Link to post Share on other sites
nlo 0 Posted 2012-06-03 05:58:53 Author Share Posted 2012-06-03 05:58:53 Кроме того машина стоит на перекрёстке 2х сетей и до кучи является шлюзовой с одной подсети в другую Link to post Share on other sites
exnetlife 126 Posted 2012-06-03 15:24:11 Share Posted 2012-06-03 15:24:11 $IPTABLES -t filter -I INPUT -p tcp -m set --match-set FSNAT src,src --dport 3128-j ACCEPT $IPTABLES -t filter -I INPUT -p tcp --dport 3128-j DROP $IPTABLES -t nat -A PREROUTING -m set --match-set FSNAT src,src -p tcp --dport 80 ! -d 192.168.10.0/24 ! -d 10.0.0.0/24 -j REDIRECT --to-port 3128 При этом squid должен слушать на 2 интерфейса. Link to post Share on other sites
nlo 0 Posted 2012-06-03 17:13:17 Author Share Posted 2012-06-03 17:13:17 $IPTABLES -t filter -I INPUT -p tcp -m set --match-set FSNAT src,src --dport 3128-j ACCEPT $IPTABLES -t filter -I INPUT -p tcp --dport 3128-j DROP $IPTABLES -t nat -A PREROUTING -m set --match-set FSNAT src,src -p tcp --dport 80 ! -d 192.168.10.0/24 ! -d 10.0.0.0/24 -j REDIRECT --to-port 3128 При этом squid должен слушать на 2 интерфейса. спасибо но выдаёт ошибку: iptables v1.4.8: multiple -d flags not allowed может попробовать в разных правилах на каждую подсеть отдельно? Link to post Share on other sites
nlo 0 Posted 2012-06-03 17:29:24 Author Share Posted 2012-06-03 17:29:24 Попробовал раздельно По веб выкидывает по тайм ауту Но локальные сайты открываются Ничего непонимаю всё должно работать но почему то не робит Link to post Share on other sites
nlo 0 Posted 2012-06-03 17:31:13 Author Share Posted 2012-06-03 17:31:13 прокси проверил работает точно! Link to post Share on other sites
exnetlife 126 Posted 2012-06-03 17:49:35 Share Posted 2012-06-03 17:49:35 И снова, что говорит tcpdump слушая на порту 3128? Link to post Share on other sites
nlo 0 Posted 2012-06-03 18:00:09 Author Share Posted 2012-06-03 18:00:09 И снова, что говорит tcpdump слушая на порту 3128? Тишина! Как в танке! # tcpdump port 3128 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes Link to post Share on other sites
nlo 0 Posted 2012-06-03 18:04:49 Author Share Posted 2012-06-03 18:04:49 nmap с моей телеги показывает: 3128/tcp filtered squid-http я так понимаю должно быть open если авторизован Включил авторизатор open выключил closed или filtered правильно я думаю? Link to post Share on other sites
nlo 0 Posted 2012-06-03 18:42:20 Author Share Posted 2012-06-03 18:42:20 Когда снимаешь это правило то всё работает $IPTABLES -t filter -I INPUT -p tcp --dport 3128 -j DROP Но прокси доступен всем что категорически неприемлемо Link to post Share on other sites
exnetlife 126 Posted 2012-06-04 14:07:08 Share Posted 2012-06-04 14:07:08 Друже, а ман по iptables не пробовал читать? Я как бы и не обратил внимание на -I вначале правила. -I, --insert chain [rulenum] rule-specification Insert one or more rules in the selected chain as the given rule number. So, if the rule number is 1, the rule or rules are inserted at the head of the chain. This is also the default if no rule number is specified. По факту, получается сначала идет DROP, потом идет ACCEPT. Замени в вдух первых строках -I (i большая) на -A или ставь номер правила и будет тебе счастье. Link to post Share on other sites
nlo 0 Posted 2012-06-04 14:27:55 Author Share Posted 2012-06-04 14:27:55 Друже, а ман по iptables не пробовал читать? Я как бы и не обратил внимание на -I вначале правила. -I, --insert chain [rulenum] rule-specification Insert one or more rules in the selected chain as the given rule number. So, if the rule number is 1, the rule or rules are inserted at the head of the chain. This is also the default if no rule number is specified. По факту, получается сначала идет DROP, потом идет ACCEPT. Замени в вдух первых строках -I (i большая) на -A или ставь номер правила и будет тебе счастье. :-) С П А С И Б О! Заработало! Вот йя тупилко картонная :-) Link to post Share on other sites
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now