Configurando o ubuntu server 9.04 (squid, iptables, samba)

Iniciado por pauloleoni, 18 de Junho de 2009, 18:11

tópico anterior - próximo tópico

pauloleoni

Olá, primeiramente quero adiantar que já trabalho com TI há mais de 10 anos, portanto não sou um tapado completo. Mas no linux estou dando meus primeiros passos.

Bem, onde trabalho decidimos instalar no linux um proxy, firewall e futuramente um servidor samba para controle de dominio. temos uma rede com cerca de 70 usuários e relatorios de uso ( sarg, por exemplo) serão muito utilizados. Alguns usuários baixam emails via pop e smtp, mas isso terei que configurar no firewall, que será meu segundo passo.

Bem, consegui baixar o Ubuntu server, versão mais nova, 9.04.configurei a eth0 e inclusive já conseguo instalar pacotes usando o apt-get.

Consegui instalar o squid utilizando o apt-get install squid. Mas e agora, como faço para editar o arquivo squid.conf sem interface gráfica e, portanto sem poder utilizar o gedit? quando utilizo o comando vi squid.conf, como salvo o que editei? Existe algum meio mais fácil de editar isso?

e depois de configurado, tenho que configurar o kernel? como faço isso?

Bom, esse é meu primeiro passo, instalar e configurar o squid, mas com certeza vou pertubá-los mais quando for instalar e configurar o iptables.

desde já agradeço a atenção.

sds

Paulo Leoni

pauloleoni

Bom, como ninguém respondeu nada aki na velocidade esperada, resolvi fuçar nesse forum e encontrei um ótimo guia de como utlizar o VI
http://ubuntuforum-br.org/index.php/topic,4167.0.html

Estou instalando esse servidor seguindo alguns passos, algumas sequencias:

Primeiro passo - instalar o ubuntu server 9.04 - já consegui, feito sem nenhum problema mais grave
Segundo passo - instalar e configurar o squid (preciso de uma lista de bloqueios de sites) - feito também, aliás vu postar o squid.conf que tenho para ver se alguém aponta algum erro ou alguma regra desnecessária que eu criei.

Citarhttp_port 10.24.4.203:3128 transparent
visible_hostname SEMED
hierarchy_stoplist cgi-bin ?
cache_mem 256 MB
maximum_object_size_in_memory 700 KB
maximum_object_size 10000 KB
minimum_object_size 0 KB
cache_swap_low 90
cache_swap_high 95
cache_dir ufs /var/spool/squid 10000 16 256
cache_access_log /var/log/squid/access.log
error_directory /usr/share/squid/errors/Portuguese
ftp_user Squid@
# ACLS
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 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443 563     # https, snews
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl Safe_ports port 25          # smtp
acl Safe_ports port 110         # pop3

############# DECLARANDO AS ACLs #############
# PCs com acesso total
acl acesso_total src "/etc/squid/confs/acesso_total"
http_access allow acesso_total

# bloqueio do msn
acl msn dst 207.46.110.0/24 207.46.104.0/24 64.4.13.0/24
http_access deny msn
acl bloqmessenger url_regex www.e-messenger.net webmessenger.msn.com
http_access deny bloqmessenger


# extensoes de arquivos bloqueados
acl download url_regex -i "/etc/squid/confs/download"


# Lista de bloqueios
acl bloqueado url_regex -i "/etc/squid/confs/bloqueado"

# Lista de liberados
acl liberado url_regex -i "/etc/squid/confs/liberado"

############# ATIVANDO AS ACLs #############

acl redelocal src 10.24.4.0/24
http_access allow liberado
acl acesso_bloqueado src "/etc/squid/confs/acesso_bloqueado"
http_access deny acesso_bloqueado
http_access deny download
http_access deny bloqueado
http_access allow redelocal !msn
http_access deny all

terceiro passo - instalar e configurar um firewall - estou no começo, tentando estudar a melhor maneira de criar isso. Vou usar o iptables, lembro que uso o server edition, sem modo grafico.
quarto passo - instalar e configurar o dhcp
quinto e último passo - instalar e configurar o samba para controlar dominio e gerenciar os usuários.


Minha dúvida do momento, depois de instalado e salvo o arquivo do firewall, como faço para inseriri ele no kernel, difo, tem alguma configuração a fazer no kernel? algum módulo a instalar ou a registrar?

