LinuxForum.Fans
Тема

Отключить интернет

Автор: XliN 106 сообщений 22388 просмотров
#217122

Есть сервер в домене. На нем стоит Windows Server 2003 SP2. К нему конектятся, опять же через домен клиенты с тонких клиентов по RDP. Проблема в том, что на сервере с виндой есть интернет. Он там нужен для отправки документооборота в службу.
Клиенты подключаются к нему и получают в итоге тоже интернет. Решил эту проблему с помощью GPO в PDC Samba, а именно запретил запуск ишака и установку программ. Как бы работает, но мне так не нравится.
Как на шлюзе запретить интернет клиентам RDP?

IP saerver: 192.168.2.100
Mask: 255.255.255.0
gateway: 192.168.1.77 (Это шлюз в инет с nat+iptables)
DNS1:192.168.2.82 (Это сам PDS+DNS)
DNS2:192.168.1.77

Можно конечно закрыть на сервере совсем интернет и пускать в мир по определенному порту. Это возможно, но а если ему нужен полный доступ например?

#217124

можно попробовать squid

#217130

Не хочется специально для них прокси полнимать.... Придется целеком влан заварачивать в него. Хотя вариант. Прокси же можно натравить на нужную мне сеть? Только одну и сделать акл лист доступа.

#217239

не надо vlan заворачивать. Просто есть такая вещь как групповая политика.
AD + SQUID (групповая политика) и усё.

#217241

--=XliN=--, SQUID прекрасно работает с учётками NT, хотя ради эксперементов и личного опыта можно конечно сторить велосипед, ни кто не запрещает.

#217246
--=XliN=-- написал:
Не хочется специально для них прокси полнимать.... Придется целеком влан заварачивать в него. Хотя вариант. Прокси же можно натравить на нужную мне сеть? Только одну и сделать акл лист доступа.

Тебе так не поможет у тя клиенты имеют все один ип.

#217257

и чего делать? AD у меня на самбе четвертой.

#217267

Да какая разница на чём у Вас ад.
Ставите сквид. Читаете ман. Пробуете сделать. И вот уже когда что то неполучится, тогда задавайте конкретный вопрос.

#217268

Я не пойму... предлагаете поставить сквид и интегрировать его с AD?

#217356

Попробовал настроить по первой ссылке. Поставил сквид. Дробавил в него строчку из примера, подправив под себя не много. Не уверен что правильно.. Т.к. Сам конфиг оставил по дефолту. Как есть. Попробовал... Не работает. В айпитаблес пока ничего не заварачивал, прлписываю прокси вручную. Что из конфигов показать?

#217357

Сори за ошибки.... Пишу с телефона.

#217358

Давайте по порядку.
Сам файл настройки сквида

Показать
text
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
acl SSL_ports port 443
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localnet
http_access allow localhost
http_access deny all
icp_access allow localnet
icp_access deny all
htcp_access allow localnet
htcp_access deny all
http_port 3128
hierarchy_stoplist cgi-bin ?
access_log /var/log/squid/access.log squid
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
icp_port 3130
coredump_dir /var/spool/squid
auth_param basic program /usr/lib/squid/squid_ldap_auth -f "(&(objectclass=person)(sAMAccountName=%s)(CN=InternetAccess,OU=Builtin,DC=smb,DC=mgkb1,DC=local))" -R -b "OU=Users,DC=smb,DC=mgkb1,DC=local" -D "sel_ldap@smb.mgkb1.local" -w "h2DTCVoc" -h 192.168.2.82 -v 3 -p 389
acl ldapusers proxy_auth REQUIRED
http_access allow ldapusers

Вот это я добавил в стандартный squid.conf, который был создан при установке сквида. Повторюсь... в squid.conf ничего более не менял. Ни строчки.

text
auth_param basic program /usr/lib/squid/squid_ldap_auth -f "(&(objectclass=person)(sAMAccountName=%s)(CN=InternetAccess,OU=Builtin,DC=smb,DC=mgkb1,DC=local))" -R -b "OU=Users,DC=smb,DC=mgkb1,DC=local" -D "sel_ldap@smb.mgkb1.local" -w "XXXXXXX" -h 192.168.2.82 -v 3 -p 389
acl ldapusers proxy_auth REQUIRED
http_access allow ldapusers

Меня смущает вот этот фильтр

