Ir ao conteúdo
  • Cadastre-se

script firewall


fabinhosantos

Posts recomendados

pessoal sou iniciante em linux e preciso de um firewall, então gostaria de saber se com este script abaixo minha rede estara segura?

obs: eth0 - placa conectada com a internet

eth1 - placa conectada com a rede interna

#!/bin/bash

#Limpando as tabelas e as regras

iptables -F

iptables -t nat -F

iptables -t mangle -F

#carregando modulos

#/sbin/modprobe iptables_nat

# Iniciando Regras

#Filter

iptables -t filter -P INPUT DROP

iptables -t filter -P OUTPUT ACCEPT

iptables -t filter -P FORWARD DROP

#Nat

iptables -t nat -P PREROUTING ACCEPT

iptables -t nat -P OUTPUT ACCEPT

iptables -t nat -P POSTROUTING DROP

#Mangle

iptables -t mangle -P PREROUTING ACCEPT

iptables -t mangle -P OUTPUT ACCEPT

#Ativando forward

echo "1" > /proc/sys/net/ipv4/ip_forward

######################## Proteções #############################

#Protecao contra ataques

iptables -A INPUT -m state --state INVALID -j DROP

#Bloquear Back Orifice

iptables -A INPUT -p tcp --dport 31337 -j DROP

iptables -A INPUT -p udp --dport 31337 -j DROP

#Bloquear netbus

iptables -A INPUT -p tcp --dport 12345:12346 -j DROP

iptables -A INPUT -p udp --dport 12345:12346 -j DROP

#Bloquear ping malicioso

iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s ACCEPT

#Preteção contra Syn-floods

iptables -t filter -A syn-chain -p tcp --syn -m limit --limit 2/s -j ACCEPT

iptables -t filter -A syn-chain -j DROP

#Protecao contra ip spoofing

iptables -A INPUT -s 10.80.90.0/24 -i ! eht1 -j DROP

iptables -A INPUT ! -s 10.80.90.0/24 -i eth1 -j DROP

#Proteção contra scanners ocultos

iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST -m limit --limit 1/s -j ACCEPT

#######################Liberando ##############################

######## Tabela filter

### INPUT

#Criando chain para tratar entradas

iptables -N entrada

#liberando o loopback

iptables -A INPUT -i lo -j ACCEPT

#liberando trafego da rede interna

iptables -A INPUT -s 10.80.90.0/24 -i eth1 -j ACCEPT

iptables -A INPUT -i eth0 -j entrada

iptables -A INPUT -j LOG --log-prefix "firewall: INPUT "

iptables -A INPUT -j DROP

### FORWARD

iptables -A FORWARD -d 10.80.90.0/24 -i eth0 -o eth1 -j ACCEPT

iptables -A FORWARD -s 10.80.90.0/24 -i eth1 -o eth0 -j ACCEPT

iptables -A FORWARD -j LOG --log-prefix "firewal: FORWARD "

iptables -A FORWARD -j DROP

# ENTRADA

iptables -A entrada -p icmp -m limit --limit 2/s -j ACCEPT

iptables -A entrada -m state --state ! ESTABLISHED,RELATED -j LOG --log-prefix "FIREWALL: entrada "

iptables -A entrada -m state --state ! ESTABLISHED,RELATED -j DROP

iptables -A entrada -j ACCEPT

######### Tabela nat

# POSTROUTING

iptables -t nat -A POSTROUTING -o lo -j ACCEPT

iptables -t nat -A POSTROUTING -s 10.80.90.0/24 -o eth1 -j ACCEPT

iptables -t nat -A POSTROUTING -s 10.80.90.0/24 -o eth0 -j MASQUERADE

iptables -t nat -A POSTROUTING -o eth0 -j ACCEPT

iptables -t nat -A POSTROUTING -j LOG --log-prefix "Firewall: SNAT "

iptables -t nat -A POSTROUTING -j DROP

# PREROUTING

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

Link para o comentário
Compartilhar em outros sites

Olha eu n sou nenhum expert + recomendo que tu use um firewall "statefull" todo fechadinho e libere somente as conexões que tu precisa. depende muito de como é a topologia de sua rede e o que tu pretende liberar. ta ae o corpo do meu script, note que como exemplo só liberei o proxy para navegar na internet, e a rede navega através dele. Pode usalo tb se achar mellhor. Boa sorte. []'s

------------------------------------------------------------------------------------------------------------

#!/bin/sh

#LIMPANDO AS REGRAS

iptables -F

iptables -t nat -F

iptables -t mangle -F

iptables -X

iptables -t nat -X

iptables -t mangle -X

#FECHANDO

iptables -P INPUT DROP

iptables -P FORWARD DROP

iptables -P OUTPUT DROP

###TABELA FILTER

##CORRENTE INPUT

#REGRAS

iptables -A INPUT -i lo -s 127.0.0.0/8 -d 127.0.0.0/8 -j ACCEPT

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -m state --state INVALID -j DROP

##CORRENTE OUTPUT

#REGRAS

iptables -A OUTPUT -o lo -s 127.0.0.0/8 -d 127.0.0.0/8 -j ACCEPT

iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A OUTPUT -m state --state INVALID -j DROP

##CORRENTE FORWARD