Quando eu estiver mais adiantado, no meu proximo passo eu posto aqui, ou se alguém puder me ajudar, melhor ainda, Ajudem alguém a ingressar com o pé direito no mundo do Linux !!

Valeu !

pauloleoni

Bom pessoal, achei o passo do dhcpd bem mais simples que o firewall, então resolvi pular, hehehe.

instalei o dhcpd utilizando o seguinte comando
Citar
sudo apt-get install dhcp3-server

em /etc/dhcp3/dhcpd.conf

Citar
#dhcp da empresa
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;

authoritative;

subnet 10.24.4.0 netmask 255.255.255.0 {
range 10.24.4.10 10.24.4.199;
option routers 10.24.4.200;
option domain-name-servers  200.204.0.10,200.204.0.138;
option broadcast-address 10.24.4.255;
}


lembrando que o Domain-Name-Servers são os dns da sua rede
10.24.4.200 é o ip da minha eth1, minha lan

Funcionou PERFEITO.

Agora é cair pra dentro do firewall, aqui utilizo somente as portas para http, https, pop, smtp, tudo padrão, fechar ftp, telnet, permitir ping de dentro para fora,

bom, vou tentando aqui, lembrando também que estou com o squid rodando PERFEITO, o squid.conf já citei em resposta anterior.

Valeu e no aguardo pra ver se a galera mais exeriente se anima.

Felix

Opa, parabéns pela iniciativa. É ótimo ver isso: quando o usuário procura alguem para ajudar, infelizmente nem sempre encontra uma resposta imediata, então bota a mão na massa e COMPARTILHA o que aprendeu, seus progressos. Esse é o espírito.

Aqui mesmo no fórum há vários posts sobre squid (eu até já deixei de fazer 'jabá' de um post que tenho no meu blog). A questão que pode dificultar que outros usuários lhe ajudem em questão de squid e firewall é que cada caso é um caso, como por exemplo o seu squid.conf é bem diferente do meu, mas o importante é que você disse que para o que você precisa ele está funcionando perfeitamente. Parabéns.

Qualquer dúvida estamos aí (infelizmente a resposta pode não ser imediata... hehehe)

pauloleoni

Bom, na verdade, as acl's safe ports não sei bem se precisam ser incluidos no squid, creio que pelo iptables seria mais interessante, mas me fale sua opinião, ou de alguém que se interessar...


Valeu !

Felix

outro link que eu sempre recomendo quando trata-se de SQUID é o Configurando um SQUID ninja, nele há um amplo material de estudo.

pauloleoni

Queria saber mesmo se posso trocar algumas lonhas por configurações no iptables, quer dizer, em vez de acl no squid, alguma regra no firewall ...

pauloleoni

Bom,

como niguém se predispos a ajudar, vou fazendo pegando uma dica aqui outra ali, e como antes vou postando os meus rsultados.

O que quero no fim de tudo é:

- Um servidor ubuntu server 9.04 sem interface gráfica, isso foi até que tranquilo;
- Rodando DHCP, Firewall, Squid com proxy transparente, tudo nos conformes, já está funcionando.
- Samba para controlador de domínio com os usuários se autenticando - Será meu próximo passo.

Agora a ajuda que queria no momento é saber se com as confs que tenho, se algo está deixando minha conexão lenta, pois aparenta muita lentidão:

squid.conf
Citar
#porta padrão
http_port 10.24.4.200:3128 transparent
visible_hostname SEMED
hierarchy_stoplist cgi-bin ?
cache_mem 256 MB
maximum_object_size_in_memory 1024 KB
maximum_object_size 1024 KB
minimum_object_size 0 KB
cache_swap_low 90
cache_swap_high 95
cache_dir ufs /var/spool/squid 10000 16 256
cache_access_log /var/log/squid/access.log
#error_directory /usr/share/squid/errors/english
ftp_user Squid@

#ACLS
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 80                    # http
#acl Safe_ports port 21                    # ftp
acl Safe_ports port 443 563               # https, snews
#acl Safe_ports port 70                    # gopher
#acl Safe_ports port 210                   # wais
#acl Safe_ports port 1025-65535          # unregistered ports
#acl Safe_ports port 280                   # http-mgmt
#acl Safe_ports port 488                   # gss-http
#acl Safe_ports port 591                   # filemaker
#acl Safe_ports port 777                   # multiling http
acl Safe_ports port 25                    # smtp
acl Safe_ports port 110                   # pop3

