LinuxForum.Fans
Тема

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

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

Токо при этом шлюз должен быть в домене под админом.

#217522
Kettler написал:
Токо при этом шлюз должен быть в домене под админом.

Мне шлюз низя в домен.... :(

#217524

а что в этом страшного?

#217526
--=XliN=-- написал:
просто пытаюсь понять принцип, а не тупо копипастить.

За это плюс wink
Правильно мыслите, и верной дорогой идёте!
Попробуем пожеать вместе.
Значит так.
Правило вида:

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

открывает Инте "от смой машины" пользователя.
У нас же он (пользователь) входит на сервер по RDP. А там по условию уже есть Инет. Тоесть, гипотетически, если не стоит ни каких костылей, то пользователь получает этот самый Инет, в объёме и возможностях, которыми предоставлен Инт сереру. Не больше ине меньше.
Так вот, задачача GPO в данном конкретном случае, определить, кто именно пытается Инет хавать. То есть, говоря человеческим языком - разруливание доступа к Инету в данном конкретном случае делается на этом самом сервере, куда пользователь зашёл RDP. Для GPO это глубоко фиолетово, системная это служба или удалённый пользователь. Главное что бы пользователь был зарегистрирован в системе (иначе собственно ему не войти).
И вот когда зашедший по RDP ползователь запускает того же осла, на сервере, имеющем достум в Интет, это пользователь доступа в Инет не получает вообще, а получает как минимум запрос пароля, и уже если в пароль соответсвует тому, что в БД, тогда он получает доступ, или получает страничку в отказе доступа. При том, что другим пользователем на этом же сервере может быть запущен свой осёл, и тому дан доступ. То есть explorer.exe другому explorer.exe рознь как земля и небо. Звучит как бред, но так это работает.

--=XliN=-- написал:
Ввожу sel_ldap и пароль. Не пускает. Пользователь в группе InternetAccess Значит не работает.

Если просит пароль значит работает. Если не пускает то тем более значит работает. Но не моножко ни так как хотелось бы.
Сквид берёт пользователя из LDAP или всё-таки из NT? Если из лдап, то как лдап синхронизируется с NT?

#217529
Kettler написал:
а что в этом страшного?

CentOS вводить в домен? Боюсь будут проблемы с доступом потом. Сыкатно.

Vadimsky написал:
Сквид берёт пользователя из LDAP или всё-таки из NT?

хз.. если честно. Был установлен samba4 и я так понимаю со своим LDAP. Значит с LDAP.

#217533
--=XliN=-- написал:
CentOS вводить в домен? Боюсь будут проблемы с доступом потом. Сыкатно.

В данном случае это ничего не даст.

--=XliN=-- написал:
я не знаю.. если честно. Был установлен samba4 и я так понимаю со своим LDAP. Значит с LDAP.

Значит нужно организовать синхронизацию LDAP с NT.
Какая у лдап конфига?

#217539

А мне кажется что просто закрыты порты между squid ------ ad

#217540

Потому как настроен там firewall данные порты не открывали :D

#217545

Кстати, да, --=XliN=--, конфигу iptables со шлюза можно глянуть?

#217546
Vadimsky написал:
Кстати, да, --=XliN=--, конфигу iptables со шлюза можно глянуть?

Тут где то целая тема)
Нашол
http://linuxforum.ru/viewtopic.php?id=11014

#217552
Kettler написал:
А мне кажется что просто закрыты порты между squid ------ ad

На шлюзе, порты все открыты. На Ubuntu - где samba+ldap (он сам его конфигурит), там iptables пустой.

Vadimsky написал:
Значит нужно организовать синхронизацию LDAP с NT.
Какая у лдап конфига?

где посмотреть?

#217553

Вот со шлюза

Показать
[console]# Всем скорость от 1 Мбит/c. Входящая и исходящая.
NUMBERS_ALL="192.168.3.12 192.168.3.10 192.168.3.123 192.168.1.180 192.168.1.178 192.168.1.177 192.168.1.186 192.168.2.100 192.168.3.247 192.168.3.245 192.168.3.242 192.168.3.100 192.168.1.162 192.168.1.190"


