LINUX.ORG.RU

iptables, пропуск конкретного пользователя


0

1

День добрый.

установлено и настроено:
-squid+sams;
- postfix+dovecot;
ip inet = 88.88.88.88
gate =192.168.1.200
local_net = 192.168.1.0/24

задача такая:
- всех гнать на сквид, там с доспупом разрулю;
- 1 человеку надо получать почту с веб сервера напрямую, остальные с лок.почт сервера.(192.168.1.33)
- 1 машине открыть полный доступ к адресам банк клиентов, ко всему остальному закрыть.(192.168.1.7)
на Debian 6 в iptables я сделал так
A#!/bin/bash
#очистка существующих правил 
iptables -F
iptables -t nat -F
#
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

#Разрешим поддерживать уже установленные соединения (состояния соединений RELATED,ESTABLISHED)
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p all -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -p all -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
#Разрешим общение для локальной петли (интерфейс lo)
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# Разрешаем ICMP пакеты
iptables -A INPUT -p icmp -j ACCEPT
iptables -A OUTPUT -p icmp -j ACCEPT
#Включаем фрагментацию пакетов. надо изза разных значений MTU
iptables -i FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
#Отбрасывать все пакеты, которые не могут быть идент. и поэтому не имеют статуса.
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

#Почта. внутр интерфейс
iptables -A INPUT -i eth0 -s 192.168.1.0/24 -p tcp -m tcp --dport 25 -j ACCEPT
iptables -A INPUT -i eth0 -s 192.168.1.0/24 -p tcp -m tcp --dport 110 -j ACCEPT
iptables -A OUTPUT -o eth0 -s 192.168.1.0/24 -p tcp -m tcp --sport 25 -j ACCEPT
iptables -A OUTPUT -o eth0 -s 192.168.1.0/24 -p tcp -m tcp --sport 110 -j ACCEPT
#Почта. внешн. интерфейс
#iptables -A INPUT -i eth1 -p tcp --dport 25 -j ACCEPT #это для возможности отправлять из нета, используя наш почт сервер.
iptables -A OUTPUT -o eth1 -p tcp --sport 25 -j ACCEPT
iptables -A OUTPUT -o eth1 -p tcp --sport 110 -j ACCEPT

############### Маршрутизация ##########################

#Для почты директора
iptables -A FORWARD -p tcp -s 192.168.1.33 -d 195.206.40.175 --dport 25 -j ACCEPT
iptables -A FORWARD -p tcp -s 195.206.40.175 -d 192.168.1.33 --sport 25 -j ACCEPT
iptables -A FORWARD -p tcp -s 192.168.1.33 -d 195.206.40.175 --dport 110 -j ACCEPT
iptables -A FORWARD -p tcp -s 195.206.40.175 -d 192.168.1.33 --sport 110 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.1.33 -d 195.206.40.175 -p tcp --dport 25 -j SNAT --to 88.88.88.88
iptables -t nat -A POSTROUTING -s 192.168.1.33 -d 195.206.40.175 -p tcp --dport 110 -j SNAT --to 88.88.88.88
####### Для банк-клиента ######
iptables  -A FORWARD -p tcp -s 192.168.1.7 -d  193.200.10.10 -j ACCEPT
iptables  -A FORWARD -p tcp -s 192.168.1.7 -d  193.200.10.18 -j ACCEPT
iptables  -A FORWARD -p tcp -s 192.168.1.7 -d  193.200.10.26 -j ACCEPT
iptables  -A FORWARD -p tcp -s 192.168.1.7 -d  193.200.10.40 -j ACCEPT
iptables  -A FORWARD -p tcp -s 192.168.1.7 -d  193.200.10.100 -j ACCEPT
iptables  -A FORWARD -p tcp -s 192.168.1.7 -d  195.206.47.194 -j ACCEPT
iptables  -A FORWARD -p tcp -s 192.168.1.7 -d  194.84.16.64 -j ACCEPT
#
iptables  -A FORWARD -p tcp -s 193.200.10.10 -d 192.168.1.7 -j ACCEPT
iptables  -A FORWARD -p tcp -s 193.200.10.18 -d 192.168.1.7 -j ACCEPT
iptables  -A FORWARD -p tcp -s 193.200.10.26 -d 192.168.1.7  -j ACCEPT
iptables  -A FORWARD -p tcp -s 193.200.10.40 -d 192.168.1.7  -j ACCEPT
iptables  -A FORWARD -p tcp -s 193.200.10.100 -d 192.168.1.7  -j ACCEPT
iptables  -A FORWARD -p tcp -s 195.206.47.194 -d 192.168.1.7  -j ACCEPT
iptables  -A FORWARD -p tcp -s 194.84.16.64 -d 192.168.1.7 -j ACCEPT
#
iptables -t nat -A POSTROUTING -s 192.168.1.7 -d 193.200.10.10 -p tcp -j SNAT --to 192.206.53.98
iptables -t nat -A POSTROUTING -s 192.168.1.7 -d 193.200.10.18 -p tcp -j SNAT --to 88.88.88.88
iptables -t nat -A POSTROUTING -s 192.168.1.7 -d 193.200.10.26 -p tcp -j SNAT --to 88.88.88.88
iptables -t nat -A POSTROUTING -s 192.168.1.7 -d 193.200.10.40 -p tcp -j SNAT --to 88.88.88.88
iptables -t nat -A POSTROUTING -s 192.168.1.7 -d 193.200.10.100 -p tcp -j SNAT --to 88.88.88.88
iptables -t nat -A POSTROUTING -s 192.168.1.7 -d 195.206.47.194 -p tcp -j SNAT --to 88.88.88.88
iptables -t nat -A POSTROUTING -s 192.168.1.7 -d 194.84.16.64 -p tcp -j SNAT --to 88.88.88.88

