OEvg85,
Уточняю, что в сеть смотрит eth0 (INPUT На склко я понимаю) а в интернет eth1 (OUTPUT)
Ты немного неверно понимаешь INPUT и OUTPUT цепочки. Это ВХОДЯЩИЙ и ИСХОДЯЩИЙ трафик для твоего локального сервера(т.е. того, на котором ты настраиваешь IPTABLES). А такой трафик может прийти с любого интерфейса: и с eth0, и с eth1.
Вопрос №1: хочу чтобы эта сладкая парочка мом юзерам из локалки разрешала ползоваться только определенными портами (HTTP, HTTPS, FTP, POP3, POP3S, SMTP, IMAP, IMAPS, DNS, TCP 7500, TCP 88). Кому эту задачку лучше поручить (iptabes или squid).
Squid это, как ты и сказал, прокси сервер. С его помощью нельзя блокировать (или разрешать) пользователям доступ к каким-либо портам. Это задача для межсетевого экрана - IPTABLES. Как правило, IPTALES настраивают по сценарию "запрещено все, кроме того, что разрешено". Кроме того, Squid проксирует только HTTP, HTTPS, FTP и GOPHER траффик. Т.е. POP/IMAP/SMTP и т.д. придется выпускать напрямую через IPTABLES.
Вопрос №3: В организации 2 подсети, планируется бухгалтерию в 3-ю выделить (и инет им давать только на 1ПК). Как реализовать?
А в чем вопрос? Просто воткнешь еще один сетевой адаптер в сервак, задашь ему адрес из новой подсети и все. Пользователям каждой из подсетей указываешь в качестве шлюза по умолчанию IP адрес соответствующего интерфейса сервера. Даже маршрутизацию настраивать не придется. А насчет инета на 1 ПК тут возможны варианты. Либо с помощью авторизации на SQUID, либо можно запретить доступ к тому же SQUID через IPTABLES.
Вопрос №4: Хочу в squid'е авторизовать ползователей по МАК-аресу. Это так:
Я для этих целей использую SAMS. Не знаю, правда, как там именно с MAC авторизацией обстоят дела.
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -A input -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -j REJECT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth0 - j ACCEPT
iptables -P FORWARD DROP
ИМХО, это все неверно. Вообще работать не будет. Мне кажется, у тебя нет понимая цепочек IPTABLES. На самом деле придется почитать
мануал. Вкратце так: INPUT - входящий для твоего сервера с IPTABLES трафик (т.е. твой сервер с IPTABLES является пунктом назначения); OUTPUT - соответственно исходящий (этот трафик генерирует не рабочая станция в сети или кто-то в инете, а именно твой сервер с IPTABLES); FORWARD - трафик, для которого твой сервер является промежуточной точкой, т.е. трафик, который будет перенаправлен (FORWARD) или в локальную сеть, или в Интернет. POSTROUTING и PREROUTING - специфические цепочки. Про них в доке почитаешь.
Прежде чем писать правила, я бы рекомендовал на бумажке нарисовать/написать то, что ты хочешь получить, а потом, опираясь на этот рисунок/список, записывать правила. Ну, например:
1.По умолчанию всем все запрещено.
2.Всем пользователям локальной сети разрешено соединяться с моим сервером.
3.NAT для трафика всех пользователей локальной сети.
4.IP которому можно ходить в инет по POP3.
Правила будут приблизительно такими.
IPTABLES -P INPUT DROP #Политика по умолчанию для цепочки INPUT
IPTABLES -P FORWARD DROP #Политика по умолчанию для цепочки FORWARD
IPTABLES -P OUTPUT ACCEPT DROP #Политика по умолчанию для цепочки OUTPUT
IPTABLES -t nat -A POSTROUTING -o eth1 -j MASQUERADE #NATим весь исходящий трафик
IPTABLES -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT #Разрешаем ответный трафик из инета
IPTABLES -A INPUT -i eth0 -j ACCEPT #Разрешаем соединятся с нашим сервером из локальной сети ВСЕМ
IPTABLES -A FORWARD -i eth0 -s 192.168.1.1 -p tcp --dport 25 -j ACCEPT #Разрешаем станции с IP 192.168.1.1 POP3 в инет
Как то так. Не даю гарантии, что правила заработают, т.к. я не проверял их, да и упустить что-то мог. Но общий смысл таков.