Re: Como evitar que os micros da rede se enxerguem?
Luciano, preciso sim da sua ajuda e obrigado pela sua disposição e paciência em ajudar.
É o seguinte, desculpeme pelo pequenino conhecimento que tenho, mas estou com disposição para aprender e você tem contribuido para isto.
Bom, eu só conheço topologia de rede, não de IP, mas acho que é isto que você está perguntando:
eu uso ip 10.1.2.0/24 para a placa eth0 interna e 192.162.2.1 para eth1 externa.
Abaixo segue o firewall, desculpa pela minha amolação, mas vou aprender e ensiar outros.
#!/bin/sh
# Firewall Simples / Compartilhamento
echo
echo "=========================================="
echo "| :: CONFIGURANDO O FIREWALL :: |"
echo "=========================================="
echo
# Variáveis
# -------------------------------------------------------
IF_EXTERNA=eth0
IF_INTERNA=eth1
# Carrega os módulos
# -------------------------------------------------------
modprobe ip_tables
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ipt_limit
modprobe ipt_LOG
modprobe ipt_REJECT
# Ativa roteamento no kernel
# -------------------------------------------------------
echo "1" > /proc/sys/net/ipv4/ip_forward
# Proteção contra IP spoofing
# -------------------------------------------------------
echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
# Zera Regra
# -------------------------------------------------------
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
# Determina a política padrão
# -------------------------------------------------------
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
#################################################
# Tabela NAT
#################################################
# Ativa mascaramento de saída
# -------------------------------------------------------
iptables -A POSTROUTING -t nat -o $IF_EXTERNA -j MASQUERADE
# Proxy transparente
# -------------------------------------------------------
iptables -t nat -A PREROUTING -i $IF_INTERNA -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -i $IF_INTERNA -p tcp --dport 8080 -j REDIRECT --to-port 3128
# Redireciona portas para outros servidores
# -------------------------------------------------------
#iptables -t nat -A PREROUTING -d
200.217.72.216 -p tcp --dport 22 -j DNAT --to-destination 201.79.200.26
# Redireciona portas na própria máquina
# -------------------------------------------------------
#iptables -A PREROUTING -t nat -d 10.1.2.254 -p tcp --dport 5922 -j REDIRECT --to-ports 22
#iptables -t nat -A PREROUTING -p tcp -s 200.165.132.154
--dport 22 -i ppp0 -j DNAT --to 201.79.200.26:22
##acrescido agora 29/08/2006
#iptables -P FORWARD DROP
iptables -A INPUT -i eth0 -j ACCEPT
iptables -A OUTPUT -o eth0 -j ACCEPT
iptables -A FORWARD -s 10.1.2.0/24 -d 0/0 -j ACCEPT
iptables -A FORWARD -s 0/0 -d 10.1.2.0/24 -mstate --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -s
10.1.2.0/24 -d 0/0 -j MASQUERADE
# Para rede local receber e-mail
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
# Para nao fugirem do proxy
#iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to 3128
# Abre algumas portas (ssh e http)
#iptables -t nat -A PREROUTING -p tcp -s 0/0 --dport 22 -i eth1 -j DNAT --to 201.79.200.26:22
#iptables -A INPUT -p tcp --destination-port 22 -j ACCEPT
#iptables -A INPUT -p tcp --destination-port 80 -j ACCEPT
# Abre para a rede local
iptables -A INPUT -p tcp --syn -s 10.1.2.0/24 -j ACCEPT
# Proteções diversas contra portscanners, ping of death, ataques DoS, etc.
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD --protocol tcp --tcp-flags ALL SYN,ACK -j DROP
iptables -A FORWARD -m unclean -j DROP
# Fecha o resto
iptables -A INPUT -p tcp --syn -j DROP
# Se você quiser que o PC também não responda a pings, adicione a linha:
#echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all
#################################################
# Tabela FILTER
#################################################
# -------------------------------------------------------
# Dropa pacotes TCP indesejáveis
# -------------------------------------------------------
#iptables -A FORWARD -p tcp -m ! --syn -m state --state NEW -j LOG --log-level 6 --log-prefix
#iptables -A FORWARD -p tcp -m ! --syn -m state --state NEW -j DROP
# Dropa pacotes mal formados
# -------------------------------------------------------
#iptables -A INPUT -i $IF_EXTERNA -m unclean -j LOG --log-level 6 --log-prefix
#iptables -A INPUT -i $IF_EXTERNA -m unclean -j DROP
# Aceita os pacotes que realmente devem entrar
# -------------------------------------------------------
iptables -A INPUT -i ! $IF_EXTERNA -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT
# Proteção contra trinoo
# -------------------------------------------------------
iptables -N TRINOO
iptables -A TRINOO -m limit --limit 15/m -j LOG --log-level 6 --log-prefix "FIREWALL: trinoo: "
iptables -A TRINOO -j DROP
iptables -A INPUT -p TCP -i $IF_EXTERNA --dport 27444 -j TRINOO
iptables -A INPUT -p TCP -i $IF_EXTERNA --dport 27665 -j TRINOO
iptables -A INPUT -p TCP -i $IF_EXTERNA --dport 31335 -j TRINOO
iptables -A INPUT -p TCP -i $IF_EXTERNA --dport 34555 -j TRINOO
iptables -A INPUT -p TCP -i $IF_EXTERNA --dport 35555 -j TRINOO
# Proteção contra tronjans
# -------------------------------------------------------
iptables -N TROJAN
iptables -A TROJAN -m limit --limit 15/m -j LOG --log-level 6 --log-prefix "FIREWALL: trojan: "
iptables -A TROJAN -j DROP
iptables -A INPUT -p TCP -i $IF_EXTERNA --dport 666 -j TROJAN
iptables -A INPUT -p TCP -i $IF_EXTERNA --dport 666 -j TROJAN
iptables -A INPUT -p TCP -i $IF_EXTERNA --dport 4000 -j TROJAN
iptables -A INPUT -p TCP -i $IF_EXTERNA --dport 6000 -j TROJAN
iptables -A INPUT -p TCP -i $IF_EXTERNA --dport 6006 -j TROJAN
iptables -A INPUT -p TCP -i $IF_EXTERNA --dport 16660 -j TROJAN
# Proteção contra worms
# -------------------------------------------------------
iptables -A FORWARD -p tcp --dport 135 -i $IF_INTERNA -j REJECT
# Proteção contra syn-flood
# -------------------------------------------------------
iptables -A FORWARD -p tcp --syn -m limit --limit 2/s -j ACCEPT
# Proteção contra ping da morte
# -------------------------------------------------------
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
# Proteção contra port scanners
# -------------------------------------------------------
iptables -N SCANNER
iptables -A SCANNER -m limit --limit 15/m -j LOG --log-level 6 --log-prefix "FIREWALL: port scanner: "
iptables -A SCANNER -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -i $IF_EXTERNA -j SCANNER
iptables -A INPUT -p tcp --tcp-flags ALL NONE -i $IF_EXTERNA -j SCANNER
iptables -A INPUT -p tcp --tcp-flags ALL ALL -i $IF_EXTERNA -j SCANNER
iptables -A INPUT -p tcp --tcp-flags ALL FIN,SYN -i $IF_EXTERNA -j SCANNER
iptables -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -i $IF_EXTERNA -j SCANNER
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -i $IF_EXTERNA -j SCANNER
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -i $IF_EXTERNA -j SCANNER
# Loga tentativa de acesso a determinadas portas
# -------------------------------------------------------
iptables -A INPUT -p tcp --dport 21 -i $IF_EXTERNA -j LOG --log-level 6 --log-prefix "FIREWALL: ftp: "
iptables -A INPUT -p tcp --dport 23 -i $IF_EXTERNA -j LOG --log-level 6 --log-prefix "FIREWALL: telnet: "
iptables -A INPUT -p tcp --dport 25 -i $IF_EXTERNA -j LOG --log-level 6 --log-prefix "FIREWALL: smtp: "
iptables -A INPUT -p tcp --dport 80 -i $IF_EXTERNA -j LOG --log-level 6 --log-prefix "FIREWALL: http: "
iptables -A INPUT -p tcp --dport 110 -i $IF_EXTERNA -j LOG --log-level 6 --log-prefix "FIREWALL: pop3: "
iptables -A INPUT -p udp --dport 111 -i $IF_EXTERNA -j LOG --log-level 6 --log-prefix "FIREWALL: rpc: "
iptables -A INPUT -p tcp --dport 113 -i $IF_EXTERNA -j LOG --log-level 6 --log-prefix "FIREWALL: identd: "
iptables -A INPUT -p tcp --dport 137:139 -i $IF_EXTERNA -j LOG --log-level 6 --log-prefix "FIREWALL: samba: "
iptables -A INPUT -p udp --dport 137:139 -i $IF_EXTERNA -j LOG --log-level 6 --log-prefix "FIREWALL: samba: "
iptables -A INPUT -p tcp --dport 161:162 -i $IF_EXTERNA -j LOG --log-level 6 --log-prefix "FIREWALL: snmp: "
iptables -A INPUT -p tcp --dport 6667:6668 -i $IF_EXTERNA -j LOG --log-level 6 --log-prefix "FIREWALL: irc: "
iptables -A INPUT -p tcp --dport 3128 -i $IF_EXTERNA -j LOG --log-level 6 --log-prefix "FIREWALL: squid: "
# Libera acesso externo a determinadas portas
# -------------------------------------------------------
#iptables -A INPUT -p tcp --dport 22 -i $IF_EXTERNA -j ACCEPT
# Libera acesso de smtp para fora apenas para o IP XXX.XXX.XXX.XXX
# -------------------------------------------------------
#iptables -A FORWARD -p tcp -d !
XXX.XXX.XXX.XXX --dport 25 -j LOG --log-level 6 --log-prefix "FIREWALL: SMTP proibido: "
#iptables -A FORWARD -p tcp -d ! XXX.XXX.XXX.XXX --dport 25 -j REJECT
# Controle por MAC, drop nega e accept aceita.
iptables -t nat -A PREROUTING -i $IF_INTERNA -m mac --mac-source 00:08:A1:8A:E3:FB -j DROP
#Dropa portas 137, 138 e 139
# iptables -I FORWARD -s 10.1.2.0/24 -p tcp --dport 137 -j DROP
# iptables -I FORWARD -s 10.1.2.0/24 -p udp --dport 137 -j DROP
# iptables -I FORWARD -s 10.1.2.0/24 -p tcp --dport 138 -j DROP
# iptables -I FORWARD -s
10.1.2.0/24 -p udp --dport 138 -j DROP
# iptables -I FORWARD -s 10.1.2.0/24 -p tcp --dport 139 -j DROP
# iptables -I FORWARD -s
10.1.2.0/24 -p udp --dport 139 -j DROP
# iptables -I FORWARD -s 10.1.2.0/24 -p tcp --dport 445 -j DROP
# iptables -I FORWARD -s 10.1.2.0/24 -p udp --dport 445 -j DROP
# Bloqueia portas 137, 138 e 139
# -------------------------------------------------------
#iptables -I FORWARD -s 10.1.2.0/24 -p tcp --dport 137:139 -j REJECT
#iptables -I FORWARD -s
10.1.2.0/24 -p udp --dport 137:139 -j REJECT
# Bloqueia acesso netbios de fora e da rede interna para fora
# -------------------------------------------------------
iptables -A INPUT -p tcp --sport 137:139 -i ppp+ -j DROP
iptables -A INPUT -p udp --sport 137:139 -i ppp+ -j DROP
iptables -A FORWARD -p tcp --sport 137:139 -o ppp+ -j DROP
iptables -A FORWARD -p udp --sport 137:139 -o ppp+ -j DROP
iptables -A OUTPUT -p tcp --sport 137:139 -o ppp+ -j DROP
iptables -A OUTPUT -p udp --sport 137:139 -o ppp+ -j DROP
echo
echo "=========================================="
echo "TERMINADO! Firewall: OK! ...........[ OK ]"
echo "=========================================="
echo
Re: Como evitar que os micros da rede se enxerguem?
cara..
é assim, vc nao precisava me passar seu firewall por enqto...
pra vc poder bloquear os clientes vc primeiro precisa entender como funciona o endereçamento IP e suas respectivas máscaras
pelo q eu entendi a faixa 10.1.2.0/24 é destinada a seus clientes, então vamos analisar
esta faixa está com máscara de 24 bits (255.255.255.0) habilita 254 micros, ou seja, uma rede.
pense como se vc estivesse usando um HUB
se vc tiver 20 micros na rede, do ip 10.1.2.10/24 ao 10.1.2.29/24 todos vão se enxergar.
se vc usar mascara de 25 bits (255.255.255.128) vc terá duas redes, uma de 10.1.2.0 a 10.1.2.128 e outra de 10.1.2.129 a 10.1.2.254, se vc tiver dois micros, um em cada rede, os dois não vão se enxergar
mascara de 26 bits (255.255.255.192), vc terá 4 redes, e da mesma forma, se vc tiver 4 clientes, um em cada rede, nenhum deles se enxergará...
e assim vai...
pra vc bloquear o FORWARD entre os clientes vc tem várias opções, mas as mais usadas são:
1 - criar interfaces virtuais, uma para cada cliente, e colocar faixa de ip com mascara de 30 bits (ou 31, não lembro agora), cada cliente estará em uma rede diferete e faixa diferente, desta forma eles somente se enxergam se for permitido no firewall.
2 - atribuir mascara de 32 bits aos clientes, desta forma não existe rede, então só se enxergam com permissão no firewall.
segue uma tabela de máscaras de sub-rede:
Citação:
__________________________________________________________________________
|Potência - Hexa - Bits - Final da mascara - Qtde de redes|
---------------------------------------------------------------------------
| 2^0 = 1 = 32 = 255 - 0 |
---------------------------------------------------------------------------
| 2^1 = 2 = 31 = 254 - 128 |
---------------------------------------------------------------------------
| 2^2 = 4 = 30 = 252 - 64 |
---------------------------------------------------------------------------
| 2^3 = 8 = 29 = 248 - 32 |
---------------------------------------------------------------------------
| 2^4 = 16 = 28 = 240 - 16 |
---------------------------------------------------------------------------
| 2^5 = 32 = 27 = 224 - 8 |
---------------------------------------------------------------------------
| 2^6 = 64 = 26 = 192 - 4 |
---------------------------------------------------------------------------
| 2^7 = 128 = 25 = 128 - 2 |
---------------------------------------------------------------------------
| 2^8 = 256 = 24 = 0 - 1 |
---------------------------------------------------------------------------
entendeu???
se não entendeu, pergunte!!
valeu
Re: Como evitar que os micros da rede se enxerguem?
vc pode procurar ne net material sobre mascara de sub-rede, é bom e interessante vc aprender sobre o assunto.,..
pra facilitar a criação de máscara pra quem não tem costume, encontrei isso na net
http://paginas.terra.com.br/informat...es/netcalc.htm
valeu
Re: Como evitar que os micros da rede se enxerguem?
Bom dia Luciano, as coisas estão clareando...
Eu entendi o que você quiz dizer com:
"se vc usar mascara de 25 bits (255.255.255.128) vc terá duas redes, uma de 10.1.2.0 a 10.1.2.128 e outra de 10.1.2.129 a 10.1.2.254, se vc tiver dois micros, um em cada rede, os dois não vão se enxergar
mascara de 26 bits (255.255.255.192), vc terá 4 redes, e da mesma forma, se vc tiver 4 clientes, um em cada rede, nenhum deles se enxergará..."
Eu só não sei como implementar no sistema a sugestão que você me deu.
Eu imagino o Ap como um HUB, e as máquinas ligadas a ele com 10.1.2.0/24, ou seja com a máscara 255.255.255.0, se no cliente eu mudar a máscara ele nâo navega, pois vai ficar fora da rede, não é isso? Então, como transformar minha rede, em duas redes (ou seja com máscaras diferentes), mas que naveguem?
Re: Como evitar que os micros da rede se enxerguem?
pra vc poder ter mais de uma rede no seu sistema vc tem várias opções, pode implementar "VLANS" ou simplesmente pode usar máscara de 32 bits, q seriam atribuídas por DHCP...
vc usando máscara de 32 bits, não existirá rede para o cliente, então o mesmo só consegue enxergar outras máquinas se houver regra no firewall para isso...