Как я должен ограничить доступ в Интернет большинства систем на моей LAN к нескольким веб-сайтам и заблокировать все другие веб-сайты? Я также хотел бы обойти те ограничения для некоторых систем. Все системы имеют статические IP-адреса.
Я попробовал Dansguardian+squid в независимой системе, но поскольку пользователи могут изменить прокси в своих веб-браузерах, то решение не может быть реализовано. При просмотре я узнал, что это может быть сделано при помощи промежутка шлюзовой системы Ubuntu маршрутизатор и LAN.
Оборудуйте шлюзовую систему двумя сетевыми платами: один для маршрутизатора и другого для локальной LAN.
Как я должен сделать это?
Предоставьте достаточно подробной информации.
Я настроил систему Ubuntu как шлюз между LAN и маршрутизатором ADSL. Из этих двух сетевых плат eth0
подключен к маршрутизатору ADSL с IP-адресом 192.168.0.240
.
eth0
Интерфейс (WAN) настроен со следующими исходными данными:
IP - 192.168.0.239
Gateway - 192.168.0.240
DNS - 192.168.0.225
eth1
Интерфейс (LAN) настроен со следующими исходными данными:
IP - 192.168.0.238
Gateway - 192.168.0.239
DNS - 192.168.0.225
Отметьте IP-адрес eth0
дан как шлюз для другого интерфейса eth1
. IP 192.168.0.225
наш внутренний локальный сервер DNS, который настроен как кэширующийся сервер DNS.
Править /etc/sysctl.conf
файл для некомментария строки net.ipv4.ip_forward=1
.
Загрузите webmin пакет с помощью следующей команды:
wget http://prdownloads.sourceforge.net/webadmin/webmin_1.720_all.deb
Установите пакет:
dpkg -i webmin_1.720_all.deb
Войдите в использование Webmin https://server-ip:10000
в Вашем веб-браузере.
Сделайте NAT на eth0
и нажмите Setup firewall
.
Можно записать сценарий оболочки для создания настроенного доступа для систем в LAN.
vim /root/iptables.sh
#!/bin/bash
iptables -F
IP="3 6 7 13 14 17"
for i in `echo $IP`
do
# FTP server
iptables -A FORWARD -s 192.168.0.$i -d 85.46.5.230 -j ACCEPT
# Mail server
iptables -A FORWARD -s 192.168.0.$i -d 93.34.3.220 -j ACCEPT
iptables -A FORWARD -s 192.168.0.$i -j DROP
done
exit 0
Править /etc/rc.local
запускать скрипт при начальной загрузке
/bin/bash /root/iptables.sh
Или иначе можно скопировать сценарий в /etc/init.d/
и добавьте его к сценариям начальной загрузки:
sudo update-rc.d keys defaults
iptables -L
перечислит текущие правила iptables.
Источники:
Основная вещь сделать состоит в том, чтобы сделать сервер сквида шлюзом по умолчанию вместо Вашего Маршрутизатора интернета .
Просто добавляют дополнительную сетевую плату к сквиду Ubuntu, приносящему его до 2 сетевых плат: 1 в Вашу LAN и 1 в Ваш сетевой маршрутизатор. Сторона локальной сети теперь получает IP-адрес шлюза по умолчанию (вероятно, 192.168.1.1), и сторона WAN получает автоматический IP-адрес от ISP.
Тот способ, которым весь Ваш сетевой трафик проходит через сервер сквида перед выходом и это может заблокировать что-либо. Просто рассматривайте его как нормальную машину Ubuntu с брандмауэром, и я советовал бы, чтобы не использовать помещение в черный список, но просто добавить материал в белый список.
единственная разница - то, что Вы могли бы потребность добавить несколько ручных маршрутов для внутренней части Ваша сеть, но значение по умолчанию переходит к сквиду, кто просто отбрасывает все, что не находится в белом списке...
Это настолько просто!