##########################  DECLARANDO AS ACLs  #############################


# PCs com acesso total
acl acesso_total src "/etc/squid/confs/acesso_total"
http_access allow  acesso_total

#bloqueio do MSN
acl msn dst 207.46.110.0/24 207.46.104.0/24 64.4.13.0/24
http_access deny msn
acl bloqmessenger url_regex www.e-messenger.net webmessenger.msn.com
http_access deny bloqmessenger

# extensões de arquivos bloqueados
acl download url_regex -i "/etc/squid/confs/download"

#lista de bloqueios
acl bloqueado url_regex -i "/etc/squid/confs/bloqueado"

#lista de liberados
acl liberado url_regex -i "/etc/squid/confs/liberado"


############################# ATIVANDO AS ACLs  ################################

acl redelocal src 10.24.4.0/24
http_access allow liberado
acl acesso_bloqueado src "/etc/squid/confs/acesso_bloqueado"
http_access deny acesso_bloqueado
http_access deny download
http_access deny bloqueado
http_access allow redelocal !msn
http_access deny all



Agora o firewall que deixei carregando no /etc/rc.local


Citar
#!/bin/bash

## limpa as tabelas das regras, nada a ser mudado aqui
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t filter -F
iptables -t filter -X
iptables -t mangle -F
iptables -t mangle -X


# Habilita roteamento
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

# Habilita PROXY TRANSPARENTE
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128


# Portas abertas

iptables -A INPUT -p tcp --destination-port 22 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 53 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 3128 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 80 -j ACCEPT
iptables -A FORWARD -p tcp --dport 110 -j ACCEPT
iptables -A FORWARD -p tcp --dport 25 -j ACCEPT
iptables -A FORWARD -p tcp --sport 110 -j ACCEPT
iptables -A FORWARD -p tcp --sport 25 -j ACCEPT


# Proteçs diversas contra portscanners, ping of death, ataques DoS, etc.
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j DROP
iptables -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD --protocol tcp --tcp-flags ALL SYN,ACK -j DROP
iptables -A FORWARD -m unclean -j DROP

# Abre para a interface de loopback.
iptables -A INPUT -i lo -j ACCEPT

# BLOQUEA O QUE NAO SE ENCAIXA NAS REGRAS ACIMA
iptables -A INPUT -p tcp --syn -j DROP
iptables -P FORWARD DROP

## FIM DO ARQUIVO ##

exit 0




É isso aí, agora vou cair dentro do samba, vamos er que bicho vai dar...

Se alguem puder me ajudar dando uma olhada nessas confs e apontando erros e/ou sugestões beleza, senão que pelo menos sirva de ponto de partida para usuários que como eu, sãoinexperientes e que necessitam e querem utilizar o linux por ser uma plataforma bem mais segura e estável.

sds a todos !!

pauloleoni

caraca, é dificil ser respondido aki hein...
bom, to tentando me virar sozinho no entanto, mas fica aqui uma dúvida...

por que estou tendo que colocar site por site na minha lista de sites liberados, ou seja, não adianta nada colocar sites na minha lista de bloqueados, pois TODOS estão bloqueados, sendo assim, estou tendo que colocar mais e mais sites para poder acessar a internet nos clientes...

minha rc.local ficou assim, no final:

#!/bin/bash

## limpa as tabelas das regras, nada a ser mudado aqui
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t filter -F
iptables -t filter -X
iptables -t mangle -F
iptables -t mangle -X



# Habilita PROXY TRANSPARENTE
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128


# Portas abertas

iptables -A INPUT -p tcp --destination-port 22 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 53 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 3128 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 80 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 443 -j ACCEPT
iptables -A FORWARD -p tcp --dport 110 -j ACCEPT
iptables -A FORWARD -p tcp --dport 25 -j ACCEPT
iptables -A FORWARD -p tcp --sport 110 -j ACCEPT
iptables -A FORWARD -p tcp --sport 25 -j ACCEPT


