LinuxForum.Fans
Тема

Доступ в интернет для отдельных IP сети

Автор: mishaga 7 сообщений 2688 просмотров
#87132

У меня в сети доступ в интернет нужно дать только нескольким - всего 3м - компьютерам.
На шлюзе (192.168.0.1) под управлением Debian Lenny 5.0 я поставил squid, настроил в нём ip-фильтраию - чтобы по http ходили только эти 3 компьютера. Всё работает отлично.
Но по остальным протоколам - pop, imap, icq и т.д. может ходить вся сеть.
Как мне сделать фильрт в iptables, чтобы весь интернет для всей сети был закрыт, кроме тех 3х компов?

Вот мой iptables-скрипт

text

#!/bin/sh

iptables -F INPUT iptables -F FORWARD iptables -F OUTPUT iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT

echo "1" > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE iptables -t nat -A OUTPUT -p tcp --dport 80,8080 -j DNAT --to-destination 192.168.0.1:3129

#87133
text
iptables -t nat -A OUTPUT -p tcp --dport all -j DNAT --to-destination 192.168.0.1:3129

так нельзя?
или так?

text
iptables -t nat -A OUTPUT -p tcp --dport 1:65535 -j DNAT --to-destination 192.168.0.1:3129
#87135
Termo написал:
text
iptables -t nat -A OUTPUT -p tcp --dport all -j DNAT --to-destination 192.168.0.1:3129

так нельзя?

Это что, весь трафик пойдёт через squid?
Тогда по ftp, icq и остальным протоколам смогут только "избранные" ходить, это ясно.
Но не замедлит ли это работу в интернете, не загрузит ли это шлюз?

#87139

я не знаю
у вас скромный файл выложен - в нем всего две строчки

#87146

Ну да...
Всё маскарадить
А http перебразыавть на squid

И хотелось бы чтобы просто был фильтр - пускать такие-то ip-адреса, остальным - запретить.

#87147

Если нужно только http ftp b https что собствено может обработать или пробросить squid, то чтобы остальные не могли ходить в нет надо в iptables настроить так

text

#!/bin/sh

iptables -F INPUT iptables -F FORWARD iptables -F OUTPUT iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP

echo "1" > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE iptables -t nat -A OUTPUT -p tcp --dport 80,8080 -j DNAT --to-destination 192.168.0.1:3129

iptables -A FORWARD -s 192.168.0.$1 -o ppp0 -j ACCEPT iptables -A FORWARD -s 192.168.0.$2 -o ppp0 -j ACCEPT iptables -A FORWARD -s 192.168.0.$3 -o ppp0 -j ACCEPT

$1-2-3 айпишки тех компов которые кроме веб могут ещё напрямую забирать пошту и т.п.
А остальным не велено лесть.

#87249

Спасибо за советы!
Сделал вот так:

text
#!/bin/sh

iptables -F INPUT iptables -F FORWARD iptables -F OUTPUT iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT

echo "1" > /proc/sys/net/ipv4/ip_forward

# разрешил некоторым iptables -A FORWARD -s 192.168.0.x -o eth1 -j ACCEPT iptables -A FORWARD -s 192.168.0.y -o eth1 -j ACCEPT iptables -A FORWARD -s 192.168.0.z -o eth1 -j ACCEPT

# и запретил всем остальным iptables -A FORWARD -s 192.168.0.0/24 -o eth1 -j DROP

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-destination 192.168.0.1:3129

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