# Всем скорость от 1 Мбит/c до 8 Мбит/c. Входящая и исходящая.
NUMBERS_PRIV="192.168.2.232 192.168.3.114 192.168.2.101 192.168.3.200 192.168.3.253 192.168.3.201 192.168.3.223 192.168.1.179 192.168.3.244 192.168.3.246 192.168.2.211 192.168.3.78 192.168.1.161 192.168.2.135 192.168.3.79 192.168.1.166 192.168.3.76 192.168.2.82 192.168.1.173 192.168.2.81 192.168.2.65"


NUMBERS_TEST="192.168.1.151 192.168.3.249 192.168.3.230 192.168.2.29 192.168.3.250 192.168.2.163 192.168.2.250 192.168.2.123 192.168.3.243 192.168.3.3"

################ Подключаем все модулю и все запрещаем в фаирволе ###############
echo "1" > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/ip_dynaddr
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
iptables -F
iptables -F -t nat
iptables -F -t mangle

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

################# Маскарадинг в инет и локалку ###############################
iptables --table nat --append POSTROUTING --out-interface vlan3 -j MASQUERADE
iptables --table nat --append POSTROUTING --out-interface vlan4 -j MASQUERADE
iptables --table nat --append POSTROUTING --out-interface vlan5 -j MASQUERADE
iptables --table nat --append POSTROUTING --out-interface eth1 -j MASQUERADE

############################## MAPPING PORTS XEN SERVER FROM INET #####################################
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 3389 -j DNAT --to-destination 192.168.3.79
iptables -A FORWARD -i eth1 -o vlan3 -d 192.168.3.79 -p tcp -m tcp --dport 3389 -j ACCEPT
iptables -A FORWARD -i vlan3 -o eth1 -s 192.168.3.79 -p tcp -m tcp --sport 3389 -j ACCEPT
#######################################################################################################

################################ VPN SERVER #########################################################
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 1723 -j DNAT --to-destination 192.168.3.223:1723
iptables -A FORWARD -i eth1 -o vlan3 -d 192.168.3.223 -p tcp -m tcp --dport 1723 -j ACCEPT
iptables -A FORWARD -i vlan3 -o eth1 -s 192.168.3.223 -p tcp -m tcp --sport 1723 -j ACCEPT

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 47 -j DNAT --to-destination 192.168.3.223:47
iptables -A FORWARD -i eth1 -o vlan3 -d 192.168.3.223 -p tcp -m tcp --dport 47 -j ACCEPT
iptables -A FORWARD -i vlan3 -o eth1 -s 192.168.3.223 -p tcp -m tcp --sport 47 -j ACCEPT
#####################################################################################################

#Выравниваем MTU
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

#############Firewall#############
# Отбрасывать все пакеты, которые не могут быть идентифицированы и поэтому не могут иметь определенного статуса.
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP

# Принимать все пакеты, которые инициированы из уже установленного соединения, и имеющим признак ESTABLISHED.
# Состояние ESTABLISHED говорит о том, что это не первый пакет в соединении.
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# Приводит к связыванию системных ресурсов, так что реальных обмен данными становится не возможным.
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
iptables -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP

#разрешаем локальный траффик для локальной сети
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

iptables -I INPUT -p gre -j ACCEPT

iptables -A INPUT -i vlan3 -j ACCEPT
iptables -A OUTPUT -o vlan3 -j ACCEPT

iptables -A INPUT -i vlan4 -j ACCEPT
iptables -A OUTPUT -o vlan4 -j ACCEPT

iptables -A INPUT -i vlan5 -j ACCEPT
iptables -A OUTPUT -o vlan5 -j ACCEPT

#Разрешаем гулять всем подсетям
iptables -A FORWARD -i vlan4 -o vlan3 -j ACCEPT
iptables -A FORWARD -i vlan3 -o vlan4 -j ACCEPT

iptables -A FORWARD -i vlan4 -o vlan5 -j ACCEPT
iptables -A FORWARD -i vlan5 -o vlan4 -j ACCEPT

iptables -A FORWARD -i vlan3 -o vlan5 -j ACCEPT
iptables -A FORWARD -i vlan5 -o vlan3 -j ACCEPT

# ICMP разрешаем пинг с локальной сети провайдера до сервера
iptables -A INPUT -i $inet -p icmp -j ACCEPT
iptables -A OUTPUT -o $inet -p icmp -j ACCEPT


