clicsis
(usa Debian)
Enviado em 29/08/2007 - 05:09h
Bom dia.
Gostaria de saber se um dos amigos poderiam me auxiliar em mais essa dúvida.
Tenho uma rede cabeada "RJ45" onde nessa rede um servidor Linux com o ambiente Debian recebe a internet pela eth0 e fornece ao restante da rede via eth1, usando o serviço de proxy transparente e fornecendo os IPs via DHCP, com base no MAC de cada micro.
Estrutura do arquivos DHCP:
================================
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
authoritative;
INTERFACES=eth1;
subnet 10.0.0.0 netmask 255.0.0.0 {
range 10.0.0.2 10.0.0.10;
option routers 10.0.0.1;
option domain-name-servers 10.0.0.1;
option broadcast-address 10.0.0.255;
host 'nomedomicro'{
hardware ethernet 00-00-00-00-00-00;
fixed-address 10.0.0.2;
}
================================
Estrutura do Firewall
================================
#! /bin/bash
# Interface da rede
LAN0_IFACE=eth1
# Interfaces da Internet
NET0_IFACE=eth0
# Caminhos programas e configurações
IPT=/sbin/iptables
IPR=/sbin/ip
# Ativa modulos
modprobe ip_tables
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_nat_ftp
modprobe ipt_REJECT
modprobe ipt_MASQUERADE
# Limpa regras
$IPT -F
$IPT -X
$IPT -F -t nat
$IPT -X -t nat
$IPT -F -t filter
$IPT -X -t filter
# Determina a política padrão "negar tudo"
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
# Bloqueando e logando sinais de ping ao firewall
$IPT -N LPI
$IPT -A LPI -m limit --limit 5/hour --limit-burst 3 -p icmp --icmp-type echo-request -j LOG --log-level info --log-prefix "LOG-FIREWALL ping: "
$IPT -A LPI -j REJECT --reject-with icmp-port-unreachable
$IPT -A INPUT -p icmp --icmp-type echo-request -j LPI
# Dropa pacotes TCP indesejaveis
$IPT -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP
# Dropa pacotes mal formados
$IPT -A INPUT -i $LAN0_IFACE -m unclean -j DROP
# Aceita os pacotes que realmente devem entrar
$IPT -A INPUT -i ! $LAN0_IFACE -j ACCEPT
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A OUTPUT -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT
$IPT -A FORWARD -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT
# Controle de acesso IP X MAC
$IPT -t filter -A FORWARD -d 0/0 -s 10.0.0.2 -m mac --mac-source $MACSOURCE -j ACCEPT
$IPT -t filter -A FORWARD -d 10.0.0.2 -s 0/0 -j ACCEPT
$IPT -t filter -A INPUT -s 10.0.0.2 -d 0/0 -m mac --mac-source $MACSOURCE -j ACCEPT
$IPT -t nat -A POSTROUTING -s 10.0.0.2 -o $NET0_IFACE -j MASQUERADE
$IPT -t filter -A FORWARD -d 0/0 -s 10.0.0.3 -m mac --mac-source $MACSOURCE -j ACCEPT
$IPT -t filter -A FORWARD -d 10.0.0.3 -s 0/0 -j ACCEPT
$IPT -t filter -A INPUT -s 10.0.0.3 -d 0/0 -m mac --mac-source $MACSOURCE -j ACCEPT
$IPT -t nat -A POSTROUTING -s 10.0.0.3 -o $NET0_IFACE -j MASQUERADE
#Compartilha a conexão
echo 1 > /proc/sys/net/ipv4/ip_forward
# Habilitando a protecao contra "TCP SYN Cookie"
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
# Ocultando a rota dos pacotes
for f in /proc/sys/net/ipv4/conf/*/accept_source_route; do echo 0 > $f
done
# Evita ataque de spoof 1 e 0 para balancear
for f in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo 0 > $f
done
# Evita problema de resposta tamanho zero
echo "0" > /proc/sys/net/ipv4/tcp_ecn
# Solucionando problema da caixa
$IPT -A FORWARD -d 200.201.174.0/24 -j ACCEPT
# Habilita Proxy Transparent
$IPT -t nat -A PREROUTING -i $LAN0_IFACE -p tcp -d ! 200.201.174.0/24 --dport 80 -j REDIRECT --to-port 3128
# Protecao contra trinoo
$IPT -N TRINOO
$IPT -A TRINOO -j DROP
$IPT -A INPUT -p TCP -i $LAN0_IFACE --dport 27444 -j TRINOO
$IPT -A INPUT -p TCP -i $LAN0_IFACE --dport 27665 -j TRINOO
$IPT -A INPUT -p TCP -i $LAN0_IFACE --dport 31335 -j TRINOO
$IPT -A INPUT -p TCP -i $LAN0_IFACE --dport 34555 -j TRINOO
$IPT -A INPUT -p TCP -i $LAN0_IFACE --dport 35555 -j TRINOO
# Protecao contra tronjans
$IPT -N TROJAN
$IPT -A TROJAN -m limit --limit 15/m -j LOG --log-level 6 --log-prefix "FIREWALL: trojan: "
$IPT -A TROJAN -j DROP
$IPT -A INPUT -p TCP -i $LAN0_IFACE --dport 666 -j TROJAN
$IPT -A INPUT -p TCP -i $LAN0_IFACE --dport 666 -j TROJAN
$IPT -A INPUT -p TCP -i $LAN0_IFACE --dport 4000 -j TROJAN
$IPT -A INPUT -p TCP -i $LAN0_IFACE --dport 6000 -j TROJAN
$IPT -A INPUT -p TCP -i $LAN0_IFACE --dport 6006 -j TROJAN
$IPT -A INPUT -p TCP -i $LAN0_IFACE --dport 16660 -j TROJAN
# Liberando algumas portas...
$IPT -A INPUT -p tcp --dport 22 -i $LAN0_IFACE -j ACCEPT
$IPT -A INPUT -p tcp --dport 53 -i $LAN0_IFACE -j ACCEPT
$IPT -A INPUT -p udp --dport 53 -i $LAN0_IFACE -j ACCEPT
$IPT -A FORWARD -p tcp --dport 22 -i $LAN0_IFACE -j REJECT
$IPT -A FORWARD -p udp --dport 53 -i $LAN0_IFACE -j REJECT
$IPT -A FORWARD -p tcp --dport 53 -i $LAN0_IFACE -j REJECT
# Tentativa de bloquear Samba
$IPT -A INPUT -p tcp -s 0/0 --dport 137:139 -j DROP
$IPT -A INPUT -p udp -s 0/0 --dport 137:139 -j DROP
$IPT -A OUTPUT -p tcp -s 0/0 --dport 137:139 -j DROP
$IPT -A OUTPUT -p udp -s 0/0 --dport 137:139 -j DROP
$IPT -A FORWARD -p tcp -s 0/0 --dport 137:139 -j DROP
$IPT -A FORWARD -p udp -s 0/0 --dport 137:139 -j DROP
#Fecha o resto
$IPT -A INPUT -j DROP
$IPT -A FORWARD -j DROP
================================
Gostaria de saber se existe algo de errado com meu Firewall, mais especificamente na área "Controle de acesso IP X MAC" e quais a regras a acrescentar ou retirar para que os micros da rede não se acesem ou se vejam pelo "Ambiente de Rede", mas continuem usando a Internet servida pelo micro 10.0.0.1 fornecida através das configurações DHCP.
Via algo no endereço:
http://under-linux.org/forums/proxy-nat-firewall/6...
...mas que no entando, mesmo acrescentando as linhas:
====================================
iptables -t filter -A FORWARD -d 10.0.0.0/8 -s 10.0.0.0/8 -j DROP
iptables -A FORWARD -p tcp -d 0.0.0.0/0 --sport 135:139 -j DROP
iptables -A FORWARD -p tcp -d 0.0.0.0/0 --sport 445 -j DROP
iptables -A FORWARD -p udp -d 0.0.0.0/0 --sport 135:139 -j DROP
iptables -A FORWARD -p udp -d 0.0.0.0/0 --sport 445 -j DROP
iptables -A INPUT -p tcp -d 0.0.0.0/0 --sport 135:139 -j DROP
iptables -A INPUT -p tcp -d 0.0.0.0/0 --sport 445 -j DROP
iptables -A INPUT -p udp -d 0.0.0.0/0 --sport 135:139 -j DROP
iptables -A INPUT -p udp -d 0.0.0.0/0 --sport 445 -j DROP
iptables -A OUTPUT -p tcp -d 0.0.0.0/0 --sport 135:139 -j DROP
iptables -A OUTPUT -p tcp -d 0.0.0.0/0 --sport 445 -j DROP
iptables -A OUTPUT -p udp -d 0.0.0.0/0 --sport 135:139 -j DROP
iptables -A OUTPUT -p udp -d 0.0.0.0/0 --sport 445 -j DROP
iptables -A INPUT -p tcp -d 0.0.0.0/0 --dport 135:139 -j DROP
iptables -A INPUT -p tcp -d 0.0.0.0/0 --dport 445 -j DROP
iptables -A INPUT -p udp -d 0.0.0.0/0 --dport 135:139 -j DROP
iptables -A INPUT -p udp -d 0.0.0.0/0 --dport 445 -j DROP
iptables -A OUTPUT -p tcp -d 0.0.0.0/0 --dport 135:139 -j DROP
iptables -A OUTPUT -p tcp -d 0.0.0.0/0 --dport 445 -j DROP
iptables -A OUTPUT -p udp -d 0.0.0.0/0 --dport 135:139 -j DROP
iptables -A OUTPUT -p udp -d 0.0.0.0/0 --dport 445 -j DROP
====================================
Antes da escrita
=====
|<- Adicionando o código aqui
#Fecha o resto
$IPT -A INPUT -j DROP
$IPT -A FORWARD -j DROP
=====
Os usuários continuam a acessar uns aos outros.
desde já, agradeço a ajuda de todos.