# Proteçs diversas contra portscanners, ping of death, ataques DoS, etc.
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j DROP
iptables -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
iptables -A FORWARD --protocol tcp --tcp-flags ALL SYN,ACK -j DROP
iptables -A FORWARD -m unclean -j DROP

# Abre para a interface de loopback.
iptables -A INPUT -i lo -j ACCEPT

# BLOQUEA O QUE NAO SE ENCAIXA NAS REGRAS ACIMA
iptables -A INPUT -p tcp --syn -j DROP
iptables -P FORWARD DROP

## FIM DO ARQUIVO ##

exit 0


e meu squid conf, assim:

#porta padrão
http_port 10.24.4.200:3128 transparent
visible_hostname SEMED
hierarchy_stoplist cgi-bin ?
cache_mem 256 MB
maximum_object_size_in_memory 1024 KB
maximum_object_size 1024 KB
minimum_object_size 0 KB
cache_swap_low 90
cache_swap_high 95
cache_dir ufs /var/spool/squid 10000 16 256
cache_access_log /var/log/squid/access.log
#error_directory /usr/share/squid/errors/english
ftp_user Squid@

#ACLS
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 80                    # http
#acl Safe_ports port 21                    # ftp
acl Safe_ports port 443 563               # https, snews
#acl Safe_ports port 70                    # gopher
#acl Safe_ports port 210                   # wais
#acl Safe_ports port 1025-65535          # unregistered ports
#acl Safe_ports port 280                   # http-mgmt
#acl Safe_ports port 488                   # gss-http
#acl Safe_ports port 591                   # filemaker
#acl Safe_ports port 777                   # multiling http
acl Safe_ports port 25                    # smtp
acl Safe_ports port 110                   # pop3

##########################  DECLARANDO AS ACLs  #############################


# PCs com acesso total
acl acesso_total src "/etc/squid/confs/acesso_total"
http_access allow  acesso_total

#bloqueio do MSN
acl msn dst 207.46.110.0/24 207.46.104.0/24 64.4.13.0/24
http_access deny msn
acl bloqmessenger url_regex www.e-messenger.net webmessenger.msn.com
http_access deny bloqmessenger

# extensões de arquivos bloqueados
acl download url_regex -i "/etc/squid/confs/download"

#lista de bloqueios
acl bloqueado url_regex -i "/etc/squid/confs/bloqueado"

#lista de liberados
acl liberado url_regex -i "/etc/squid/confs/liberado"


############################# ATIVANDO AS ACLs  ################################

acl redelocal src 10.24.4.0/24
http_access allow liberado
acl acesso_bloqueado src "/etc/squid/confs/acesso_bloqueado"
http_access deny acesso_bloqueado
http_access deny download
http_access deny bloqueado
http_access allow redelocal !msn
http_access deny all


Será que alguém vai se interessar pelo meu caso ou será que vou continuar me virando sozinho, pra que o fórum, de qualquer maneira se ninguém ajuda ninguém...

vamos ver como fica...


Felix

altere a ordem, libere para depois bloquear. provavelmente funcionará.

pauloleoni

Ok, fiz como falou, coloquei o http_acces allow all em primeiro lugar na lista de ativação das acls. Feito isso funcioneou tudo, mas os bloqueios não, então coloquei a acl da lista dos sites bloqueados e ficou legal, mas quando coloquei a lista de download antes da liberação, para bloquear algumas extensões, aí o squid bloqueou tudo...

Aí tirei essa acl de novo.

Como faço para bloquear as extensões?

E em relação ao cache do squid, para acelerar um pouco mais as navegações dos usuários,tenho como testar isso?

To achando que a internet está lenta... será que tem algo deixando isso lento?

abaixo meu squid.conf final (o que está funcionando, após a alteração mencionada):

#porta padrão
http_port 10.24.4.200:3128 transparent
visible_hostname SEMED
hierarchy_stoplist cgi-bin ?
cache_mem 256 MB
maximum_object_size_in_memory 1024 KB
maximum_object_size 1024 KB
minimum_object_size 0 KB
cache_swap_low 90
cache_swap_high 95
cache_dir ufs /var/spool/squid 10000 16 256
cache_access_log /var/log/squid/access.log
#error_directory /usr/share/squid/errors/english
ftp_user Squid@