#Разрешаем ICMP пакеты для vlan3, vlan4 в интернет
iptables -A FORWARD -i $inet -o vlan3 -p icmp -j ACCEPT
iptables -A FORWARD -i vlan3 -o $inet -p icmp -j ACCEPT

iptables -A FORWARD -i $inet -o vlan4 -p icmp -j ACCEPT
iptables -A FORWARD -i vlan4 -o $inet -p icmp -j ACCEPT

iptables -A FORWARD -i $inet -o vlan5 -p icmp -j ACCEPT
iptables -A FORWARD -i vlan5 -o $inet -p icmp -j ACCEPT

# Разрешаем серверу http, https, ssh, ftp (открываем порты 80,443,21,22)
iptables -A INPUT -i $inet -p tcp --sport 465 -j ACCEPT
iptables -A OUTPUT -o $inet -p tcp --dport 465 -j ACCEPT

#HTTP
iptables -A INPUT -i $inet -p tcp --sport 80 -j ACCEPT
iptables -A OUTPUT -o $inet -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i $inet -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -o $inet -p tcp --sport 80 -j ACCEPT
# passive ftp
##########################################################
iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT # ftp-сервер
iptables -A OUTPUT -p tcp -m tcp --sport 21 -j ACCEPT

iptables -A INPUT -p tcp -m tcp --dport 20 -j ACCEPT # ftp-data для активного режима
iptables -A OUTPUT -p tcp -m tcp --sport 20 -j ACCEPT

iptables -A INPUT -p tcp -m tcp --dport 60000:60235 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --sport 60000:60235 -j ACCEPT
###########################################################

# SSH
iptables -A INPUT -i $inet -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -o $inet -p tcp --sport 22 -j ACCEPT

iptables -A INPUT -i $inet -p tcp --dport 443 -j ACCEPT
iptables -A OUTPUT -o $inet -p tcp --sport 443 -j ACCEPT


iptables -A INPUT -i $inet -p tcp --dport 3050 -j ACCEPT
iptables -A OUTPUT -o $inet -p tcp --sport 3050 -j ACCEPT
#DNS
iptables -A INPUT -i $inet -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -o $inet -p udp --sport 53 -j ACCEPT

iptables -A INPUT -i $inet -p udp --sport 53 -j ACCEPT
iptables -A OUTPUT -o $inet -p udp --dport 53 -j ACCEPT

#DHCP
iptables -A INPUT -i $inet -p udp --dport 67 -j ACCEPT
iptables -A OUTPUT -o $inet -p udp --sport 67 -j ACCEPT

iptables -A INPUT -i $inet -p udp --sport 67 -j ACCEPT
iptables -A OUTPUT -o $inet -p udp --dport 67 -j ACCEPT

#############Шейпер#############

#Режем входящую
NUMBERS_VLAN="vlan3 vlan4 vlan5"
for number_vl in `echo $NUMBERS_VLAN`
do
echo $number_vl

tc qdisc del dev $number_vl root
tc qdisc add dev $number_vl root handle 1: htb

tc class add dev $number_vl parent 1: classid 1:1 htb rate 100Mbit

tc class add dev $number_vl parent 1:1 classid 1:100 htb rate 100Mbit ceil 100Mbit burst 15k
tc class add dev $number_vl parent 1:1 classid 1:90 htb rate 1Mbit ceil 8Mbit burst 15k
tc class add dev $number_vl parent 1:1 classid 1:80 htb rate 1Mbit ceil 3Mbit burst 15k
tc class add dev $number_vl parent 1:1 classid 1:70 htb rate 200Kbit ceil 3Mbit burst 15k

tc qdisc add dev $number_vl parent 1:100 handle 100: sfq perturb 10
tc qdisc add dev $number_vl parent 1:90 handle 90: sfq perturb 10
tc qdisc add dev $number_vl parent 1:80 handle 80: sfq perturb 10
tc qdisc add dev $number_vl parent 1:70 handle 70: sfq perturb 10

tc filter add dev $number_vl parent 1:0 protocol ip prio 1 handle 100 fw classid 1:100
tc filter add dev $number_vl parent 1:0 protocol ip prio 2 handle 90 fw classid 1:90
tc filter add dev $number_vl parent 1:0 protocol ip prio 3 handle 80 fw classid 1:80
tc filter add dev $number_vl parent 1:0 protocol ip prio 4 handle 70 fw classid 1:70
done

