Routing kilku podsieci
: 30 czerwca 2010, 14:23
Witam.
Na serwerze mam 3 karty sieciowe (więcej nie mam możliwości założyć):
[INDENT]eth0 - łącze 1
eth1 - łącze 2
eth2 - łącze 3[/INDENT]
Na eth2 mam sieć 192.168.1.0/24
Chciałbym utworzyć sieć 192.168.2.0/24
Jak to zrobić, utworzyć alians eth2:0 i dać mu adres 192.168.2.1?
Ale jak wygląda sprawa z routingiem?
Chciałbym aby każda sieć miała dostęp do internetu jak i można było poruszać się w obrębie obu sieci.
firewalla mam takiego:
Na serwerze mam 3 karty sieciowe (więcej nie mam możliwości założyć):
[INDENT]eth0 - łącze 1
eth1 - łącze 2
eth2 - łącze 3[/INDENT]
Na eth2 mam sieć 192.168.1.0/24
Chciałbym utworzyć sieć 192.168.2.0/24
Jak to zrobić, utworzyć alians eth2:0 i dać mu adres 192.168.2.1?
Ale jak wygląda sprawa z routingiem?
Chciałbym aby każda sieć miała dostęp do internetu jak i można było poruszać się w obrębie obu sieci.
firewalla mam takiego:
Kod: Zaznacz cały
#!/bin/sh
#################
# CONFIGURATION #
#################
F="/sbin/iptables"
LOG="ipt#"
#global iface for external network
G_NET_NAME="eth0"
G_NET_IP="xxxxxxxxxxxxx"
#local iface for local network
L_NET_NAME="eth2"
L_NET_IP="192.168.1.1"
L_NET="192.168.1.0/24"
L_BRDC="192.168.1.255"
#setup of modules and kernel konfig
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_ftp
echo "1" > /proc/sys/net/ipv4/ip_forward
#dynamic address allocation
#echo "1" > /proc/sys/net/ipv4/ip_dynaddr
#ignor ICMP echo request sended to broadcast
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
#SYN flood protection
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
#refuse source routed packets
echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route
echo "1" > /proc/sys/net/ipv4/conf/all/secure_redirects
#source validation by reversed path (RFC1812).
echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
#log packets from incorrect sources
echo "1" > /proc/sys/net/ipv4/conf/all/log_martians
##################
# INITIALIZATION #
##################
echo "Setup policy for standard chains..."
$F -P INPUT ACCEPT
$F -P FORWARD ACCEPT
$F -P OUTPUT ACCEPT
$F -t nat -P PREROUTING ACCEPT
$F -t nat -P OUTPUT ACCEPT
$F -t nat -P POSTROUTING ACCEPT
$F -t mangle -P PREROUTING ACCEPT
$F -t mangle -P OUTPUT ACCEPT
$F -t mangle -P INPUT ACCEPT
$F -t mangle -P FORWARD ACCEPT
$F -t mangle -P POSTROUTING ACCEPT
echo "Cleaning rules for standard chains..."
$F -F
$F -t nat -F
$F -t mangle -F
echo "Deleting all nonstandard chains..."
$F -X
$F -t nat -X
$F -t mangle -X
if [ "$1" = "stop" ]
then
echo "Firewall IS OFF !!!"
exit 0
fi
echo "Setting up policy for standard chains..."
$F -P INPUT DROP
$F -P OUTPUT DROP
$F -P FORWARD DROP
echo "Creating extra chains rules..."
$F -N bledne_pakiety
$F -N bledne_pakiety_tcp
$F -N pakiety_icmp
$F -N tcp_wchodzace
$F -N tcp_wychodzace
$F -N udp_wchodzace
$F -N udp_wychodzace
###############
# bad_packets #
###############
echo "Creating rules for chain bledne_pakiety..."
$F -A bledne_pakiety -p ALL -m state --state INVALID -j LOG --log-prefix "$LOG bledne_pakiety "
$F -A bledne_pakiety -p ALL -m state --state INVALID -j DROP
$F -A bledne_pakiety -p tcp -j bledne_pakiety_tcp
$F -A bledne_pakiety -p ALL -j RETURN
###############
# bad_packets #
###############
echo "Creating rules for chain bledne_pakiety..."
$F -A bledne_pakiety -p ALL -m state --state INVALID -j LOG --log-prefix "$LOG bledne_pakiety "
$F -A bledne_pakiety -p ALL -m state --state INVALID -j DROP
$F -A bledne_pakiety -p tcp -j bledne_pakiety_tcp
$F -A bledne_pakiety -p ALL -j RETURN
###################
# bad_tcp_packets #
###################
echo "Creating rules for chain bledne_pakiety_tcp..."
#dla gate
$F -A bledne_pakiety_tcp -p tcp -i $G_NET_NAME -j RETURN
$F -A bledne_pakiety_tcp -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "$LOG bledne_pakiety_tcp "
$F -A bledne_pakiety_tcp -p tcp ! --syn -m state --state NEW -j DROP
$F -A bledne_pakiety_tcp -p tcp --tcp-flags ALL NONE -j LOG --log-prefix "$LOG bledne_pakiety_tcp "
$F -A bledne_pakiety_tcp -p tcp --tcp-flags ALL NONE -j DROP
$F -A bledne_pakiety_tcp -p tcp --tcp-flags ALL ALL -j LOG --log-prefix "$LOG bledne_pakiety_tcp "
$F -A bledne_pakiety_tcp -p tcp --tcp-flags ALL ALL -j DROP
$F -A bledne_pakiety_tcp -p tcp --tcp-flags ALL FIN,URG,PSH -j LOG --log-prefix "$LOG bledne_pakiety_tcp "
$F -A bledne_pakiety_tcp -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
$F -A bledne_pakiety_tcp -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j LOG --log-prefix "$LOG bledne_pakiety_tcp "
$F -A bledne_pakiety_tcp -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP
$F -A bledne_pakiety_tcp -p tcp --tcp-flags SYN,RST SYN,RST -j LOG --log-prefix "$LOG bledne_pakiety_tcp "
$F -A bledne_pakiety_tcp -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
$F -A bledne_pakiety_tcp -p tcp --tcp-flags SYN,FIN SYN,FIN -j LOG --log-prefix "$LOG bledne_pakiety_tcp "
$F -A bledne_pakiety_tcp -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
$F -A bledne_pakiety_tcp -p tcp -j RETURN
################
# icmp_packets #
################
echo "Creating rules for chain pakiety_icmp..."
$F -A pakiety_icmp --fragment -p ICMP -j LOG --log-prefix "$LOG pakiety_icmp fragmenty "
$F -A pakiety_icmp --fragment -p ICMP -j DROP
#ping and ping logging
# $F -A pakiety_icmp -p ICMP -s 0/0 --icmp-type 8 -j LOG --log-prefix "$LOG pakiety_icmp "
# $F -A pakiety_icmp -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT
#ping - hash out in case of enabling above rules
$F -A pakiety_icmp -p ICMP -s 0/0 --icmp-type 8 -j DROP
#Time Exceeded
$F -A pakiety_icmp -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT
$F -A pakiety_icmp -p ICMP -j RETURN
################
# tcp_incoming #
################
echo "Creating rules for chain tcp_wchodzace..."
#ident request
#reject not drop to avoid connections delay
$F -A tcp_wchodzace -p TCP -s 0/0 --destination-port 113 -j REJECT
#FTP client (data port non-PASV)
$F -A tcp_wchodzace -p TCP -s 0/0 --source-port 20 -j ACCEPT
#FTP control
$F -A tcp_wchodzace -p TCP -s 0/0 --destination-port 21 -j ACCEPT
# Passive FTP
#$F -A tcp_wchodzace -p TCP -s 0/0 --destination-port : -j ACCEPT
#ssh
$F -A tcp_wchodzace -p TCP -s 0/0 --destination-port 22 -j ACCEPT
#HTTP
$F -A tcp_wchodzace -p TCP -s 0/0 --destination-port 80 -j ACCEPT
#HTTPS
$F -A tcp_wchodzace -p TCP -s 0/0 --destination-port 443 -j ACCEPT
#SMTP
$F -A tcp_wchodzace -p TCP -s 0/0 --destination-port 25 -j ACCEPT
#POP3
$F -A tcp_wchodzace -p TCP -s 0/0 --destination-port 110 -j ACCEPT
#SSL POP3
$F -A tcp_wchodzace -p TCP -s 0/0 --destination-port 995 -j ACCEPT
#IMAP4
$F -A tcp_wchodzace -p TCP -s 0/0 --destination-port 143 -j ACCEPT
#SSL IMAP4
$F -A tcp_wchodzace -p TCP -s 0/0 --destination-port 993 -j ACCEPT
#ICQ File Transfers & Other Advanced Features
#$F -A tcp_wchodzace -p TCP -s 0/0 --destination-port : -j ACCEPT
#MSN Messenger File Transfers
#$F -A tcp_wchodzace -p TCP -s 0/0 --destination-port : -j ACCEPT
#NFS Server - portmapper
#$F -A tcp_wchodzace -p TCP -s 0/0 --destination-port -j ACCEPT
#NFS Server - statd
#$F -A tcp_wchodzace -p TCP -s 0/0 --destination-port -j ACCEPT
#NFS Server - NFS daemon
#$F -A tcp_wchodzace -p TCP -s 0/0 --destination-port -j ACCEPT
#NFS Server - lockd
#$F -A tcp_wchodzace -p TCP -s 0/0 --destination-port -j ACCEPT
#NFS Server - mountd
#$F -A tcp_wchodzace -p TCP -s 0/0 --destination-port -j ACCEPT
#NFS Server - quotad
#$F -A tcp_wchodzace -p TCP -s 0/0 --destination-port -j ACCEPT
#User specified allowed TCP protocol
#$F -A tcp_wchodzace -p TCP -s 0/0 --destination-port -j ACCEPT
#not matched: return and log
$F -A tcp_wchodzace -p TCP -j RETURN
#Blokowanie FTP Data
#$F -A tcp_wychodzace -p TCP -s 0/0 --destination-port 20 -j REJECT
#Blokowanie FTP Control
#$F -A tcp_wychodzace -p TCP -s 0/0 --destination-port 21 -j REJECT
#Blokowanie SSH
#$F -A tcp_wychodzace -p TCP -s 0/0 --destination-port 22 -j REJECT
#Blokowanie Telnet
#$F -A tcp_wychodzace -p TCP -s 0/0 --destination-port 23 -j REJECT
#Blokowanie HTTP
#$F -A tcp_wychodzace -p TCP -s 0/0 --destination-port 80 -j REJECT
#Blokowanie HTTPS
#$F -A tcp_wychodzace -p TCP -s 0/0 --destination-port 443 -j REJECT
#Blokowaie SMTP
#$F -A tcp_wychodzace -p TCP -s 0/0 --destination-port 25 -j REJECT
#Blokowaie POP3
#$F -A tcp_wychodzace -p TCP -s 0/0 --destination-port 110 -j REJECT
#Blokowaie POP3SSL
#$F -A tcp_wychodzace -p TCP -s 0/0 --destination-port 995 -j REJECT
#Blokowaie IMAP4
#$F -A tcp_wychodzace -p TCP -s 0/0 --destination-port 143 -j REJECT
#Blokowaie IMAP4SSL
#$F -A tcp_wychodzace -p TCP -s 0/0 --destination-port 993 -j REJECT
#Blokowanie NEWS
#$F -A tcp_wychodzace -p TCP -s 0/0 --destination-port 119 -j REJECT
#Blokowanie IRC
#$F -A tcp_wychodzace -p TCP -s 0/0 --destination-port : -j REJECT
#Blokowaie AIM
#$F -A tcp_wychodzace -p TCP -s 0/0 --destination-port 5190 -j REJECT
#Blokowaie AIM Images
#$F -A tcp_wychodzace -p TCP -s 0/0 --destination-port 4443 -j REJECT
#Blokowaie MSN Messenger
#$F -A tcp_wychodzace -p TCP -s 0/0 --destination-port 1863 -j REJECT
#Blokowany zakres portow
#$F -A tcp_wychodzace -p TCP -s 0/0 --destination-port -j REJECT
#blokowanie gg
#$F -A tcp_wychodzace -p TCP -s 0/0 -d 217.17.41.0/24 -j REJECT
#$F -A tcp_wychodzace -p TCP -s 0/0 -d 217.17.33.0/24 -j REJECT
#not matched ACCEPT
$F -A tcp_wychodzace -p TCP -s 0/0 -j ACCEPT
################
# udp_incoming #
################
echo "Creating rules for chain udp_wchodzace..."
#Drop netbios calls
$F -A udp_wchodzace -p UDP -s 0/0 --destination-port 137 -j DROP
$F -A udp_wchodzace -p UDP -s 0/0 --destination-port 138 -j DROP
#ident - reject zamiast drop w celu unikniecia opoznien w polaczeniach
$F -A udp_wchodzace -p UDP -s 0/0 --destination-port 113 -j REJECT
#NTP
$F -A udp_wchodzace -p UDP -s 0/0 --destination-port 123 -j ACCEPT
#DNS
$F -A udp_wchodzace -p UDP -s 0/0 --destination-port 53 -j ACCEPT
#zewnetrzny server DHCP
$F -A udp_wchodzace -p UDP -s 0/0 --source-port 68 --destination-port 67 -j ACCEPT
#NFS Server - portmapper
#$F -A udp_wchodzace -p UDP -s 0/0 --destination-port -j ACCEPT
#NFS Server - statd
#$F -A udp_wchodzace -p UDP -s 0/0 --destination-port -j ACCEPT
#NFS Server - NFS daemon
#$F -A udp_wchodzace -p UDP -s 0/0 --destination-port -j ACCEPT
#NFS Server - lockd
#$F -A udp_wchodzace -p UDP -s 0/0 --destination-port -j ACCEPT
#NFS Server - mountd
#$F -A udp_wchodzace -p UDP -s 0/0 --destination-port -j ACCEPT
#NFS Server - quotad
#$F -A udp_wchodzace -p UDP -s 0/0 --destination-port -j ACCEPT
#dopuszczalny zakres portow udp
$F -A udp_wchodzace -p UDP -s 0/0 --destination-port 8888 -j ACCEPT
#not matched - return and log
$F -A udp_wchodzace -p UDP -j RETURN
################
# udp_outgoing #
################
echo "Creating rules for chain udp_wychodzace..."
#Blokowany zakres portow
#$F -A udp_wychodzace -p UDP -s 0/0 --destination-port -j REJECT
#blokowanie gg
#$F -A udp_wychodzace -p UDP -s 0/0 -d 217.17.41.0/24 -j REJECT
#$F -A udp_wychodzace -p UDP -s 0/0 -d 217.17.33.0/24 -j REJECT
#not matched ACCEPT
$F -A udp_wychodzace -p UDP -s 0/0 -j ACCEPT
#########
# INPUT #
#########
echo "Creating rules for chain INPUT..."
$F -A INPUT -p ALL -i lo -j ACCEPT
$F -A INPUT -p ALL -j bledne_pakiety
#DOCSIS compliant cable modems
#Drop without logging.
$F -A INPUT -p ALL -d 224.0.0.1 -j DROP
#zezwolenie dla sieci lokalnej - dla gate
$F -A INPUT -p ALL -i $L_NET_NAME -s $L_NET -j ACCEPT
$F -A INPUT -p ALL -i $L_NET_NAME -d $L_BRDC -j ACCEPT
#DHCP - dla gate
$F -A INPUT -p UDP -i $L_NET_NAME --source-port 68 --destination-port 67 -j ACCEPT
#Ustanowione polaczenia
$F -A INPUT -p ALL -i $G_NET_NAME -m state --state ESTABLISHED,RELATED -j ACCEPT
#reszta do odpowiednich lancuchow
$F -A INPUT -p ICMP -i $G_NET_NAME -j pakiety_icmp
$F -A INPUT -p TCP -i $G_NET_NAME -j tcp_wchodzace
$F -A INPUT -p UDP -i $G_NET_NAME -j udp_wchodzace
#zatrzymanie rozgloszen
$F -A INPUT -p ALL -d 255.255.255.255 -j DROP
#nie pasujace - logowanie
$F -A INPUT -j LOG --log-prefix "$LOG INPUT:99 "
###########
# FORWARD #
###########
#dla gate caly
echo "Creating rules for chain FORWARD..."
$F -A FORWARD -p ALL -j bledne_pakiety
$F -A FORWARD -p tcp -i $L_NET_NAME -j tcp_wychodzace
$F -A FORWARD -p udp -i $L_NET_NAME -j udp_wychodzace
$F -A FORWARD -p ALL -i $L_NET_NAME -j ACCEPT
$F -A FORWARD -i $G_NET_NAME -m state --state ESTABLISHED,RELATED -j ACCEPT
#nie pasujace - loguj
$F -A FORWARD -j LOG --log-prefix "$LOG FORWARD:99 "
##########
# OUTPUT #
##########
echo "Creating rules for chain OUTPUT..."
$F -A OUTPUT -m state -p icmp --state INVALID -j DROP
$F -A OUTPUT -p ALL -s 127.0.0.1 -j ACCEPT
$F -A OUTPUT -p ALL -o lo -j ACCEPT
#dla gate
$F -A OUTPUT -p ALL -s $L_NET_IP -j ACCEPT
$F -A OUTPUT -p ALL -o $L_NET_NAME -j ACCEPT
$F -A OUTPUT -p ALL -o $G_NET_NAME -j ACCEPT
#nie pasujace - loguj
$F -A OUTPUT -j LOG --log-prefix "$LOG OUTPUT:99 "
#############
# nat table #
#############
echo "Creating rules for NAT table..."
#w nat wszystkie reguly dla gate
##############
# PREROUTING #
##############
echo " lancuch PREROUTING"
#Redirect HTTP for a transparent proxy
$F -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-ports 8080
#Redirect HTTPS for a transparent proxy - commented by default
#$F -t nat -A PREROUTING -p tcp --destination-port 443 -j REDIRECT --to-ports 8080
###############
# POSTROUTING #
###############
echo " lancuch POSTROUTING"
$F -t nat -A POSTROUTING -o $G_NET_NAME -j SNAT --to-source $G_NET_IP
$F -t nat -A POSTROUTING -o $L_NET_NAME -j SNAT --to-source $G_NET_IP
################
# mangle table #
################