Помогите, настроит роутер на две сети с алиасами + inet.Исходные:
OS - Slackware 11.0.0
Ядро - 2.6.18
iptables - 1.3.6
Пров выдал мне, внешний айпи (INET_IP) и гейт через который я должен ходить в инет (INET_GW), также айпи в его локалке (LAN2_IP).
На eth0 – внешний айпишник смотрящий в инет (INET_IP), на алисе eth0:0 айпишник (LAN2_IP) выданный мне в локалке прова.
eth1 – смотрит в домашнюю сеть (LAN_IP)
Хочется чтоб, из LAN был доспуп в LAN2 и в инет.
Из LAN2 запретить ходить, через меня в инет, разрешить видеть на роутер сервисы на (80, 411)
Из инета запретить всё кроме нескольких проброшенных портов в LAN2.
Как грамотно написать правила, чтоб это работало. Учитывая то что, лакалка инет лежат в разных сетях, но на одном интерфейсе?
Сейчас работает только LAN – INET, а вот в LAN2 не пускает =(
ifconfig eth0 $INET_IP netmask 255.255.255.240
ifconfig eth0:0 $LAN2_IP netmask 255.255.0.0
ifconfig eth1 $LAN_IP netmask 255.255.255.0
route add default gw $INET_GW dev eth0
[cat /etc/rc.d/rc.firewall]
#!/bin/sh
#
# Internet Configuration.
INET_IP="195.182.x.5"
INET_IFACE="eth0"
INET_BROADCAST="195.182.x.46"
# Local Area Network configuration.
LAN_IP="192.168.0.1"
LAN_IP_RANGE="192.168.0.0/255.255.255.0"
LAN_IFACE="eth1"
LAN2_IP="10.0.0.112"
LAN2_IP_RANGE="10.0.0.0/255.255.0.0"
LAN2_IFACE="eth0"
# Localhost Configuration.
LO_IFACE="lo"
LO_IP="127.0.0.1"
# IPTables Configuration.
IPTABLES="/usr/sbin/iptables"
################################################################################
# Module loading.
/sbin/depmod -a
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_mangle
/sbin/modprobe iptable_nat
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_limit
/sbin/modprobe ipt_state
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_conntrack_irc
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_nat_irc
################################################################################
$IPTABLES -F INPUT
$IPTABLES -F FORWARD
$IPTABLES -F OUTPUT
$IPTABLES -t nat -F POSTROUTING
$IPTABLES -X
$IPTABLES -t nat -X
$IPTABLES -t mangle -X
################################################################################
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -N bad_tcp_packets
$IPTABLES -N allowed
$IPTABLES -N tcp_packets
$IPTABLES -N udp_packets
$IPTABLES -N icmp_packets
# Цепочка bad_tcp_packets
$IPTABLES -A bad_tcp_packets -p tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j REJECT --reject-with tcp-reset
$IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "New not syn:"
$IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP
# Цепочка allowed
$IPTABLES -A allowed -p TCP --syn -j ACCEPT
$IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A allowed -p TCP -j DROP
# Цепочка для TCP
#$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 21 -j allowed # FTP
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 22 -j allowed # SSH
#$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 80 -j allowed # web
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 113 -j allowed # IDENTD
# Цепочка для UDP
#$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 53 -j ACCEPT # DNS
#$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 123 -j ACCEPT # NTP
$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 4000 -j ACCEPT # ICQ
#$IPTABLES -A udp_packets -p UDP -i $INET_IFACE -d $INET_BROADCAST --destination-port 135:139 -j DROP
# Блокируетм DHCP запросы извне
$IPTABLES -A udp_packets -p UDP -i $INET_IFACE -d 255.255.255.255 --destination-port 67:68 -j DROP
# Цепочка для ICMP
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT # PING
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT # TTL
################################################################################
LOCAL_IP='192.168.0.4'
PORT1='48343'
PORT2='48343'
$IPTABLES -t nat -A PREROUTING -p tcp -d $INET_IP --dport $PORT1 -j DNAT --to-destination $LOCAL_IP:$PORT2
$IPTABLES -A FORWARD -i $INET_IFACE -d $LOCAL_IP -p tcp --dport $PORT2 -j ACCEPT
PORT1='12795'
PORT2='12795'
$IPTABLES -t nat -A PREROUTING -p tcp -d $INET_IP --dport $PORT1 -j DNAT --to-destination $LOCAL_IP:$PORT2
$IPTABLES -A FORWARD -i $INET_IFACE -d $LOCAL_IP -p tcp --dport $PORT2 -j ACCEPT
LOCAL_IP='192.168.0.2'
PORT1='31118'
PORT2='31118'
$IPTABLES -t nat -A PREROUTING -p tcp -d $INET_IP --dport $PORT1 -j DNAT --to-destination $LOCAL_IP:$PORT2
$IPTABLES -A FORWARD -i $INET_IFACE -d $LOCAL_IP -p tcp --dport $PORT2 -j ACCEPT
PORT1='5128'
PORT2='5128'
$IPTABLES -t nat -A PREROUTING -p tcp -d $INET_IP --dport $PORT1 -j DNAT --to-destination $LOCAL_IP:$PORT2
$IPTABLES -A FORWARD -i $INET_IFACE -d $LOCAL_IP -p tcp --dport $PORT2 -j ACCEPT
PORT1='5128'
PORT2='5128'
$IPTABLES -t nat -A PREROUTING -p tcp -d $INET_IP --dport $PORT1 -j DNAT --to-destination $LOCAL_IP:$PORT2
$IPTABLES -A FORWARD -i $INET_IFACE -d $LOCAL_IP -p tcp --dport $PORT2 -j ACCEPT
################################################################################
$IPTABLES -A INPUT -p tcp -j bad_tcp_packets
## Rules for special networks not part of the Internet
$IPTABLES -A INPUT -p ALL -i $LAN_IFACE -s $LAN_IP_RANGE -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LO_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LAN_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LAN2_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $INET_IP -j ACCEPT
$IPTABLES -A INPUT -p ALL -d $LAN2_IP -m state --state ESTABLISHED,RELATED -j ACCEPT
# Rules for incoming packets from the internet.
$IPTABLES -A INPUT -p ALL -d $INET_IP -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -p TCP -i $INET_IFACE -s $LAN2_IP_RANGE --dport 80 -j ACCEPT
$IPTABLES -A INPUT -p TCP -i $INET_IFACE -s $LAN2_IP_RANGE --dport 411 -j ACCEPT
$IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_packets
$IPTABLES -A INPUT -p UDP -i $INET_IFACE -j udp_packets
$IPTABLES -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets
# Microsoft Network flooded by Multicasts
$IPTABLES -A INPUT -i $INET_IFACE -d 224.0.0.0/8 -j DROP