#Между подсетями на 100
iptables -t mangle -A FORWARD -i vlan3 -o vlan4 -j MARK --set-mark 100
iptables -t mangle -A FORWARD -i vlan3 -o vlan5 -j MARK --set-mark 100

iptables -t mangle -A FORWARD -i vlan4 -o vlan3 -j MARK --set-mark 100
iptables -t mangle -A FORWARD -i vlan4 -o vlan5 -j MARK --set-mark 100

iptables -t mangle -A FORWARD -i vlan5 -o vlan3 -j MARK --set-mark 100
iptables -t mangle -A FORWARD -i vlan5 -o vlan4 -j MARK --set-mark 100


###############################################################################
#PRIV
for number_priv in `echo $NUMBERS_PRIV`
do
iptables -t mangle -A FORWARD -s $number_priv -o $inet -j MARK --set-mark 90
iptables -t mangle -A FORWARD -i $inet -d $number_priv -j MARK --set-mark 90
iptables -A FORWARD -s $number_priv -o $inet -j ACCEPT
iptables -A FORWARD -i $inet -d $number_priv -j ACCEPT
done

#### ALL
for number_all in `echo $NUMBERS_ALL`
do
iptables -t mangle -A FORWARD -s $number_all -o $inet -j MARK --set-mark 80
iptables -t mangle -A FORWARD -i $inet -d $number_all -j MARK --set-mark 80
iptables -A FORWARD -s $number_all -o $inet -j ACCEPT
iptables -A FORWARD -i $inet -d $number_all -j ACCEPT
done
#############################################################################

#for number_test in `echo $NUMBERS_TEST`
#do
#iptables -t mangle -A FORWARD -s $number_test -o $inet -p udp -m multiport --dport 80,443,110,25,143,5190 -j MARK --set-mark 70
#iptables -t mangle -A FORWARD -i $inet -d $number_test -p udp -m multiport --dport 80,443,110,25,143,5190 -j MARK --set-mark 70
# iptables -t mangle -A FORWARD -s $number_test -o $inet -p tcp -m multiport --dport 80,443,110,25,143,5190 -j MARK --set-mark 70
# iptables -t mangle -A FORWARD -i $inet -d $number_test -p tcp -m multiport --dport 80,443,110,25,143,5190 -j MARK --set-mark 70
#
# iptables -A FORWARD -s $number_test -o $inet -p tcp -m multiport --dport 80,443,110,25,143,5190 -j ACCEPT
# iptables -A FORWARD -i $inet -d $number_test -p tcp -m multiport --dport 80,443,110,25,143,5190 -j ACCEPT
# iptables -A FORWARD -s $number_test -o $inet -p udp -m multiport --dport 80,443,110,25,143,5190 -j ACCEPT
# iptables -A FORWARD -i $inet -d $number_test -p udp -m multiport --dport 80,443,110,25,143,5190 -j ACCEPT
#done


for number_test in `echo $NUMBERS_TEST`
do
iptables -t mangle -A FORWARD -s $number_test -o $inet -j MARK --set-mark 70
iptables -t mangle -A FORWARD -i $inet -d $number_test -j MARK --set-mark 70
iptables -A FORWARD -s $number_test -o $inet -j ACCEPT
iptables -A FORWARD -i $inet -d $number_test -j ACCEPT
done


#Режем исходящую
tc qdisc del dev $inet root
tc qdisc add dev $inet root handle 1: htb

tc class add dev $inet parent 1: classid 1:1 htb rate 100Mbit

tc class add dev $inet parent 1:1 classid 1:90 htb rate 1Mbit ceil 8Mbit burst 15k
tc class add dev $inet parent 1:1 classid 1:80 htb rate 1Mbit ceil 8Mbit burst 15k
tc class add dev $inet parent 1:1 classid 1:70 htb rate 1Mbit ceil 7Mbit burst 15k


tc qdisc add dev $inet parent 1:90 handle 90: sfq perturb 10
tc qdisc add dev $inet parent 1:80 handle 80: sfq perturb 10
tc qdisc add dev $inet parent 1:70 handle 70: sfq perturb 10