(&(objectclass=person)(sAMAccountName=%s)

Как мне узнать что точно тут написать?
Далее... верно ли я написал

text
CN=InternetAccess,OU=Builtin,DC=smb,DC=mgkb1,DC=local

InternetAccess - группа для пользователей с инетом
Builtin - в этом месте находится сама группа
DC=smb,DC=mgkb1,DC=local - адрес домена.

Как проверяю. Заходу на сервер под sel_ldap пользователем. В ишаке включаю прокси. Пробую открыть яндекс например. Открывает. Хотя пользователь не добавлен в группу InternetAccess.

#217370

Так же OU=Builtin и OU=Users менял на CN=Builtin CN=Users

#217453

--=XliN=--, Начнём с того, что самое правильное дефолтную конфигу сквида сохранить гденибуть, а самому писать новый, с нуля.
Дефлтная дана чисто для примера и для простых ситуаций. Там много лишнего для нашего случая. Тоесть должно остаться только самое необходимое.
Даже не остаться, повторюсь - создаём пустой squid.conf и далее построчно внего добавляем.
Если что т опропустим или напишем нитак, то про старте сквид про это скажет.
Это очень полезно делать именно так, во-первых лучше познаётся ег овнутренняя суть, во вторых в правилах будет всё только самое нужное и никакого мусора.

--=XliN=-- написал:
Как мне узнать что точно тут написать?
Далее... верно ли я написал
text
CN=InternetAccess,OU=Builtin,DC=smb,DC=mgkb1,DC=local

Здесь пишется полное FQDN доменное имя вашего сервера.
Например так:

text
CN=SERVER,OU=Domain Controllers,DC=mail,DC=ru

Тоесть, исходя из Вшей записи, Ваш сервер зовут так: smb.mgkb1.local, если да, то значит написали всё верно.
Следующим моментом - это нужно в iptables запретить форвард на 80-й порт (или OUTPUT, если всё это шлюзовая машина).
Позователей нужно добавить в соотвествующую группу на виндовом сервере а в GPO прописать использовать порт 3128 на сервере, где стоит сквид, а остальным запретить. Явно.
Итогом всего этого должно стать следующее. Позователь входит на сервер, работает, запускает браузер и лезет в интернет. Если ему нельзя, то (тут настраиваемо, лобо оставить как есть и браузер напишет, что ничего не может найти, либо сделать редирект на страничку с должностными интрукциями) он не получает доступа, а если можно, то ему в кокошке браузера выводится страничка ввода логина и пароля (что кстати можно отключить в GPO).
Обязательным фактом это всё должно логироваться.
Как то так.

#217462

Первое. Со сквидом я понял.. конфиги я всегда дефолтовые сохраняю, есть такая привычка. Настрою и потом покажу конфиг.
Второе. У меня будет так?

CN=InternetAccess,OU=Builtin,DC=smb,DC=mgkb1,DC=local

Или так?

CN=InternetAccess,CN=Builtin,DC=smb,DC=mgkb1,DC=local

Следующим моментом - это нужно в iptables запретить форвард на 80-й порт (или OUTPUT, если всё это шлюзовая машина).

Третье.
Тут про какую машину идет речь? Если про ту на которую они заходят, то она не шлюзовая. Таким образом нужно на шлюзе форвард запретить?
Разберемся пока с этими теоретическими вопросами.

#217469

1. хорошо.
2. Лучшее попробовать оба варианта - опять же опыт, он бесценен wink , у меня стоит CN - думаю так правильно, хотя где т очитал, что можно вообще опустить.
3. Да, на шлюзе форвард 80-го порта. Что бы браузер (не настроенный на выход через прокси, да и всякие проги-портабле вершен) пользователя, не лезли в Инет, если по GPO Инет ему (пользователю) не положен. Вообще хорошим тоном является в iptables запретить всё, а потом открыть тока нужное, в самом iptables или в сквиде. Главное нужного пользователя не забыть завернуть на сквид.

#217499

По поводу 80 порта. Ситуация такая. У меня iptables режет инет всем, кроме того кому я открою. И открываются сразу все порты. Пришлось сделать так из-за кучи программ с не понятными портами. Фиг определишь =)
На сервере 192.168.2.100, к которому пользователи лезут по RDP, инет открыт. Доменный пользователь, если ему в GPO стоит запрет на инет, как на это отреагирует? Если запрет, значит и инета нет? Ему GPO не даст же?

Далее. Что бы инет пользователю в домене дать, мне надо его дописать в конфиг сквида и соответственно открыть на шлюзе. Верно мыслю?
В iptables инет открываю конкретно по IP клиента

text
iptables -A FORWARD -i vlan3 -s 192.168.XXX.XXX -o eth1 -j ACCEPT

И вот еще что. Нужно же завернуть весь траф по 80 порту на порт сквида, только после этого проксик станет прозрачным?

UPD: Извиняюсь что заставляю так разжевывать, просто пытаюсь понять принцип, а не тупо копипастить.

#217516

Вот мой новый конфиг сквида

text
http_port 3128
logfile_rotate 7
cache_mem 100 MB
cache_swap_low 95
cache_swap_high 98
maximum_object_size 1000000 KB
#acl all src 0.0.0.0/0.0.0.0
#acl dom_local src 192.168.2.0/24
#acl adm_local src 192.168.1.0/24
auth_param basic program /usr/lib/squid/squid_ldap_auth -f "(&(objectClass=person)(sAMAccountName=%s)(CN=InternetAccess,OU=Builtin,DC=smb,DC=mgkb1,DC=local))" -R -b "OU=Users,DC=smb,DC=mgkb1,DC=local" -D "sel_ldap@smb.mgkb1.local" -w "h2DTCVoc" -h 192.168.2.82
acl ldapusers proxy_auth REQUIRED
#http_access allow dom_local
#http_access allow adm_local
http_access allow ldapusers
#http_access deny all

hierarchy_stoplist cgi-bin ? access_log /var/log/squid/access.log squid 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 icp_port 3130 coredump_dir /var/spool/squid

Захожу на 192.168.2.100 под пользователем sel_ldap с IP 192.168.1.173. Прописываю ему прокси 192.168.1.77:3128. Открываю ишака и вижу запрос на ввод пароля и пользователя. Ввожу sel_ldap и пароль. Не пускает. Пользователь в группе InternetAccess Значит не работает.

#217519

Пробуй такой хелпер у меня домен RA.local

[console]auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp --require-membership-of="RA\\пользователи домена"
auth_param ntlm children 150
auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic --require-membership-of="RA\\пользователи домена"
auth_param basic children 150
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
acl users proxy_auth REQUIRED
http_access allow users[/console]

Войдите или зарегистрируйтесь, чтобы ответить.