Здравствуйте, уважаемые гуру! :rolleyes:
Пожалуйста, покритикуйте мой файл настроек для iptables - что можно убавить, что прибавить, а что сделано неверно. Писал с комментариями, так что должно быть более-менее понятно
#!/bin/bash
# Зададим общие переменные
IPTABLES="/sbin/iptables"
WAN_IP="192.168.1.2"
WAN_IF="eth0"
WAN_BC="255.255.255.0"
LAN_IP="192.168.2.1"
LAN_IF="eth1"
LAN_NET="192.168.2.0/24"
LO_IP="127.0.0.1"
LO_IF="lo"
# Очистим все старые правила фильтрации
$IPTABLES -F
# 1) Разрешим все подключения к серверу, как входящие, так и исходящие (потом отрегулирую)
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P OUTPUT ACCEPT
# 2) Настроим некоторые важные системные правила
# 2.1) Все входящие пакеты с внутренней подсети на внутренний интерфейс - РАЗРЕШЕНЫ
$IPTABLES -A INPUT -p ALL -i $LAN_IF -s $LAN_NET -j ACCEPT
# 2.2) Все локальные пакеты во все сети - РАЗРЕШЕНЫ
$IPTABLES -A INPUT -p ALL -i $LO_IF -s $LO_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IF -s $LAN_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IF -s $WAN_IP -j ACCEPT
# 2.3) Все DHCP-запросы - РАЗРЕШЕНЫ
$IPTABLES -A INPUT -p UDP -i $LAN_IF --dport 67 --sport 68 -j ACCEPT
# 3) Все уже установленные входящие подключения - РАЗРЕШЕНЫ
$IPTABLES -A INPUT -p ALL -d $WAN_IP -m state --state ESTABLISHED,RELATED -j ACCEPT
# 4) Все входящие пакеты отправляются на дополнительную фильтрацию соответственно протоколу (пока отключено)
# $IPTABLES -A INPUT -p TCP -i $WAN_IF -j tcp_packets
# $IPTABLES -A INPUT -p UDP -i $WAN_IF -j udp_packets
# $IPTABLES -A INPUT -p ICMP -i $WAN_IF -j icmp_packets
# 5) Самая интересная часть - работа с транзитными пакетами
# 5.1) Сначала включаем собственно NAT
$IPTABLES -t nat -A POSTROUTING -o $WAN_IF -j MASQUERADE
# 5.2) Все транзитные пакеты по уже установленным соединениям - РАЗРЕШЕНЫ
$IPTABLES -A FORWARD -p ALL -m state --state ESTABLISHED,RELATED -j ACCEPT
# 5.3) Разрешим все пакеты для сервера и Ольги
SERVER_MAC="00:1A:64:A3:60:62"
OLGA_MAC="00:1F:D0:1A:C7:47"
$IPTABLES -A FORWARD -p ALL -m mac --mac-source $SERVER_MAC -j ACCEPT
$IPTABLES -A FORWARD -p ALL -m mac --mac-source $OLGA_MAC -j ACCEPT
# 5.4) Разрешим VPN-соединения с УФК для Галины Ивановны
GI_MAC="00:1F:C6:B5:80:82"
OFK_IP="89.184.228.220"
UFK_IP="81.24.131.84"
$IPTABLES -A FORWARD -p TCP -m mac --mac-source $GI_MAC --destination $OFK_IP -j ACCEPT
$IPTABLES -A FORWARD -p TCP -m mac --mac-source $GI_MAC --destination $UFK_IP -j ACCEPT
# 5.5) Для двух машин включаем Контур-Экстерн
OA_MAC="00:50:8D:B7:9D:4C"
VERBA_MAC="00:19:21:20:D8:34"
PETROTAX_IP="81.176.70.76"
$IPTABLES -A FORWARD -p TCP -m mac --mac-source $OA_MAC --destination $PETROTAX_IP -j ACCEPT
$IPTABLES -A FORWARD -p TCP -m mac --mac-source $VERBA_MAC --destination $PETROTAX_IP -j ACCEPT
# 5.6) Теперь список пользователей почты; им раскроем только определенные порты
SMTP_PORT=25
POP3_PORT=110
IMAP_PORT=143
IMAP_SSL_PORT=993
# ------
MOROZOVA_MAC="00:19:21:41:18:5A"
ANIKEEVA_MAC="00:50:8D:B7:9D:53"
IONINA_MAC="00:0B:6A:5F:AA:9D"
SEMENOVA_MAC="00:1B:FC:94:43:E7"
for port in "$SMTP_PORT" "$POP3_PORT" "$IMAP_PORT" "$IMAP_SSL_PORT"
do
for usermac in "$MOROZOVA_MAC" "$ANIKEEVA_MAC" "$IONINA_MAC" "$VERBA_MAC" "$SEMENOVA_MAC"
do
$IPTABLES -A FORWARD -p TCP -m mac --mac-source $usermac --destination-port $port -j ACCEPT
done
done
# 5.7) Двум машинам нужен доступ на polets.ru
SKORIK_MAC="00:1E:90:C4:55:F7"
RESHETNIKOVA_MAC="00:14:5E:41:0C:35"
# ------
POLETS_IP="86.110.193.37"
$IPTABLES -A FORWARD -p TCP -m mac --mac-source $SKORIK_MAC --destination $POLETS_IP -j ACCEPT
$IPTABLES -A FORWARD -p TCP -m mac --mac-source $RESHETNIKOVA_MAC --destination $POLETS_IP -j ACCEPT
# 5.8) Всем остальным - зарубить всё нах =)
$IPTABLES -P FORWARD REJECT