Boa tarde a todos!
Sou iniciante no Linux e resolvi me aventurar à 1 semana para configurar um servidor proxy.
Até então consegui com muita pesquisa configurar o Squid no Ubuntu, porém estou enfrentando alguns problemas com o firewall.
Explico:
Tenho um micro com o Ubuntu e Squid instalados. A 'eth0' é minha placa que recebe o sinal de internet e a 'eth1' conectada na rede local.
1º Teste ( configurando o IP do Proxy como gateway e Proxy no browser da estação)
O controle de banda, bloqueio de sites e palavras está funcionando certinho nas estações que estão atrás do proxy. Contudo, quando tento usar o 'Acesso Remoto', ou 'Outlook', 'MSN', etc, nas estações não funcionam.
2º Teste ( Colocando um Router como gateway e usando o Ubuntu somente com Proxy no browser da estação)
O controle de banda, bloqueio de sites e palavras está funcionando certinho. O 'Acesso Remoto', ou 'Outlook', 'MSN', etc, nas estações Também funcionam normalmente.
Minha dúvida é baseada na primeira situação, pois quero usar o Servidor Proxy como Firewall também e não estou conseguindo configurar o Iptables.
Já tentei configurar e rodar um script e não funcionou. Como sou um iniciante acredito que seja algo até muito bobo ou algo complicado que não tenho conhecimento ainda.
Segue meu arquivo squid.conf e script:
Obs: estou fazendo tudo logado como ‘root’
SQUID.CONF
http_port 3128 transparent
visible_hostname xxxx
############# CONFIG CACHE ##############
cache_mem 400 MB
maximum_object_size_in_memory 64 KB
maximum_object_size 512 MB
minimum_object_size 0 KB
cache_swap_low 90
cache_swap_high 95
cache_dir ufs /var/spool/squid 10048 16 256
cache_access_log /var/log/squid/access.log
refresh_pattern ^ftp: 15 20% 2280
refresh_pattern ^gopher: 15 0% 2280
refresh_pattern . 15 20% 2280
########### DECLARANDO ACL #####################
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl SSL_ports port 443 563
acl Safe_ports port 21 80 443 563 70 210 280 488 59 777 901 3389 1025-65535
acl purge method PURGE
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
acl site dstdomain caixa.gov caixa.com
always_direct allow site
# REGRAS DE BLOQUEIOS
# ACESSO TOTALMENTE LIBERADO
acl acessototal src "/etc/squid/acessototal"
http_access allow acessototal
# SITES BLOQUEADOS
acl sitesbloqueado url_regex -i "/etc/squid/sitesbloqueado"
acl sitesliberado url_regex -i "/etc/squid/sitesliberado"
http_access deny sitesbloqueado !sitesliberado
# EXTENSÕES BLOQUEADAS
acl downloadbloqueado url_regex -i "/etc/squid/downloadbloqueado"
acl downloadliberado url_regex -i "/etc/squid/downloadliberado"
http_access deny downloadbloqueado !downloadliberado
error_directory /usr/share/squid/errors/pt
# REDE COM CONTROLE DE BANDA
acl redelocal src 192.168.1.0/24
delay_pools 1
delay_class 1 2
delay_parameters 1 224688/224688 35384/35384
delay_access 1
allow redelocal
http_access
allow localhost
http_access allow redelocal
http_access deny all
_______________________________________
SCRIPT QUE PEGUEI NA NET COM ALGUMAS CONFIG
#!/bin/bash
iniciar(){
# Abre para a faixa de endereços da rede local:
iptables -A INPUT -s 192.168.1.0/255.255.255.0 -j ACCEPT
# Faz a mesma coisa, só que especificando a interface, pode ser
# usada em substituição à regra anterior:
# iptables -A INPUT -i eth0 -j ACCEPT
# Abre uma porta (inclusive para a internet):
iptables -A INPUT -p tcp --dport 3389 -j ACCEPT
# Ignora pings:
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
# Protege contra IP spoofing:
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
# Descarta pacotes malformados, protegendo contra ataques diversos
iptables -A INPUT -m state --state INVALID -j DROP
# Abre para a interface de loopback. Esta regra é essencial para que
# o KDE e outros programas gráficos funcionem adequadamente.
iptables -A INPUT -i lo -j ACCEPT
# Impede a abertura de novas conexões, efetivamente bloqueando o acesso
# externo ao seu servidor, com exceção das portas e faixas de endereços
# manualmente especificadas anteriormente.
iptables -A INPUT -p tcp --syn -j DROP
}
parar(){
iptables -F
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
echo "Regras de firewall desativadas"
}
case "$1" in
"start") iniciar ;;
"stop") parar ;;
"restart") parar; iniciar ;;
*) echo "Use os parâmetros start ou stop"
esac