Enviado em 31/03/2016 - 19:17h
Tenho este script tentando do iptables tentando fazer funcionar#! /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"
# EX: Rede interna
iflan="192.168.0.0/24"
################
# FUNÇÃO START #
################
start_netset() {
# EX: LIMPANDO AS REGRAS CRIADAS ANTERIORMENTE
# EX: Limpando a tabela filter
iptables -F
# EX: Limpando a tabela NAT
iptables -t nat -F
# EX: Limpando a tabela mangle
iptables -t mangle -F
# Ativando o NAT do iptables
modprobe iptable_nat
#Bloquear tudo
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# Ativando o roteamento da conexão entre as interfaces
echo 1 > /proc/sys/net/ipv4/ip_forward
# Ativando o roteamento do proxy (transparente)
# Para usar o proxy normal e bloqueio do UltraSurf comentar para desativar
#iptables -t nat -A POSTROUTING -o $ifinternet -j MASQUERADE
# 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
# Autorizando pacotes da interface de loopback e rede local
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i $ifproxy -j ACCEPT
# Abrindo a porta 22 para conexão remota interna e externa via SSH
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# EX: Abrindo a porta do Squid para a rede interna
iptables -A INPUT -p tcp -i $ifproxy --dport 3128 -j ACCEPT
iptables -A INPUT -s $iflan -p tcp -m multiport --dport 25,110,465,587,993,995
iptables -A INPUT -d $iflan -p tcp -m multiport --dport 25,110,465,587,993,995
# Bloqueando tentativas de conexão provenientes da Internet
iptables -A INPUT -p tcp --syn -j DROP
# EX: Liberandos as portas 80 e 443 apenas para o localhost
iptables -A OUTPUT -p tcp -m multiport --dports 80,443 -j ACCEPT
# EX: Liberando FTP para o localhost
iptables -A OUTPUT -p tcp -m multiport --dports 20,21 -j ACCEPT
iptables -A OUTPUT -p udp -m multiport --dports 20,21 -j ACCEPT
# EX: Descartando pacotes inválidos
iptables -A FORWARD -m state --state INVALID -j DROP
# EX: Aceitando a passagem de pacotes de conexões já estabelecidas
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
# EX: Liberando portas de e-mail POP3 e SMTP
iptables -A FORWARD -p tcp -m multiport --dports 25,110,465,587,995 -j ACCEPT
iptables -A FORWARD -p udp -m multiport --dports 25,110,587,995 -j ACCEPT
# Ativando o Proxy Transparente
# Para usar o proxy normal comentar para desativar
# iptables -t nat -A PREROUTING -i $ifproxy -p tcp --dport 80 -j REDIRECT --to-port 3128
}
###############
# FUNÇÃO STOP #
###############
stop_netset() {
# Limpando a tabela filter
iptables -F
# Limpando a tabela NAT
iptables -t nat -F
# EX: Limpando a tabela mangle
iptables -t mangle -F
modprobe iptable_nat
# 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
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Impressora Bematech MP4200TH rorando com a distribuição Zorin OS (3)
PC congelando em momentos aleatórios (em várias distros) (1)