Enviado em 04/04/2016 - 18:45h
tenho a seguinte configuração de firewall rodando squid + sarg verdadeiramente não transparente ou seja SEM as duas linhas abaixoiptables -t nat -A POSTROUTING -o $ifinternet -j MASQUERADE
iptables -t nat -A PREROUTING -i $ifproxy -p tcp --dport 80 -j REDIRECT --to-port 3128
#! /bin/bash
### BEGIN INIT INFO
# Provides: netset
# Required-Start: squid network-manager
# Required-Stop: squid network-manager
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Inicia o proxy e o firewall
# Description: Inicia o proxy, firewall e compartilhamento de internet
### END INIT INFO
########################
# DECLARANDO VARIÁVEIS #
########################
# Interface do proxy
ifproxy="eth0"
# Interface da internet
ifinternet="eth1"
# Rede interna
iflan="192.168.0.0/24"
start_netset() {
# LIMPANDO AS REGRAS CRIADAS ANTERIORMENTE
# Limpando a tabela filter
iptables -F
iptables -X
# Limpando a tabela NAT
iptables -t nat -F
iptables -t nat -X
# EX: Limpando a tabela mangle
iptables -t mangle -F
iptables -t mangle -X
iptables -L -n
modprobe iptable_nat
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
# Ativando o NAT do iptables
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc
modprobe ip_nat_ftp
# Bloqueando resposta do servidor ao PING
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
# Ativando proteção contra IP spoofing
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP
# Autorizando pacotes da interface de loopback e rede local
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i $ifproxy -j ACCEPT
# Aceitando a passagem de pacotes de conexões já estabelecidas
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# Abrindo a porta 22 para conexão remota interna e externa via SSH
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# Abrindo as portas 20 e 21 para conexão externa via FTP
iptables -A INPUT -i $ifinternet -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -i $ifinternet -p tcp --dport 21 -j ACCEPT
# Abrindo a porta 10000 para conexão remota interna via Webmin
iptables -A INPUT -i $ifproxy -p tcp --dport 10000 -j ACCEPT
# Abrindo a conexão para cns Conectividade social caixa
iptables -A FORWARD -p tcp -d 200.201.173.68 -m multiport --dport 80,443 -j ACCEPT
iptables -A FORWARD -p tcp -s 200.201.173.68 -m multiport --dport 80,443 -j ACCEPT
# Abrindo a porta do Squid para a rede interna
iptables -A INPUT -i $ifproxy -p tcp --dport 3128 -j ACCEPT
# Bloqueando tentativas de conexão provenientes da Internet
iptables -A INPUT -p tcp --syn -j DROP
#Liberando portas de e-mail POP e SMTP
iptables -A INPUT -s $iflan -p tcp -m multiport --dport 25,110,465,587,993,995 -j ACCEPT
iptables -A INPUT -s $iflan -p udp -m multiport --dport 25,110,587,995 -j ACCEPT
iptables -t nat -A POSTROUTING -s $iflan -p tcp -m multiport --dport 25,110,465,587,993,995 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $iflan -p udp -m multiport --dport 25,110,587,995 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $iflan -p tcp --dport 53 -j MASQUERADE
iptables -t nat -A POSTROUTING -s $iflan -p udp --dport 53 -j MASQUERADE
# EX: Liberando portas de DNS
iptables -A INPUT -s $iflan -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -s $iflan -p udp --source-port 53 -j ACCEPT
iptables -A FORWARD -p tcp --dport 53 -j ACCEPT
iptables -A FORWARD -p udp --dport 53 -j ACCEPT
# Liberando portas para o Skype e Teamviewer (rede local)
iptables -A FORWARD -p tcp -m multiport --dport 1616,5938 -j ACCEPT
}
###############
# FUNÇÃO STOP #
###############
stop_netset() {
# Limpando a tabela filter
iptables -F
iptables -X
# Limpando a tabela NAT
iptables -t nat -F
iptables -t nat -X
# EX: Limpando a tabela mangle
iptables -t mangle -F
iptables -t mangle -X
iptables -L -n
modprobe iptable_nat
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
# EX: Ativando o roteamento da conexão entre as interfaces
echo 1 > /proc/sys/net/ipv4/ip_forward
# EX: Para usar o proxy normal e bloqueio do UltraSurf comentar para desativar
#iptables -t nat -A POSTROUTING -o $ifinternet -j MASQUERADE
}
#################
# FUNÇÃO STATUS #
#################
status_netset() {
clear
iptables -L -v -n --line-numbers
echo
}
case "$1" in
"start") start_netset ;;
"stop") stop_netset ;;
"restart") stop_netset; start_netset ;;
"status") status_netset ;;
*) echo "Usar os parametros start, stop ou restart"
esac
exit 0
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Visualizar arquivos em formato markdown (ex.: README.md) pelo terminal
Dando - teoricamente - um gás no Gnome-Shell do Arch Linux
Como instalar o Google Cloud CLI no Ubuntu/Debian
Mantenha seu Sistema Leve e Rápido com a Limpeza do APT!
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)
Alguém já usou o framework Avalonia para desenvolver interfaces de usu... (4)
Ajuda Pra Melhoria do NFTABLES. (8)
Sinto uma leve lentidão ao arrastar, miniminizar e restauras as janela... (2)
Pastas da raiz foram para a área de trabalho [RESOLVIDO] (7)