#REGRAS

iptables -A FORWARD -i lo -o lo -s 127.0.0.0/8 -d 127.0.0.0/8 -j ACCEPT

iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A FORWARD -m state --state INVALID -j DROP

### Tabela NAT

## Lista PREROUTING

iptables -t nat -P PREROUTING ACCEPT

## Lista POSTROUTING

iptables -t nat -P POSTROUTING ACCEPT

## Lista OUTPUT

iptables -t nat -P OUTPUT ACCEPT

### Tabela Mangle

## Lista INPUT

iptables -t mangle -P INPUT ACCEPT

## Lista FORWARD

iptables -t mangle -P FORWARD ACCEPT

## Lista PREROUTING

iptables -t mangle -P PREROUTING ACCEPT

## Lista POSTROUTING

iptables -t mangle -P POSTROUTING ACCEPT

## Lista OUTPUT

iptables -t mangle -P OUTPUT ACCEPT

#REDE INTERNA (10.80.90.0/24) SE CONECTA A INTERNET ATRAVES DE UM PROXY (10.10.200.55) NO IP EXTERNO (200.21.0.1)

iptables -t nat -A POSTROUTING -s 10.10.200.55 -j SNAT --to 200.21.0.1

iptables -A FORWARD -s 10.80.90.0/24 -d 10.10.200.55 -p tcp --dport 3128 -j ACCEPT

#GATEWAY (REPASSE DE PACOTES)

echo "1" > /proc/sys/net/ipv4/ip_forward

Link para o comentário
Compartilhar em outros sites

obrigado pela ajuda

o que preciso mudar no seu script para usar proxy transparente e liberar HTTPS,FTP, OUTLOOK...

value muito a dica

Olha eu n sou nenhum expert + recomendo que tu use um firewall "statefull" todo fechadinho e libere somente as conexões que tu precisa. depende muito de como é a topologia de sua rede e o que tu pretende liberar. ta ae o corpo do meu script, note que como exemplo só liberei o proxy para navegar na internet, e a rede navega através dele. Pode usalo tb se achar mellhor. Boa sorte. []'s

------------------------------------------------------------------------------------------------------------

#!/bin/sh

#LIMPANDO AS REGRAS

iptables -F

iptables -t nat -F

iptables -t mangle -F

iptables -X

iptables -t nat -X

iptables -t mangle -X

#FECHANDO

iptables -P INPUT DROP

iptables -P FORWARD DROP

iptables -P OUTPUT DROP

###TABELA FILTER

##CORRENTE INPUT

#REGRAS

iptables -A INPUT -i lo -s 127.0.0.0/8 -d 127.0.0.0/8 -j ACCEPT

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -m state --state INVALID -j DROP

##CORRENTE OUTPUT

#REGRAS

iptables -A OUTPUT -o lo -s 127.0.0.0/8 -d 127.0.0.0/8 -j ACCEPT

iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A OUTPUT -m state --state INVALID -j DROP

##CORRENTE FORWARD

#REGRAS

iptables -A FORWARD -i lo -o lo -s 127.0.0.0/8 -d 127.0.0.0/8 -j ACCEPT

iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A FORWARD -m state --state INVALID -j DROP

### Tabela NAT

## Lista PREROUTING

iptables -t nat -P PREROUTING ACCEPT

## Lista POSTROUTING

iptables -t nat -P POSTROUTING ACCEPT

## Lista OUTPUT

iptables -t nat -P OUTPUT ACCEPT

### Tabela Mangle

## Lista INPUT

iptables -t mangle -P INPUT ACCEPT

## Lista FORWARD

iptables -t mangle -P FORWARD ACCEPT

## Lista PREROUTING

iptables -t mangle -P PREROUTING ACCEPT

## Lista POSTROUTING

iptables -t mangle -P POSTROUTING ACCEPT

## Lista OUTPUT

iptables -t mangle -P OUTPUT ACCEPT

#REDE INTERNA (10.80.90.0/24) SE CONECTA A INTERNET ATRAVES DE UM PROXY (10.10.200.55) NO IP EXTERNO (200.21.0.1)

iptables -t nat -A POSTROUTING -s 10.10.200.55 -j SNAT --to 200.21.0.1

iptables -A FORWARD -s 10.80.90.0/24 -d 10.10.200.55 -p tcp --dport 3128 -j ACCEPT

#GATEWAY (REPASSE DE PACOTES)

echo "1" > /proc/sys/net/ipv4/ip_forward

Link para o comentário
Compartilhar em outros sites

pra usa o outlook acho ke tu vai presisa de SNAT porque o squid só suporta protocolos http https ftp e ghoper

se nao me engano a porta do outlook é 1088. a regrinha é

iptables -t nat -A POSTROUTING -s 10.80.90.0/24 -p tcp --dport 1088 -j SNAT --to 200.21.0.1

libera o proxy p/ fazer consultas dns externas tb

iptables -t nat -A POSTROUTING -s <endereço do proxy> -p udp --dport 53 -j SNAT --to 200.21.0.1

se tu nao consgui experimenta libera tb a porta 25 smtp

protocolo https e ftp o proprio proxy libera. Boa sorte, qualque duvida tamo ae, é ajudando que se aprende []'s

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...