############### Маршрутизация ######################

#Весь траффик из вн.сети пускаем на сквид
iptables -A INPUT -i eth0 -s 192.168.1.0/24 -p tcp --dport 3128 -j ACCEPT

#запрещаем доступ снаружи во внутр.сеть
iptables -A FORWARD -i eth1 -o eth0 -j REJECT
#Маскарадинг
iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to 88.88.88.88
#для ВПН
iptables -t nat -A POSTROUTING -o tap+  -j SNAT --to 88.88.88.88

#Блокируем все и вся
#iptables -A INPUT -i eth1 -p tcp -m tcp --tcp-flags FIN,SYN,ACK SYN -j LOG --log-level 7 --log-tcp-options
#iptables -A INPUT -i eth1 -p tcp -m tcp --tcp-flags FIN,SYN,ACK SYN -j REJECT --reject-with icmp-port-unreachable
#iptables -A FORWARD -o eth1 -p tcp -j DROP
на фре ipfw это было организовано так

# BOSS MAIL DIRECT
${fwcmd} add 810 divert natd ip from 195.168.1.33 to 195.206.40.175 out xmit rl1
${fwcmd} add allow ip from 192.168.1.33 to 195.206.40.175
${fwcmd} add allow ip from 195.206.40.175 to 192.168.1.33
# BOSS MAIL DIRECT

##Bank-Klient - finance
${fwcmd} add allow ip from 192.168.1.7 to 195.206.47.194
${fwcmd} add allow ip from 195.206.47.194 to 192.168.1.7
${fwcmd} add allow ip from 192.168.1.7 to 193.200.10.10
${fwcmd} add allow ip from 193.200.10.10 to 192.168.1.7
${fwcmd} add allow ip from 192.168.1.7 to 193.200.10.18
${fwcmd} add allow ip from 193.200.10.18 to 192.168.1.7
${fwcmd} add allow ip from 192.168.1.7 to 193.200.10.26
${fwcmd} add allow ip from 193.200.10.26 to 192.168.1.7
${fwcmd} add allow ip from 192.168.1.7 to 193.200.10.40
${fwcmd} add allow ip from 193.200.10.40 to 192.168.1.7
${fwcmd} add allow ip from 192.168.1.7 to 193.200.10.100
${fwcmd} add allow ip from 193.200.10.100 to 192.168.1.7
${fwcmd} add allow ip from 192.168.1.7 to 194.84.16.64/29
${fwcmd} add allow ip from 194.84.16.64/29 to 192.168.1.7
Подскажите где я ошибся. 192.168.1.7 все равно кидает в сквид

я у тебя вообще не вижу правил в цепочке PREROUTING, в которой обычно на сквид перенаправление происходит при помощи действия REDIRECT. В таблице nat , да.

nixtrian ()
Ответ на: комментарий от nixtrian

Например у меня:

-A PREROUTING -d  -j ACCEPT 
-A PREROUTING -s 10.37.34.0/26 -p tcp -m multiport --dports 80,8080 -j REDIRECT --to-ports 3128

весь трафик из 10.37.34.0/26 перенаправляется на сквид.

трафик адресованный 192.168.2.0/24 не перенаправляется.

nixtrian ()
Ответ на: комментарий от nixtrian

чтение правил идет сверху вниз вроде?
сначала запрещающие потом разрешающие?

kainitis ()
Ответ на: комментарий от nixtrian

данные строки нужны при прозрачной проксе. у меня настроен непрозрачный, поэтому работает при строке
iptables -A INPUT -i eth0 -s 192.168.1.0/24 -p tcp --dport 3128 -j ACCEPT
а при PREROUTING не фурычит.

kainitis ()
Ответ на: комментарий от kainitis

тогда как объяснить «192.168.1.7 все равно кидает в сквид» ?

При непрозрачном проксировании обычно никого никуда не кидает.

nixtrian ()
Ответ на: комментарий от nixtrian

Это был мой косяк. Нашел неправильный мануал. Тема закрыта

kainitis ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.