#ACLS
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 80                    # http
#acl Safe_ports port 21                    # ftp
acl Safe_ports port 443 563               # https, snews
#acl Safe_ports port 70                    # gopher
#acl Safe_ports port 210                   # wais
#acl Safe_ports port 1025-65535          # unregistered ports
#acl Safe_ports port 280                   # http-mgmt
#acl Safe_ports port 488                   # gss-http
#acl Safe_ports port 591                   # filemaker
#acl Safe_ports port 777                   # multiling http
acl Safe_ports port 25                    # smtp
acl Safe_ports port 110                   # pop3

##########################  DECLARANDO AS ACLs  #############################


# PCs com acesso total
acl acesso_total src "/etc/squid/confs/acesso_total"
http_access allow  acesso_total

#bloqueio do MSN
acl msn dst 207.46.110.0/24 207.46.104.0/24 64.4.13.0/24
http_access deny msn
acl bloqmessenger url_regex www.e-messenger.net webmessenger.msn.com
http_access deny bloqmessenger

# extensões de arquivos bloqueados
acl download url_regex -i "/etc/squid/confs/download"

#lista de bloqueios
acl bloqueado url_regex -i "/etc/squid/confs/bloqueado"

#lista de liberados
acl liberado url_regex -i "/etc/squid/confs/liberado"


############################# ATIVANDO AS ACLs  ################################

acl redelocal src 10.24.4.0/24

http_access allow all
http_access deny bloqueado

#http_access allow liberado
acl acesso_bloqueado src "/etc/squid/confs/acesso_bloqueado"
http_access deny acesso_bloqueado
http_access deny download
http_access allow redelocal !msn

giant_trunade

cara, parabens pela iniciativa mesmo..

to fazendo um proxy / cache e to apanhando tambem.. estou usando Ubuntu 9.04 server e squid 2.7 stable 3.

TODOS os tutoriais que encontrei estao defasados.. so funcionam em versoes anteriores.. e no meu post ninguem responde tambem...

parabens.. qq coisa estamos ae

pauloleoni

Fala o seu caso, o que não está funcionando?

O meu ta tranquilão...

giant_trunade

#13
olá!

primeiramente muito obrigado pela ajuda oferecida.

eu criei um topico com o problema, está no link: http://ubuntuforum-br.org/index.php/topic,53198.0.html

PROBLEMAS:

- o squid nao da erro nem nada, quando eu inicio (ou reinicio) o servico manualmente (/etc/init.d/squid restart) ele rapidamente dá ok, mas quando verifico o status, a resposta é: "squid is not runing", ele nao inicia...

- como uma das razoes de implementar o proxy nos laboratorios era a questao de pouca banda, pensei em bloquear os banners (principalmente em flash) para economizar, para isso encontrei o bannerfilter, porem se coloco o bannerfilter e o squidguard (ambos) no squid.conf, sempre um dos dois da pau ao subir o squid (como se a linha estivesse com erro).

o estranho é que estava funcionando normal (consegui navegar pelo proxy, mas nao usar o squidguard e bannerfilter) até pouco tempo, quando fui criar as acls de teste ele começou de birra rsrsrs.

no link está listado o squid.conf e o squidguard.conf.

giant_trunade

#14
Fala Paulo! novamente parabens pela sua inciativa!

Olha, eu ainda prefiro nao acreditar em milagres na informatica, mas...

esse seu proxy, funcionou como transparente???  ???

pq o meu aceitou navegação como transparente, porem, qualquer e-mail ou qualquer site com rede segura (https e outras) dava erro...

procurei em tudo quanto é lugar e nao encontrei nada!!

- tentei liberar as portas 443 e outras de https...  nada!!
- tentei fazer direcionamento, e passar direto pelo squid...  nada!!

a unica coisa que achei (em sites gringos) foi que isso era por causa de ataques "man in the middle"... mas nao postava solução...

sinceramente desanimei totalmente com certas coisas no ubunutu...

até o sarg da um monte de problema... os scripts sarg.daily (relatorios) nao funcionam.. tive que criar scripts p gerar, filtrar e organizar o relatorios... squidguard funciona malemá! pode seguir tutorial escrito até por Jesus Cristo que nao funciona certas coisas... eu to %$#@&* de raiva...

desculpe o desabafo... mas é verdade.

desde já agradeço muito e aguardo a resposta...

abração