Eu ainda não consegui isolar meu servidor de e-mail para que somente
ele acesse o link dedicado segue abaixo as configurações de rede e
firewall onde eth0 eth0:1 eth:2 são links com ip fixo, eth1 é o link
interno e eth2 é o link para rede de 10MB
auto lo eth0 eth0:1 eth0:2 eth1 eth2
iface lo inet loopback
iface eth0 inet static
address 189.168.1.20
netmask 255.255.255.248
network 201.11.217.0
#gateway 189.168.1.29
iface eth0:1 inet static
address 189.168.1.21
netmask 255.255.255.248
gateway 201.11.217.129
iface eth0:2 inet static
adderess 189.168.1.22
netmask 255.255.255.248
#gateway 201.11.217.129
iface eth1 inet static
address 10.1.1.5
netmask 255.255.255.0
network 10.1.1.0
iface eth2 inet static
address 192.168.1.3
netmask 255.255.255.0
network 192.168.1.0
#gateway 192.168.1.2
### FIREWALL
#!/bin/sh
#
# This is automatically generated file. DO NOT MODIFY !
#
# Firewall Builder fwb_ipt v3.0.7-1477
#
# Generated Tue Nov 17 17:24:28 2009 Horário brasileiro de verão by eluz
#
# files: * firewall
#
#
# Compiled for iptables (any version)
#
#
#
#
#
PATH="/sbin:/usr/sbin:/bin:/usr/bin:${PATH}"
export PATH
LSMOD="lsmod"
MODPROBE="modprobe"
IPTABLES="iptables"
IP6TABLES="ip6tables"
IPTABLES_RESTORE="iptables-restore"
IP6TABLES_RESTORE="/sbin/ip6tables-restore"
IP="ip"
LOGGER="logger"
log() {
echo "$1"
test -x "$LOGGER" && $LOGGER -p info "$1"
}
check_file() {
test -r "$2" || {
echo "Can not find file $2 referenced by AddressTable object $1"
exit 1
}
}
va_num=1
add_addr() {
addr=$1
nm=$2
dev=$3
type=""
aadd=""
L=`$IP -4 link ls $dev | head -n1`
if test -n "$L"; then
OIFS=$IFS
IFS=" /:,<"
set $L
type=$4
IFS=$OIFS
if test "$type" = "NO-CARRIER"; then
type=$5
fi
L=`$IP -4 addr ls $dev to $addr | grep inet | grep -v :`
if test -n "$L"; then
OIFS=$IFS
IFS=" /"
set $L
aadd=$2
IFS=$OIFS
fi
fi
if test -z "$aadd"; then
if test "$type" = "POINTOPOINT"; then
$IP -4 addr add $addr dev $dev scope global label $dev:FWB${va_num}
va_num=`expr $va_num + 1`
fi
if test "$type" = "BROADCAST"; then
$IP -4 addr add $addr/$nm dev $dev brd + scope global label
$dev:FWB${va_num}
va_num=`expr $va_num + 1`
fi
fi
}
getInterfaceVarName() {
echo $1 | sed 's/\./_/'
}
getaddr() {
dev=$1
name=$2
L=`$IP -4 addr show dev $dev | grep inet | grep -v :`
test -z "$L" && {
eval "$name=''"
return
}
OIFS=$IFS
IFS=" /"
set $L
eval "$name=$2"
IFS=$OIFS
}
getaddr6() {
dev=$1
name=$2
L=`$IP -6 addr show dev $dev | grep inet6 | grep -v :`
test -z "$L" && {
eval "$name=''"
return
}
OIFS=$IFS
IFS=" /"
set $L
eval "$name=$2"
IFS=$OIFS
}
getinterfaces() {
NAME=$1
$IP link show | grep ": $NAME" | while read L; do
OIFS=$IFS
IFS=" :"
set $L
IFS=$OIFS
echo $2
done
}
# increment ip address
incaddr()
{
n1=$4
n2=$3
n3=$2
n4=$1
vn1=`eval "echo \\$$n1"`
R=`expr $vn1 \< 255`
if test $R = "1"; then
eval "$n1=`expr $vn1 + 1`"
else
eval "$n1=0"
incaddr XX $n4 $n3 $n2
fi
}
prolog_commands() {
echo "Running prolog script"
}
epilog_commands() {
echo "Running epilog script"
}
run_epilog_and_exit() {
epilog_commands
exit $1
}
if $IP link ls >/dev/null 2>&1; then
echo;
else
echo "iproute not found"
exit 1
fi
prolog_commands
MODULES_DIR="/lib/modules/`uname -r`/kernel/net/"
MODULES=`find $MODULES_DIR -name '*conntrack*'|sed -e 's/^.*\///' -e
's/\([^\.]\)\..*/\1/'`
MODULES="$MODULES `find $MODULES_DIR -name '*nat*'|sed -e 's/^.*\///'
-e 's/\([^\.]\)\..*/\1/'`"
for module in $MODULES; do
if $LSMOD | grep ${module} >/dev/null; then continue; fi
$MODPROBE ${module} || exit 1
done
# Using 0 address table files
INTERFACES="eth0 eth1 eth2 lo "
for i in $INTERFACES ; do
$IP link show "$i" > /dev/null 2>&1 || {
log "Interface $i does not exist"
exit 1
}
done
# Configure interfaces
$IP -4 neigh flush dev eth0 >/dev/null 2>&1
$IP -4 addr flush dev eth0 secondary label "eth0:FWB*" >/dev/null 2>&1
$IP -4 neigh flush dev eth1 >/dev/null 2>&1
$IP -4 addr flush dev eth1 secondary label "eth1:FWB*" >/dev/null 2>&1
$IP -4 neigh flush dev eth2 >/dev/null 2>&1
$IP -4 addr flush dev eth2 secondary label "eth2:FWB*" >/dev/null 2>&1
add_addr 189.168.1.20 29 eth0
add_addr 189.168.1.21 29 eth0
add_addr 189.168.1.22 24 eth0
$IP link set eth0 up
add_addr 10.1.1.5 24 eth1
$IP link set eth1 up
add_addr 192.168.1.3 24 eth2
$IP link set eth2 up
add_addr 127.0.0.1 8 lo
$IP link set lo up
# Add virtual addresses for NAT rules
log 'Activating firewall script generated Tue Nov 17 17:24:28 2009 by eluz'
# ================ IPv4
# ================ Table 'filter', automatic rules
$IPTABLES -P OUTPUT DROP
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
cat /proc/net/ip_tables_names | while read table; do
$IPTABLES -t $table -L -n | while read c chain rest; do
if test "X$c" = "XChain" ; then
$IPTABLES -t $table -F $chain
fi
done
$IPTABLES -t $table -X
done
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# ================ Table 'nat', rule set NAT
# NAT compiler errors and warnings:
#
#
# Rule 0 (NAT)
#
echo "Rule 0 (NAT)"
#
#
$IPTABLES -t nat -A PREROUTING -p tcp -m tcp -d 189.168.1.20
--dport 3389 -j DNAT --to-destination 10.1.1.219:3389
#
# Rule 1 (NAT)
#
echo "Rule 1 (NAT)"
#
#
$IPTABLES -t nat -A PREROUTING -p tcp -m tcp -d 189.168.1.21
--dport 3389 -j DNAT --to-destination 10.1.1.6:3389
#
# Rule 2 (NAT)
#
echo "Rule 2 (NAT)"
#
#
$IPTABLES -t nat -A PREROUTING -p tcp -m tcp -d 189.168.1.22
--dport 3389 -j DNAT --to-destination 10.1.1.31:3389
#
# Rule 3 (NAT)
#
echo "Rule 3 (NAT)"
#
#
$IPTABLES -t nat -A PREROUTING -p tcp -m tcp -m multiport -d
189.168.1.21 --dports 110,143,25,465,443,80,81,993,995,587,1027 -j
DNAT --to-destination 10.1.1.15
$IPTABLES -t nat -A PREROUTING -p tcp -m tcp -m multiport -d
189.168.1.21 --dports 110,143,25,465,443,80,81,993,995,587,1027 -j
DNAT --to-destination 10.1.1.40
#
# Rule 4 (NAT)
#
echo "Rule 4 (NAT)"
#
#
$IPTABLES -t nat -A PREROUTING -s 10.1.1.219 -j DNAT
--to-destination 189.168.1.20
#
# Rule 5 (NAT)
#
echo "Rule 5 (NAT)"
#
#
$IPTABLES -t nat -A PREROUTING -s 10.1.1.6 -j DNAT --to-destination
189.168.1.21
#
# Rule 6 (NAT)
#
echo "Rule 6 (NAT)"
#
#
$IPTABLES -t nat -A PREROUTING -s 10.1.1.31 -j DNAT
--to-destination 189.168.1.22
#
# Rule 7 (NAT)
#
echo "Rule 7 (NAT)"
#
#
$IPTABLES -t nat -A PREROUTING -p tcp -m tcp -m multiport -s
10.1.1.15 --dports 110,143,25,465,443,80,81,993,995,587,1027 -j DNAT
--to-destination 189.168.1.21
$IPTABLES -t nat -A PREROUTING -p tcp -m tcp -m multiport -s
10.1.1.40 --dports 110,143,25,465,443,80,81,993,995,587,1027 -j DNAT
--to-destination 189.168.1.21
#
# Rule 8 (NAT)
#
echo "Rule 8 (NAT)"
#
#
$IPTABLES -t nat -A POSTROUTING -o eth2 -s 10.1.1.0/24 -j SNAT
--to-source 192.168.1.3
#
# Rule 9 (NAT)
#
echo "Rule 9 (NAT)"
#
#
$IPTABLES -t nat -A POSTROUTING -s 10.1.1.0/24 -j ACCEPT
$IPTABLES -t nat -A PREROUTING -s 10.1.1.0/24 -j ACCEPT
# ================ Table 'filter', rule set Policy
# Policy compiler errors and warnings:
#
#
# Rule 0 (lo)
#
echo "Rule 0 (lo)"
#
#
#
$IPTABLES -N In_RULE_0
$IPTABLES -A INPUT -i lo -m state --state NEW -j In_RULE_0
$IPTABLES -A In_RULE_0 -j LOG --log-level info --log-prefix "RULE 0
-- ACCEPT "
$IPTABLES -A In_RULE_0 -j ACCEPT
$IPTABLES -N Out_RULE_0
$IPTABLES -A OUTPUT -o lo -m state --state NEW -j Out_RULE_0
$IPTABLES -A Out_RULE_0 -j LOG --log-level info --log-prefix "RULE 0
-- ACCEPT "
$IPTABLES -A Out_RULE_0 -j ACCEPT
#
# Rule 1 (global)
#
echo "Rule 1 (global)"
#
#
#
$IPTABLES -N Cid5870X3184.0
$IPTABLES -A INPUT -s 189.168.1.20 -m state --state NEW -j Cid5870X3184.0
$IPTABLES -A INPUT -s 189.168.1.21 -m state --state NEW -j Cid5870X3184.0
$IPTABLES -A INPUT -s 189.168.1.22 -m state --state NEW -j Cid5870X3184.0
$IPTABLES -A INPUT -s 10.1.1.5 -m state --state NEW -j Cid5870X3184.0
$IPTABLES -A INPUT -s 192.168.1.3 -m state --state NEW -j Cid5870X3184.0
$IPTABLES -N RULE_1
$IPTABLES -A Cid5870X3184.0 -p icmp -m icmp --icmp-type 0/0 -j RULE_1
$IPTABLES -A Cid5870X3184.0 -p icmp -m icmp --icmp-type 8/0 -j RULE_1
$IPTABLES -A Cid5870X3184.0 -p tcp -m tcp -m multiport --dports
53,1720,80,443 -j RULE_1
$IPTABLES -A Cid5870X3184.0 -p udp -m udp --dport 53 -j RULE_1
$IPTABLES -A OUTPUT -p icmp -m icmp --icmp-type 0/0 -m state
--state NEW -j RULE_1
$IPTABLES -A OUTPUT -p icmp -m icmp --icmp-type 8/0 -m state
--state NEW -j RULE_1
$IPTABLES -A OUTPUT -p tcp -m tcp -m multiport --dports
53,1720,80,443 -m state --state NEW -j RULE_1
$IPTABLES -A OUTPUT -p udp -m udp --dport 53 -m state --state NEW -j RULE_1
$IPTABLES -A RULE_1 -j LOG --log-level info --log-prefix "RULE 1 -- ACCEPT "
$IPTABLES -A RULE_1 -j ACCEPT
#
# Rule 2 (global)
#
echo "Rule 2 (global)"
#
#
#
$IPTABLES -N Cid5882X3184.0
$IPTABLES -A INPUT -p tcp -m tcp -m multiport --dports 22,2204 -m
state --state NEW -j Cid5882X3184.0
$IPTABLES -N RULE_2
$IPTABLES -A Cid5882X3184.0 -s 10.1.1.0/24 -j RULE_2
$IPTABLES -A Cid5882X3184.0 -s 192.168.1.0/24 -j RULE_2
$IPTABLES -A RULE_2 -j LOG --log-level info --log-prefix "RULE 2 -- ACCEPT "
$IPTABLES -A RULE_2 -j ACCEPT
#
# Rule 3 (global)
#
echo "Rule 3 (global)"
#
#
#
$IPTABLES -N RULE_3
$IPTABLES -A OUTPUT -d 10.1.1.0/24 -m state --state NEW -j RULE_3
$IPTABLES -A RULE_3 -j LOG --log-level info --log-prefix "RULE 3 -- ACCEPT "
$IPTABLES -A RULE_3 -j ACCEPT
#
# Rule 4 (global)
#
echo "Rule 4 (global)"
#
#
#
$IPTABLES -N Cid5906X3184.0
$IPTABLES -A OUTPUT -p tcp -m tcp -m multiport --dports
80,443,143,25,81,53,110,465,587,995,1027 -m state --state NEW -j
Cid5906X3184.0
$IPTABLES -A OUTPUT -p udp -m udp --dport 53 -m state --state NEW
-j Cid5906X3184.0
$IPTABLES -N RULE_4
$IPTABLES -A Cid5906X3184.0 -d 10.1.1.15 -j RULE_4
$IPTABLES -A Cid5906X3184.0 -d 10.1.1.40 -j RULE_4
$IPTABLES -N Cid5906X3184.1
$IPTABLES -A FORWARD -p tcp -m tcp -m multiport --dports
80,443,143,25,81,53,110,465,587,995,1027 -m state --state NEW -j
Cid5906X3184.1
$IPTABLES -A FORWARD -p udp -m udp --dport 53 -m state --state NEW
-j Cid5906X3184.1
$IPTABLES -A Cid5906X3184.1 -d 10.1.1.15 -j RULE_4
$IPTABLES -A Cid5906X3184.1 -d 10.1.1.40 -j RULE_4
$IPTABLES -A RULE_4 -j LOG --log-level info --log-prefix "RULE 4 -- ACCEPT "
$IPTABLES -A RULE_4 -j ACCEPT
#
# Rule 5 (global)
#
echo "Rule 5 (global)"
#
#
#
$IPTABLES -N Cid5918X3184.0
$IPTABLES -A OUTPUT -p tcp -m tcp --dport 3389 -m state --state NEW
-j Cid5918X3184.0
$IPTABLES -N RULE_5
$IPTABLES -A Cid5918X3184.0 -d 10.1.1.219 -j RULE_5
$IPTABLES -A Cid5918X3184.0 -d 10.1.1.31 -j RULE_5
$IPTABLES -A Cid5918X3184.0 -d 10.1.1.6 -j RULE_5
$IPTABLES -N Cid5918X3184.1
$IPTABLES -A FORWARD -p tcp -m tcp --dport 3389 -m state --state NEW
-j Cid5918X3184.1
$IPTABLES -A Cid5918X3184.1 -d 10.1.1.219 -j RULE_5
$IPTABLES -A Cid5918X3184.1 -d 10.1.1.31 -j RULE_5
$IPTABLES -A Cid5918X3184.1 -d 10.1.1.6 -j RULE_5
$IPTABLES -A RULE_5 -j LOG --log-level info --log-prefix "RULE 5 -- ACCEPT "
$IPTABLES -A RULE_5 -j ACCEPT
#
# Rule 6 (global)
#
echo "Rule 6 (global)"
#
#
#
$IPTABLES -N RULE_6
$IPTABLES -A INPUT -p udp -m udp -s 10.1.1.0/24 --dport 123 -m
state --state NEW -j RULE_6
$IPTABLES -A OUTPUT -p udp -m udp -s 10.1.1.0/24 --dport 123 -m
state --state NEW -j RULE_6
$IPTABLES -A FORWARD -p udp -m udp -s 10.1.1.0/24 --dport 123 -m
state --state NEW -j RULE_6
$IPTABLES -A RULE_6 -j LOG --log-level info --log-prefix "RULE 6 -- ACCEPT "
$IPTABLES -A RULE_6 -j ACCEPT
#
# Rule 7 (global)
#
echo "Rule 7 (global)"
#
#
#
$IPTABLES -N RULE_7
$IPTABLES -A INPUT -s 10.1.1.15 -m state --state NEW -j RULE_7
$IPTABLES -A INPUT -s 10.1.1.40 -m state --state NEW -j RULE_7
$IPTABLES -A INPUT -s 10.1.1.219 -m state --state NEW -j RULE_7
$IPTABLES -A INPUT -s 10.1.1.6 -m state --state NEW -j RULE_7
$IPTABLES -A INPUT -s 10.1.1.31 -m state --state NEW -j RULE_7
$IPTABLES -A FORWARD -s 10.1.1.15 -m state --state NEW -j RULE_7
$IPTABLES -A FORWARD -s 10.1.1.40 -m state --state NEW -j RULE_7
$IPTABLES -A FORWARD -s 10.1.1.219 -m state --state NEW -j RULE_7
$IPTABLES -A FORWARD -s 10.1.1.6 -m state --state NEW -j RULE_7
$IPTABLES -A FORWARD -s 10.1.1.31 -m state --state NEW -j RULE_7
$IPTABLES -A RULE_7 -j LOG --log-level info --log-prefix "RULE 7 -- ACCEPT "
$IPTABLES -A RULE_7 -j ACCEPT
#
# Rule 8 (global)
#
echo "Rule 8 (global)"
#
#
#
$IPTABLES -N RULE_8
$IPTABLES -A INPUT -s 10.1.1.0/24 -m state --state NEW -j RULE_8
$IPTABLES -A OUTPUT -s 10.1.1.0/24 -m state --state NEW -j RULE_8
$IPTABLES -A FORWARD -s 10.1.1.0/24 -m state --state NEW -j RULE_8
$IPTABLES -A RULE_8 -j LOG --log-level info --log-prefix "RULE 8 -- ACCEPT "
$IPTABLES -A RULE_8 -j ACCEPT
#
# Rule 9 (global)
#
echo "Rule 9 (global)"
#
#
#
$IPTABLES -N RULE_9
$IPTABLES -A OUTPUT -j RULE_9
$IPTABLES -A INPUT -j RULE_9
$IPTABLES -A FORWARD -j RULE_9
$IPTABLES -A RULE_9 -j LOG --log-level alert --log-prefix "bloqueado_"
$IPTABLES -A RULE_9 -j DROP
epilog_commands
echo 1 > /proc/sys/net/ipv4/ip_forward
2009/10/27 Ygor Bittencourt <[email protected]>
>
> Em Seg 26 de Outubro Everson Vargas da Luz escreveu:
>
> >Boa tarde pessoal, tenho a seguinte situação, tenho um servidor de
> >firewall que tem 3 placas de rede, uma interna ip fixo (placa1), uma
> >com ip externo fixo(placa2) e outra com ip externo dinâmico (placa3) ,
> >no momento estou utilizando link fixo da placa 2 para acessar
> >internet, mas como se trata de um ip fixo quero usar ele de forma
> >dedicada até mesmo porque tenho alguns serviço rodando nesse ip, e
> >usar o placa3 para download e tudo mais, pergunto, como posso fazer
> >com que as rotas funcionem corretamente, tipo que os meus serviços que
> >utilizem ip fixo usem a placa2 e o acesso a internet geral vá para
> >placa3?
>
> Olá Lista, olá Everton,
>
> Tem alguns detalhes que você não passou mas que são importantes. Ex: usa
> algum tipo de proxy p/ navegação dos cliente internos? Se você usar fica mais
> fácil fazer a divisão e mais fácil ainda se o seu gateway principal suportar
> o próprio proxy, um proxy como o squid pode configurar qual a interface
> padrão de uso para a saida de internet. De qualquer forma de uma olhada mais
> a fundo no iptables e vá até marcação de pacotes que por sinal é uma coisa
> muito comentada aqui na lista e sugerida como solução para a maioria dos
> problemas dessa natureza. Na verdade p/ uma resposta mais precisa precisaria
> saber sobre o desenho da sua rede: Usa proxy no gateway ou em outra maquina?
> tem dmz? o proxy esta na dmz? Poste o ifconfig do fw, o arquivo de firewall e
> a arquitetura da rede que fica mais fácil de gerar a regra.
>
> Um conjunto de regras bem elaboradas de POSTROUTING e PREROUTING podem
> resolver seu problema fácil.
>
> Se precisar de ajuda na elaboração entre em contato.
>
> Saudação a todos,
>
> ---------------------------------
> Ygor Bittencourt
> LPIC-3 Core
> LPIC-3 Specialty Mixed Enviroment
> LPIC-3 Specialty Security
> LPI ID: LPI000154119
> www.extremusconectividades.com.br
> ---------------------------------
>
> "A glória não está em saber as respostas para todas as perguntas, mas em
> entender as perguntas corretamente."
>
>
> ---------------------------------------------------------------------------
> Esta lista é patrocinada pela Conectiva S.A. Visite
> http://www.conectiva.com.br
>
> Arquivo: http://bazar2.conectiva.com.br/mailman/listinfo/linux-br
> Regras de utilização da lista: http://linux-br.conectiva.com.br
> FAQ: http://www.zago.eti.br/menu.html
---------------------------------------------------------------------------
Esta lista é patrocinada pela Conectiva S.A. Visite http://www.conectiva.com.br
Arquivo: http://bazar2.conectiva.com.br/mailman/listinfo/linux-br
Regras de utilização da lista: http://linux-br.conectiva.com.br
FAQ: http://www.zago.eti.br/menu.html