Impedir que micros se acessem, mas que usem DHCP e internet de um servidor

1. Impedir que micros se acessem, mas que usem DHCP e internet de um servidor

Isomi Luiz da Silva
clicsis

(usa Debian)

Enviado em 28/08/2007 - 15:42h

Boa tarde.
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/62078-bloqueio-de-redes-prolemas-de-acesso.html

...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.


  


2. Consegui!!!!

Isomi Luiz da Silva
clicsis

(usa Debian)

Enviado em 31/08/2007 - 16:04h

Amigos. Muito obrigado a todos, consegui resolver o problema com redes Alias e DHCP fornecendo IP fixo com faixar de IP diferentes,

Exemplo:
eth1 -> Rede do DHCP (física)
eth1:0 -> Rede estação 01 (Lógica) 10.0.2.1/24
eth1:1 -> Rede estação 02 (Lógica) 10.0.3.1/24
eth1:2 -> Rede estação 03 (Lógica) 10.0.4.1/24

Muito obrigado mesmo, tem até um amigo em especial que fez questão de me auxiliar com parte do script o qual agradeço em especial.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts