Здравствуйте. На компьютере, с 2-мя сетевыми интерфейсами, стоит прокси сервер squid и iptables. Задача сделать так, чтобы можно было лазить в интернете через прокси. Прокси настроил, машины выходят в сеть, если прописать ip:порт.
Проблема заключается в том, что если не прописывать прокси то машина тоже имеет доступ в интернет. Как я понимаю эти вещи необходимо ограничить iptables, и дело скорее всего в FORWARD.
Подскажите пожалуйста как должны быть настроены правила, у меня пока все по стандарту.
Правила iptables:
#!/bin/sh
#Включаем форвардинг пакетов
echo 1 > /proc/sys/net/ipv4/ip_forward
#Разрешаем траффик на lo
iptables -A INPUT -i lo -j ACCEPT
#Разрешаем доступ из внутренней сети наружу
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
#Включаем NAT
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE
#Разрешаем ответы из внешней сети
iptables -A FORWARD -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
#Запрещаем доступ снаружи во внутреннюю сеть
iptables -A FORWARD -i eth0 -o eth1 -j REJECT
# Заворачиваем http на прокси
iptables -t nat -A PREROUTING -i eth1 ! -d 192.168.0.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.0.1:3128
Пользователь добавил сообщение 26 Апреля 2017, 12:19:59:
Решение было очень простым, пользователи должны работать на АРМ с правами доступа пользователя. Таким образом они не могли бы поменять dns.
Вопрос теперь стоит как настроить iptables.
Нашел неплохие правила, добавил в начале файла. Получилось так что не видит сеть внутреннюю сеть ( внешнюю не пинговал)
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
#INPUT цепочка
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT #разрешить внутренний интерфейс
iptables -A INPUT -p icmp -j ACCEPT #разрешить пинг
iptables -A INPUT -p tcp -i eth0 --dport 3128 -j ACCEPT #Squid
#OUTPUT цепочка
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -p icmp -j ACCEPT # Разрешаем пинг
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT #Доступ к web
$iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
$iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
Добавил в цепочки
iptables -A INPUT -i eth0 --match state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o eth0 --match state --state NEW, ESTABLISHED, RELATED -j ACCEPT
Эффекта никакого, подскажите в что не так с правилами?