Приветствую.Имеется следующая ситуация.
Терминальный сервер (Linux + xrdp + X11rdp). На сервере созданы учетные записи пользователей, которые, подключаясь из локалки, пользуются интернетом на удаленном рабочем столе сервера (лично на их компах интернет запрещен). Поставлена задача : вести лог всех веб-запросов не просто исходящих с сервера (по ip его сетевой карты), а именно разделенных по каждому пользователю. Предположение по решению: поднять локальный squid с авторизацией и раздать каждому пользователю его логин\пароль, таким образом в логах сквида будет отмечаться какой именно пользователь что посмотрел в инете. Проблема: пользователь может в настройках своего браузера на удаленном раб.столе отключить опцию проксирования и начать ходить мимо сквида, не попадая в логи сквида. Вопрос: как настроить фаервол на сервере таким образом, чтобы он запрещал ВСЕ исходящие пакеты на порт 80 (в случае если пользователи захотят со своих удаленных раб.столов стучаться браузерами напрямую), но при этом самому локальному скивду, работающему на этом сервере, не мешал (хотя сквид будет стучаться в тот же самый порт 80)??? Если нет возможности разграничить фильтрацию пакетов по именам программ, можно ли ее осуществить по именам пользователя из под которого данный софт запрошен (например, разрешаем руту, из под которого запущен сквид, а обычным юзерам запрет)?
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128;
> iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port
> 3128;И что получится??? Сквид, спрашивающий запрошенную пользователем страницу в интернете, обратиться к порту 80, а фаервол его зациклит обратно на сквид 3128? Как сквиду во внешний инет-то ходить (его обращения на порт 80 должны пропускаться). Это сервер на котором установлен сквид и удаленные рабочие столы запускаются НА НЕМ ЖЕ.
> Это сервер на котором установлен сквид и удаленные
> рабочие столы запускаются НА НЕМ ЖЕ.что мешает утащить squid на отдельный сервер и выпускать пользователей через него?
>[оверквотинг удален]
> на удаленном раб.столе отключить опцию проксирования и начать ходить мимо сквида,
> не попадая в логи сквида. Вопрос: как настроить фаервол на сервере
> таким образом, чтобы он запрещал ВСЕ исходящие пакеты на порт 80
> (в случае если пользователи захотят со своих удаленных раб.столов стучаться браузерами
> напрямую), но при этом самому локальному скивду, работающему на этом сервере,
> не мешал (хотя сквид будет стучаться в тот же самый порт
> 80)??? Если нет возможности разграничить фильтрацию пакетов по именам программ, можно
> ли ее осуществить по именам пользователя из под которого данный софт
> запрошен (например, разрешаем руту, из под которого запущен сквид, а обычным
> юзерам запрет)?iptables -A OUTPUT -p tcp -m tcp --dport 80 -m owner --uid-owner 117 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 80 -j DROP
> iptables -A OUTPUT -p tcp -m tcp --dport 80 -m owner --uid-owner
> 117 -j ACCEPT
> iptables -A OUTPUT -p tcp -m tcp --dport 80 -j DROPВоот. Буду пробовать. Спс!
А цифра 117 что именно означает?
>> iptables -A OUTPUT -p tcp -m tcp --dport 80 -m owner --uid-owner
>> 117 -j ACCEPT
>> iptables -A OUTPUT -p tcp -m tcp --dport 80 -j DROP
> Воот. Буду пробовать. Спс!
> А цифра 117 что именно означает?117 - идентификатор пользователя в моей системе. Вам надо подставить uid сквида
>>> iptables -A OUTPUT -p tcp -m tcp --dport 80 -m owner --uid-owner
>>> 117 -j ACCEPT
>>> iptables -A OUTPUT -p tcp -m tcp --dport 80 -j DROP
>> Воот. Буду пробовать. Спс!
>> А цифра 117 что именно означает?
> 117 - идентификатор пользователя в моей системе. Вам надо подставить uid сквидаА как его узнать? Он не будет меняться при каждой загрузке системы как pid ?
>>>> iptables -A OUTPUT -p tcp -m tcp --dport 80 -m owner --uid-owner
>>>> 117 -j ACCEPT
>>>> iptables -A OUTPUT -p tcp -m tcp --dport 80 -j DROP
>>> Воот. Буду пробовать. Спс!
>>> А цифра 117 что именно означает?
>> 117 - идентификатор пользователя в моей системе. Вам надо подставить uid сквида
> А как его узнать? Он не будет меняться при каждой загрузке системы
> как pid ?Значение UID ставится в соответствие пользователю в файле /etc/passwd.
> Значение UID ставится в соответствие пользователю в файле /etc/passwd.
> http://ru.wikipedia.org/wiki/п≤п╢п╣п╫я┌п╦я└п╦п╨п╟я┌п╬я─_п©п╬п╩я▄п╥п╬п╡п╟я┌п╣п╩я▐Вот спасибо! Отличное решение!
> Вот спасибо! Отличное решение!Вы, конечно, извиняйте, но на мой взгляд отличным решением будет снести всю эту порнографию с RDP и поднять по-нормальному Squid.
>> Вот спасибо! Отличное решение!
> Вы, конечно, извиняйте, но на мой взгляд отличным решением будет снести всю
> эту порнографию с RDP и поднять по-нормальному Squid.RDP сносить нельзя, так как поставлена строгая задача - "ИНЕТ предоставлять только серверу, а от машин пользователей любые запросы в инет должны убиваться".
Предоставленное выше решение отлично заработало, сервер с xrdp, локальным сквидом с авторизацией и этим запрещающим правилом (опирающемся на группу). Таким образом у нас есть сервер, подключенный к инету, к которому в свою очередь, подключаются пользователи и с удаленных рабочих столов сервера уже пользуются инетом. Так как каждому пользователю создана отдельная учетная запись при авторизации к сквиду, мы детально по логам видим кто что делал, несмотря на то, что пользуются они одним айпи (айпи сервера). Если пользователь решает в своих насройках браузера включить режим "БЕЗ ПРОКСИ" - его не пускает правило фаервола. Все работает как часы.
>> Вы, конечно, извиняйте, но на мой взгляд отличным решением будет снести всю
>> эту порнографию с RDP и поднять по-нормальному Squid.
> RDP сносить нельзя, так как поставлена строгая задача - "ИНЕТ предоставлять
> только серверу, а от машин пользователей любые запросы в инет должны
> убиваться".В чем разница? Кто Вас заставляет пакеты клиентов маршрутизоровать в инет, если им достаточно скуида.
Похоже разница там в том, что начальник не ставит конечные цели, а лезет со своими указаниями в техническую реализацию. :)
> Похоже разница там в том, что начальник не ставит конечные цели, а
> лезет со своими указаниями в техническую реализацию. :)Скорее - начальник хочет переложить проблемы, решаемые на административном уровне (увольнения, выговоры, лишения премий недобросовестных сотрудников), на "технические ограничения".
> В чем разница?Дело все в том, что разница между исходящим трафиком, генерируемым сервером терминалов, и трафиком, генерируемым рабочей станцией пользователя весьма большая ;-))). Например, наставленный на рабочих компах пиратский софт стучится в инет, чтоб доложить о себе, а потом приходят предъявы от правообладателей ;-))). Но, в то же время, инет сотрудникам тоже нужен! А когда они будут коннектиться к инету с удаленного рабочего стола, посредством учетной записи, заведенной на сервере терминалов (на котором ничего, кроме бесплатного линупса и фаерфокса нет) - в инет будут исходить только пакеты с запросами веб-страниц -))).
>> В чем разница?
> Дело все в том, что разница между исходящим трафиком, генерируемым сервером терминалов,
> и трафиком, генерируемым рабочей станцией пользователя весьма большая ;-))). Например,
> наставленный на рабочих компах пиратский софт стучится в инет, чтоб доложить
> о себе, а потом приходят предъявы от правообладателей ;-))). Но, в
> то же время, инет сотрудникам тоже нужен! А когда они будут
> коннектиться к инету с удаленного рабочего стола, посредством учетной записи, заведенной
> на сервере терминалов (на котором ничего, кроме бесплатного линупса и фаерфокса
> нет) - в инет будут исходить только пакеты с запросами веб-страниц
> -))).Какое ловкое и изящное решение! Правда есть предположение, что этот ваш софт вряд-ли сумеет сам пройти аутентификацию на прокси.
> Какое ловкое и изящное решение! Правда есть предположение, что этот ваш софт
> вряд-ли сумеет сам пройти аутентификацию на прокси.Перестраховываются, знаете ли -))))