RSS

Samba - Listando máquinas através de redes roteadas

terça-feira, 6 de abril de 2010

Samba em 3 redes roteadas (VPN)

Servidor (smb.conf)
[global]
  workgroup = INTERNET         // Nome do grupo de trabalho
  server string = kyo                  //  Nome da maquina na rede
  interfaces = 192.168.0.255/255.255.255.0 192.168.1.255/255.255.255.0   192.168.2.255/255.255.255.0       // Interligando 3 redes
  name resolve order = wins bcast
  os level = 64
  preferred master = Yes
  domain master = Yes
  wins support = Yes
  remote announce = 192.168.0.255/INTERNET 192.168.1.255/INTERNET 192.168.2.255/INTERNET
  remote browse sync = 192.168.0.255 192.168.1.255 192.168.2.255  // ips das 3 redes

Filial 02 (smb.conf)
[global]
  workgroup = INTERNET
  netbios name = slackware01   
  server string = Samba slackware01
  interfaces = 192.168.2.0/24, eth1, 127.0.0.0/8
  os level = 32
  preferred master = Yes
  domain master = No
  dns proxy = No
  wins server = 192.168.0.1        // IP do servidor Samba (Matriz)

Filial 03 (smb.conf)
[global]
  workgroup = INTERNET
  netbios name = slackware03   
  server string = Samba slackware03
  interfaces = 192.168.3.0/24, eth1, 127.0.0.0/8
  os level = 32
  preferred master = Yes
  domain master = No
  dns proxy = No
  wins server = 192.168.0.1        // IP do servidor Samba (Matriz)
  

Squid - Libera range para acesso ao proxy.

Libera uma range de IP's da rede interna para acesso ao proxy. (Acesso Total)


acl faixa_adm src 192.168.0.10-192.168.0.50
http_access allow faixa_adm all

Liberado de: 192.168.0.10 à 192.168.0.50
 

Squid - Libera Acesso Específico para um Usuário

Proxy Transparente
Libera Acesso Específico para um Usuário.

acl sites_juliano url_regex -i "/usr/local/squid/etc/sites_juliano.txt"
acl juliano src 192.168.1.13
http_access allow sites_juliano juliano
http_access deny juliano all


Proxy Autenticado
Libera Acesso Específico para um Usuário.

acl sites_juliano url_regex -i "/usr/local/squid/etc/sites_juliano.txt"
acl juliano proxy_auth juliano
http_access allow sites_juliano juliano
http_access deny juliano all


sites_juliano.txt: Contem todos os sites que o usuario juliano pode acessar.

Tanto para proxy transparente como para autenticado primeiro se libera os sites necessários e depois o restante é bloqueado.
 

Squid - Restringindo o horário de acesso

Aqui é onde nós citamos outro tipo interessante de controle que nós podemos implementar em um escritório ou em um meio acadêmico: o controle por horário.

Para nós fazermos isto, nós fazemos o uso da ACL do tipo time.

acl horariopermitido time MTWHF 08:00-18:00
http_access deny !horariopermitido

Interpretando a regra fica assim: Ele vai negar o uso do proxy em todos os horários, COM EXCESSÃO do horário especificado na ACL horariopermitido.

O "MTWHF" na frente da ACL especifica os dias da semana conforme esta tabela:

    S - Sunday (Domingo) M - Monday (Segunda) T - Tuesday (Terça) W - Wednesday (Quarta) H - Thursday (Quinta) F - Friday (Sexta) A - Saturday (Sábado) 
     

Squid - Bloqueando extensões e downloads

Muitas pessoas se infectam com vírus contidos em arquivos de extensões conhecidas por conter programas maliciosos, como o .bat o .pif e o .scr.

Mas por incrível que pareça, você pode bloquear extensões que os seus usuários baixam no computador por meio de HTTP ou de FTP e de quaisquer outros protocolos que o Squid suporte, fazendo os seguintes passos:

touch /usr/local/squid/etc/extensoes.txt
chmod 755 /usr/local/squid/etc/extensoes.txt

Feito isto, você deve escrever as extensões que você quer bloquear da seguinte maneira no arquivo extensoes.txt.

\.com$
\.pif$
\.bat$
\.src$
\.zip$
\.exe$

NOTA: O "\" é um eliminador de metacaracteres e serve para cancelar a função do ".". Já o "$" serve para que seja analizado até o final de string.

Agora nós vamos adicionar a ACL no Squid que vai bloquear as extensões efetivamente, juntamente com o seu http_access:

acl extensoes urlpath_regex -i "/usr/local/squid/etc/extensoes.txt"
http_access deny extensoes all
 

Squid - Liberando acessos (sites)

Primeiro criamos o arquivo texto com a  lista de sites e damos à ele permissão de leitura:

touch /usr/local/squid/etc/liberados.txt
chmod 755 /usr/local/squid/etc/liberados.txt

Nele insira todas as sites que serão liberados. Adicione um site por linha.

Após, crie a ACL da seguinte maneira:
acl liberados url_regex -i "/usr/local/squid/etc/liberados.txt"

O parâmetro "-i" serve para que o Squid não distingua entre maiúsculas ou minúsculas.

E libere o acesso com o http_access:
http_access allow liberados all
  

IPTables - Criando chains Personalizadas.

Script que permite acesso total a rede.

hostsliberados.sh 

for x in `cat /root/hostsliberados.txt`
   do
        iptables -t nat -A preHostsLiberados -s $x -j ACCEPT
        iptables -t nat -A posHostsLiberados -s $x -j MASQUERADE
   done


hostsliberados.txt (Ips que serão liberados)
192.168.0.2
192.168.0.4
192.168.0.6

Regras
iptables -t nat -N preHostsLiberados
iptables -t nat -N posHostsLiberados
/root/hostsliberados.sh

iptables -t nat -A PREROUTING -j preHostsLiberados
iptables -t nat -A POSTROUTING -j posHostsLiberados