LINUX.ORG.RU

IPTables


0

0

Помогите разобраться вот с каким делом, пожалуйста.

Как мне замаскарадить в iptables определённые MAC-адреса на почтовые порты в интернет?
Чтобы не пускать весь трафик с хостов в инет, а только почту собирать, а по www & ftp все через squid.
Заранее спасибо.

anonymous

Re: IPTables

Там этого нет:)
Есть небольшое упоминание работы с модулем mac.
Если не знаете ответ, то просьба не бросаться общими ссылками.
Указанный документ досконально изучен, прежде, чем задать этот вопрос.
А вам было бы неплохо обратить внимание на работу указанного модуля (в какой таблице и в какой цепочке он применяется), а так же в какой таблице и цепочке происходит маскарадинг через SNAT или на худой конец MASQUERADE.
Хотелось бы услышать совет тех специалистов, которые решали эту проблему.
Спасибо.

anonymous ()

Re: IPTables

Может так?

#============================================================================
#/bin/sh
#
# Разрешить форвардинг
#
echo "1" > /proc/sys/net/ipv4/ip_forward
#
# Настройка переменных
# Реальный IP адрес
#
REAL_IP="XXX.XXX.XXX.XXX"
#
# Интерфейс, связанный с INET
#
INET_IFACE="XXX"
LAN_IFACE="XXX"
#
# Список почтовых сервисов
#
SMTP=25
RE_MAIL_CK=50
POP2=109
POP3=110
IMAP2=143
MAILQ=174
$QMTP=209
$IMAP3=220
$IMSP=406
$IMAPS=993
$POP3S=995
#
# Политика по умолчанию
#
iptables -P FORWARD DROP
#
# Создать цепочку для проверки MAC-адресов
#
#============================================================================
#
iptables -N POSTVERIFY
#
#Заполняем цепочку POSTVERIFY
#которая проверяет MAC-адреса
#здесь количество правил,
#равно количеству MAC-адресов
#
iptables -A POSTVERIFY -m mac --mac-source XX:XX:XX:XX:XX:XX -j ACCEPT
iptables -A POSTVERIFY -m mac --mac-source XX:XX:XX:XX:XX:XX -j ACCEPT
iptables -A POSTVERIFY -m mac --mac-source XX:XX:XX:XX:XX:XX -j ACCEPT
...
iptables -A POSTVERIFY -m mac --mac-source XX:XX:XX:XX:XX:XX -j ACCEPT
#
# В завершение эмулируем политику по умолчанию
#
iptables -A POSTVERIFY -j DROP
#
#============================================================================
#
# Заполняем цепочку FORWARD
# сюда заносим "почтовых" пользователей
#
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp -i $LAN_IFACE --dport $SMTP -j POSTVERIFY
iptables -A FORWARD -p tcp -i $LAN_IFACE --dport $RE_MAIL_CK -j POSTVERIFY
iptables -A FORWARD -p tcp -i $LAN_IFACE --dport $POP2 -j POSTVERIFY
iptables -A FORWARD -p tcp -i $LAN_IFACE --dport $POP3 -j POSTVERIFY
iptables -A FORWARD -p tcp -i $LAN_IFACE --dport $IMAP2 -j POSTVERIFY
iptables -A FORWARD -p tcp -i $LAN_IFACE --dport $MAILQ -j POSTVERIFY
iptables -A FORWARD -p tcp -i $LAN_IFACE --dport $QMTP -j POSTVERIFY
iptables -A FORWARD -p tcp -i $LAN_IFACE --dport $IMAP3 -j POSTVERIFY
iptables -A FORWARD -p tcp -i $LAN_IFACE --dport $IMSP -j POSTVERIFY
iptables -A FORWARD -p tcp -i $LAN_IFACE --dport $IMAPS -j POSTVERIFY
iptables -A FORWARD -p tcp -i $LAN_IFACE --dport $POP3S -j POSTVERIFY
#
#============================================================================
#
# И наконец преобразование адресов
#
iptables -t nat -A POSTROUTING -o $INET_IFACE -s ! $REAL_IP -j SNAT --to-source $REAL_IP
#============================================================================

andrey-x ()

Re: IPTables

Прошу прощения, не тот фрагмент отправил!

#============================================================================
#/bin/sh
#
# Разрешить форвардинг
#
echo "1" > /proc/sys/net/ipv4/ip_forward
#
# Настройка переменных
# Реальный IP адрес
#
REAL_IP="XXX.XXX.XXX.XXX"
#
# Интерфейс, связанный с INET
#
INET_IFACE="XXX"
#
# Интерфейс, связанный с LAN
#
LAN_IFACE="XXX"
#
# Список почтовых сервисов
#
SMTP=25
RE_MAIL_CK=50
POP2=109
POP3=110
IMAP2=143
MAILQ=174
QMTP=209
IMAP3=220
IMSP=406
IMAPS=993
POP3S=995
#
# Политика по умолчанию
#
iptables -P FORWARD DROP
#
# Создать цепочку для проверки MAC-адресов
#
#============================================================================
#
iptables -N POSTVERIFY
#
# Заполняем цепочку POSTVERIFY
# которая проверяет MAC-адреса
# сюда заносим "почтовых" пользователей
# здесь количество правил,
# равно количеству MAC-адресов
#
iptables -A POSTVERIFY -m mac --mac-source XX:XX:XX:XX:XX:XX -j ACCEPT
iptables -A POSTVERIFY -m mac --mac-source XX:XX:XX:XX:XX:XX -j ACCEPT
iptables -A POSTVERIFY -m mac --mac-source XX:XX:XX:XX:XX:XX -j ACCEPT
...
iptables -A POSTVERIFY -m mac --mac-source XX:XX:XX:XX:XX:XX -j ACCEPT
#
# В завершение эмулируем политику по умолчанию
#
iptables -A POSTVERIFY -j DROP
#
#============================================================================
#
# Заполняем цепочку FORWARD
#
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp -i $LAN_IFACE --dport $SMTP -j POSTVERIFY
iptables -A FORWARD -p tcp -i $LAN_IFACE --dport $RE_MAIL_CK -j POSTVERIFY
iptables -A FORWARD -p tcp -i $LAN_IFACE --dport $POP2 -j POSTVERIFY
iptables -A FORWARD -p tcp -i $LAN_IFACE --dport $POP3 -j POSTVERIFY
iptables -A FORWARD -p tcp -i $LAN_IFACE --dport $IMAP2 -j POSTVERIFY
iptables -A FORWARD -p tcp -i $LAN_IFACE --dport $MAILQ -j POSTVERIFY
iptables -A FORWARD -p tcp -i $LAN_IFACE --dport $QMTP -j POSTVERIFY
iptables -A FORWARD -p tcp -i $LAN_IFACE --dport $IMAP3 -j POSTVERIFY
iptables -A FORWARD -p tcp -i $LAN_IFACE --dport $IMSP -j POSTVERIFY
iptables -A FORWARD -p tcp -i $LAN_IFACE --dport $IMAPS -j POSTVERIFY
iptables -A FORWARD -p tcp -i $LAN_IFACE --dport $POP3S -j POSTVERIFY
#
#============================================================================
#
# И наконец преобразование адресов
#
iptables -t nat -A POSTROUTING -o $INET_IFACE -s ! $REAL_IP -j SNAT --to-source $REAL_IP
#============================================================================

andrey-x ()

Re: IPTables

Спасибо! Я попробую!

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