tc filter add dev $inet parent 1:0 protocol ip prio 1 handle 90 fw classid 1:90
tc filter add dev $inet parent 1:0 protocol ip prio 2 handle 80 fw classid 1:80
tc filter add dev $inet parent 1:0 protocol ip prio 3 handle 80 fw classid 1:70

sleep 1
/bin/sh /root/script/banned.sh
[/console]
#217560

Kettler, да, тема шикарная, но всётаки хотелось бы недогадками, а текущий конфиг, с текущего шлюза...

#219498

Чуть продвинулся. Теперь SQUID видит пользователей из LDAP. Т.е. у пользователя выползает окошко, он вводит пароль и логин и тем самым получает инет.
Вот такая запись в squid.conf
[console]/usr/lib/squid/squid_ldap_auth -b "dc=smb,dc=mgkb1,dc=local" -D sel_ldap@smb.mgkb1.local -w XXXXX -f "(&(objectClass=person)(sAMAccountName=%s))" -u sAMAccountName -h 192.168.2.82 -p 389[/console]
Это хорошо, но как сделать еще проверку по группе. Что бы не все получали, а только те что в группе InternetAccess?

Пробую
[console]/usr/lib/squid/squid_ldap_group -R -b "dc=smb,dc=mgkb1,dc=local" -D "sel_ldap@smb.mgkb1.local" -w XXXX -f "(&(memberUid=%v)(cn=%a))" -h 192.168.2.82 -v 3 -p 389[/console]
ввожу sel_ldap InternetAccess и получаю ошибку

#219543

Не ужели ни кто не работает с openldap и squid? Глухо как в танке? :( :( :(

#219544

Если честно щас даже в падлу что то пытаться проверять и тестить. Вот как нибудь на днях можно будет.
Может другие что подскажут.

#219551

Вот кусок для раздумий. Моя группа. Как видно в ней два пользователя.
[console]dn: CN=ia,CN=Builtin,DC=smb,DC=mgkb1,DC=local
objectClass: top
objectClass: group
cn: ia
instanceType: 4
whenCreated: 20120107143210.0Z
uSNCreated: 7832
name: ia
objectGUID:: Z/Q2m7LGsU25nwoHMOX9xw==
objectSid:: AQUAAAAAAAUVAAAA3vytZwYlvS1Jf0ClXwQAAA==
sAMAccountName: ia
sAMAccountType: 268435456
groupType: -2147483646
objectCategory: CN=Group,CN=Schema,CN=Configuration,DC=smb,DC=mgkb1,DC=local
member: CN=sel_ldap,CN=Users,DC=smb,DC=mgkb1,DC=local
member: CN=proba,CN=Users,DC=smb,DC=mgkb1,DC=local
whenChanged: 20120107153430.0Z
uSNChanged: 7899
distinguishedName: CN=ia,CN=Builtin,DC=smb,DC=mgkb1,DC=local[/console]

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

извините за оффтоп, но почему нельзя использовать нормальный редактор с поддержкой подсветки и складок? Он вам и покажет "без лишнего".

#219556

А вот сам пользователь
[console]dn: CN=proba,CN=Users,DC=smb,DC=mgkb1,DC=local
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: user
cn: proba
givenName: proba
instanceType: 4
whenCreated: 20120107153409.0Z
displayName: proba
uSNCreated: 7889
name: proba
objectGUID:: +fCYR+LfpUi4zXJsNMniwQ==
badPwdCount: 0
codePage: 0
countryCode: 0
badPasswordTime: 0
lastLogoff: 0
lastLogon: 0
primaryGroupID: 513
objectSid:: AQUAAAAAAAUVAAAA3vytZwYlvS1Jf0ClYQQAAA==
accountExpires: 9223372036854775807
logonCount: 0
sAMAccountName: proba
sAMAccountType: 805306368
userPrincipalName: proba@smb.mgkb1.local
objectCategory: CN=Person,CN=Schema,CN=Configuration,DC=smb,DC=mgkb1,DC=local
pwdLastSet: 129704240490000000
userAccountControl: 66048
whenChanged: 20120107153410.0Z
uSNChanged: 7897
memberOf: CN=ia,CN=Builtin,DC=smb,DC=mgkb1,DC=local
memberOf: CN=InternetAccess,CN=Builtin,DC=smb,DC=mgkb1,DC=local
distinguishedName: CN=proba,CN=Users,DC=smb,DC=mgkb1,DC=local
[/console]

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