LinuxForum.Fans
Тема

Открыть доступ в инет только определённым ip

Автор: GoUpInSmoke 11 сообщений 3245 просмотров
#363189

Доброго времени суток.
Я что то совсем запутался. Есть шлюз squid squidGuard sams iptables на rosa server 6.5 все работает нормально :) Есть просто уточнение одно
Сейчас доступ открыт всем (за исключением сайтов которые режет squidGuard)
Надо закрыть всё и открыть доступ в инет только определённым ip
Вся сложность в том, что севак за 5000км. А в iptables я не оч силён.

text

 # Generated by iptables-save v1.4.7 on Thu Jan 30 09:25:14 2014
*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [357:335409]
:OUTPUT ACCEPT [16:3693]
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth1 -j ACCEPT
-A INPUT -j LOG
-A INPUT -j DROP

-A FORWARD -i eth1 -j ACCEPT -A OUTPUT -o lo -j ACCEPT -A OUTPUT -o eth1 -j ACCEPT COMMIT # Completed on Thu Jan 30 09:25:14 2014 # Generated by iptables-save v1.4.7 on Thu Jan 30 09:25:14 2014 *nat :PREROUTING ACCEPT [28:1987] :POSTROUTING ACCEPT [0:0] :OUTPUT ACCEPT [2:120] -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.1:3128 -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128 -A POSTROUTING -o eth0 -j MASQUERADE COMMIT # Completed on Thu Jan 30 09:25:14 2014 # Generated by iptables-save v1.4.7 on Thu Jan 30 09:25:14 2014 *mangle :PREROUTING ACCEPT [761:387631] :INPUT ACCEPT [93:11254] :FORWARD ACCEPT [664:376133] :OUTPUT ACCEPT [60:10798] :POSTROUTING ACCEPT [724:386931] COMMIT # Completed on Thu Jan 30 09:25:14 2014

#363195

вот как делал

text

iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables --append FORWARD --in-interface eth1 -j ACCEPT
iptables -A INPUT -i eth1 -j ACCEPT
iptables -A OUTPUT -o eth1 -j ACCEPT
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to 192.168.0.1:3128
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -A INPUT -j LOG
iptables -A INPUT -j DROP
#363373

Блин давайте тогда вместе :)
Вот так пойдёт?

text

#Дропаем всё
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

#Маскардинг в инет и локалку iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE iptables --append FORWARD --in-interface eth1 -j ACCEPT

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

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

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

# Разрешаем squid iptables -A INPUT -i eth0 -p tcp --sport 21 --dport 3128 -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --sport 21 --dport 3128 -j ACCEPT

#Тут разрешаем инет одному ip iptables -I INPUT -i eth0 -p udp -m udp -s 192.168.0.79 --dport 3128 -j ACCEPT

#squid redirect iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to 192.168.0.1:3128 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

#Разрешаем пинговать узлы интернета iptables -A FORWARD -i eth0 -o eth1 -p icmp -j ACCEPT iptables -A FORWARD -i eth1 -o eth0 -p icmp -j ACCEPT

#363374

к сожалению пока нет возможности поднять виртуалку и проверить

#363401
"GoUpInSmoke" написал:
что севак за 5000км.
"GoUpInSmoke" написал:
Вся сложность в том, что севак за 5000км.

Любым способов сделайте сброс правил iptables. К примеру в крон раз в пол часа восстанавливать старые.

"GoUpInSmoke" написал:
Сейчас доступ открыт всем (за исключением сайтов которые режет squidGuard)
Надо закрыть всё и открыть доступ в инет только определённым ip

Можно попробовать так.
Запретить всем форвард и доступ до сквида. И скриптом добавлять разрешения, примерный вариант скрипта ниже.

Запрещаем весть forward и доступ на squid
iptables -P FORWARD DROP // закрываем все forward
iptables -A INPUT -i eth1 -p tcp --dport 3128 -j DROP // закрываем всем сквид

text

#!/bin/bash
file='....'  # файл с разрешенными адресами
for i in `cat $file`
do
  iptables -A FORWARD -i eth1 -s $i -j ACCEPT
  iptables -A INPUT -i eth1 -p tcp --dport 3128 -s $i -j ACCEPT
done
#363415

подождите :) а чем плохо было просто закрыть порт 3128 и отрывать его для определенного ip?
iptables -I INPUT -i eth0 -p tcp -m tcp -s 192.168.0.79 --dport 3128 -j ACCEPT

#363416
GoUpInSmoke написал:
подождите :) а чем плохо было просто закрыть порт 3128 и отрывать его для определенного ip?
iptables -I INPUT -i eth0 -p tcp -m tcp -s 192.168.0.79 --dport 3128 -j ACCEPT

Ничем.
Просто для полного отрубления интернета одним 3128 портом не обойдетесь. А скриптик делает тоже самое, только (по моему мнению) более цивилизованно.

#363417

может я что то не так изначально задумал.
в идеале надо разрешить доступ в инет (за шлюз) только тем ip которые выдал dhcp так как squid и т.д. не режет торенты и т.д. + если пользователи меняют ip (есть тут пара любителей) то инет не работает ))) и т.д.
сам шлюз настроен и работает норм. осталось только вот закрыть всё кроме нескольких ip
действующие правила iptables в первом посту

#363418

Первое что пришло в голову. Забрать права администратора(ну или хотябы права настройки сети) у этих любителей.

"GoUpInSmoke" написал:
в идеале надо разрешить доступ в инет (за шлюз) только тем ip которые выдал dhcp

В dhcp ограничить пул выдаваемых ip. К примеру у вас есть 100 машин, тогда dhcp будет выдавать 192.168.1.0-192.168.1.100. Соответственно эти адресам дать интернет, а остальным нет.

#363419
"marikk" написал:
Соответственно эти адресам дать интернет, а остальным нет.

Можно вопрос: а если эти любители гугловские DNS себе пропишут, то правильно ли я понимаю, что интернет у них появится?

#363455

без разницы, squid и squidGuard режут запросы от браузера.

yars написал:
[quote="marikk"]Соответственно эти адресам дать интернет, а остальным нет.

Можно вопрос: а если эти любители гугловские DNS себе пропишут, то правильно ли я понимаю, что интернет у них появится?[/quote]

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