pagoto
(usa Ubuntu)
Enviado em 03/01/2012 - 17:21h
Alguns dos comandos peguei com a galera aqui do under-linux, hoje meu script está desse jeito abaixo.
Gostaria que vocês analisa-se por favor, e me ajuda-se a deixa-lo mais seguro.
O problema é, NÃO CONSIGO conectar a VPN pptpd ( sei que é insegura ) sempre dá erro 807 no windows.
Viajo muito e preciso conectar de qualquer computador em qualquer lugar do Brasil, ( não tem como ficar instalando OPENVPN )
INFORMAÇÕES: VPN, FIREWALL E APACHE NO MESMO SERVIDOR.
Interface Rede Interna: eth1
Interface Rede externa (internet): eth0
#!/bin/bash
echo "Carregando o firewall..."
# Definindo as variaveis
#
IPTABLES="/sbin/iptables"
REDEINT="10.10.100.0/24"
IPDNSPROVEDOR="200.189.88.12"
IPDNSPROVEDOR2="200.189.88.39"
IPDNSPROVEDOR3="10.10.100.200"
IPDNSPROVEDOR4="10.10.100.201"
ENT="eth0"
# Limpar e Inicializar modulos
#
$IPTABLES -F
$IPTABLEs -t nat -F
$IPTABLEs -t mangle -F
modprobe iptable_nat
modprobe ipt_LOG
#----------------
# POLÍTICA DROP |
#----------------
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP
# Bloqueio de pings e ip spoofing
$IPTABLES -A INPUT -p icmp --icmp-type echo-request -j DROP
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
$IPTABLES -A INPUT -m state --state INVALID -j DROP
# Protege contra os "Ping of Death"
$IPTABLES -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
# Protege contra os ataques do tipo "Syn-flood, DoS, etc"
$IPTABLES -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT
# Permitir repassamento (NAT,DNAT,SNAT) de pacotes etabilizados e os relatados ...
$IPTABLES -A INPUT -i ! $ENT -j ACCEPT
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT
$IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# Logar os pacotes mortos por inatividade ...
$IPTABLES -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG
# Protege contra port scanners avançados (Ex.: nmap)
$IPTABLES -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
# Protege contra pacotes informações da rede interna
$IPTABLES -A FORWARD --protocol tcp --tcp-flags ALL SYN,ACK -j DROP
# Protege contra todos os pacotes danificados e ou suspeitos ...
$IPTABLES -A FORWARD -m unclean -j DROP
# Bloqueando tracertroute
$IPTABLES -A INPUT -p udp -s 0/0 -i $ENT --dport 33435:33525 -j DROP
# Protecoes contra ataques
$IPTABLES -A INPUT -m state --state INVALID -j DROP
# Performance - Setando acesso a web com delay minimo
$IPTABLES -t mangle -A OUTPUT -o $ENT -p tcp --dport 53 -j TOS --set-tos Minimize-Delay
$IPTABLES -t mangle -A OUTPUT -o $ENT -p tcp --dport 80 -j TOS --set-tos Minimize-Delay
# Deixa passar as portas UDP do servidores DNS, e Rejeitar o restante
$IPTABLES -A INPUT -i $ENT -p udp -s $IPDNSPROVEDOR -j ACCEPT
$IPTABLES -A INPUT -i $ENT -p udp -s $IPDNSPROVEDOR2 -j ACCEPT
$IPTABLES -A INPUT -i $ENT -p udp -s $IPDNSPROVEDOR3 -j ACCEPT
$IPTABLES -A INPUT -i $ENT -p udp -s $IPDNSPROVEDOR4 -j ACCEPT
$IPTABLES -A INPUT -i $ENT -p udp -j REJECT
# Bloqueia qualquer tentativa de conexao de fora para dentro por TCP
$IPTABLES -A INPUT -i $ENT -p tcp --syn -j DROP
# Fechar todas as portas abaixo de 32000
$IPTABLES -A INPUT -i $ENT -p tcp --dport :32000 -j DROP
# Responde pacotes icmp especificados e rejeita o restante
$IPTABLES -A INPUT -i $ENT -p icmp --icmp-type host-unreachable -j ACCEPT
$IPTABLES -A INPUT -i $ENT -p icmp --icmp-type source-quench -j ACCEPT
$IPTABLES -A INPUT -i $ENT -p icmp -j REJECT --reject-with icmp-host-unreachable
# libera acesso interno da rede
$IPTABLES -A INPUT -p tcp --syn -s $REDEINT -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --syn -s $REDEINT -j ACCEPT
$IPTABLES -A FORWARD -p tcp --syn -s $REDEINT -j ACCEPT
# libera o loopback
$IPTABLES -A OUTPUT -p tcp --syn -s 127.0.0.1/255.0.0.0 -j ACCEPT
# libera conexoes de fora pra dentro (SSH usando 9991/ APACHE usando 9999)
$IPTABLES -A INPUT -p tcp --destination-port 9991 -j ACCEPT
$IPTABLES -A INPUT -p tcp --destination-port 9999 -j ACCEPT
#libera conexoes de dentro pra fora:
$IPTABLES -A OUTPUT -p tcp --destination-port 9999 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --destination-port 3306 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --destination-port 9991 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --destination-port 20 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --destination-port 21 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp --destination-port 443 -j ACCEPT
# Loga tentativa de acesso a determinadas portas
$IPTABLES -A INPUT -p tcp --dport 21 -i $ENT -j LOG --log-level 6 --log-prefix "FIREWALL: ftp: "
$IPTABLES -A INPUT -p tcp --dport 23 -i $ENT -j LOG --log-level 6 --log-prefix "FIREWALL: telnet: "
$IPTABLES -A INPUT -p tcp --dport 25 -i $ENT -j LOG --log-level 6 --log-prefix "FIREWALL: smtp: "
$IPTABLES -A INPUT -p tcp --dport 80 -i $ENT -j LOG --log-level 6 --log-prefix "FIREWALL: http: "
$IPTABLES -A INPUT -p tcp --dport 110 -i $ENT -j LOG --log-level 6 --log-prefix "FIREWALL: pop3: "
$IPTABLES -A INPUT -p udp --dport 111 -i $ENT -j LOG --log-level 6 --log-prefix "FIREWALL: rpc: "
$IPTABLES -A INPUT -p tcp --dport 113 -i $ENT -j LOG --log-level 6 --log-prefix "FIREWALL: identd: "
$IPTABLES -A INPUT -p tcp --dport 137:139 -i $ENT -j LOG --log-level 6 --log-prefix "FIREWALL: samba: "
$IPTABLES -A INPUT -p udp --dport 137:139 -i $ENT -j LOG --log-level 6 --log-prefix "FIREWALL: samba: "
$IPTABLES -A INPUT -p tcp --dport 161:162 -i $ENT -j LOG --log-level 6 --log-prefix "FIREWALL: snmp: "
$IPTABLES -A INPUT -p tcp --dport 6667:6668 -i $ENT -j LOG --log-level 6 --log-prefix "FIREWALL: irc: "
$IPTABLES -A INPUT -p tcp --dport 3128 -i $ENT -j LOG --log-level 6 --log-prefix "FIREWALL: squid: "
# 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 $ENT --dport 27444 -j TRINOO
$IPTABLES -A INPUT -p TCP -i $ENT --dport 27665 -j TRINOO
$IPTABLES -A INPUT -p TCP -i $ENT --dport 31335 -j TRINOO
$IPTABLES -A INPUT -p TCP -i $ENT --dport 34555 -j TRINOO
$IPTABLES -A INPUT -p TCP -i $ENT --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 $ENT --dport 666 -j TROJAN
$IPTABLES -A INPUT -p TCP -i $ENT --dport 4000 -j TROJAN
$IPTABLES -A INPUT -p TCP -i $ENT --dport 6000 -j TROJAN
$IPTABLES -A INPUT -p TCP -i $ENT --dport 6006 -j TROJAN
$IPTABLES -A INPUT -p TCP -i $ENT --dport 16660 -j TROJAN
# Roteamento para o Proxy Squid
$IPTABLES -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
# compartilha a web na rede interna
$IPTABLES -t nat -A POSTROUTING -o eth0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
# bloqueia ping
echo "0" > /proc/sys/net/ipv4/icmp_echo_ignore_all
# Libera Acesso VPN
$IPTABLES -A INPUT -p tcp -m tcp --dport 1723 state --state NEW -j ACCEPT
$IPTABLES --append INPUT --protocol 47 --jump ACCEPT
$IPTABLES --append INPUT --protocol tcp --match tcp --destination-port 1723 --jump ACCEPT
$IPTABLES -A FORWARD -i eth0 -j ACCEPT
$IPTABLES -A FORWARD -o eth0 -j ACCEPT
echo "Script carregado..."
#------------------------------------FIM DO SCRIPT---------------------------------------#
#