Servidor DHCP CentOS

0

Boas Users!

Vou mostrar como configurar um servidor DHCP, no CentOS 7.

 

Comandos:

# su -

su –= ativa o super usuário “root”

# yum update

yum= é uma ferramenta utilizada para gerenciar a instalação e remoção de pacotes em distribuições Linux, que utilizam o sistema RPM.

update= Atualiza o sistema de arquivos.

# yum install dhcpd

install= Instala

# systemctl enable dhcpd

systemctl= Ferramenta para gerenciar serviços

enable= Habilita

# systemctl start dhcpd

start= inicia

# ifconfig

ifconfig= é usado para atribuir um endereço para uma interface e/ou configurar parâmetros de interface de rede

# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

vi= Editor de texto

OBS: Lembrando que “enp0s3” é a placa de rede gerada “virtualbox”, substitua pela placa de rede do seu computador.

DEVICE=enp0s3
BOOTPROTO=static
BROADCAST=192.168.1.255
IPDDR=192.168.1.128
NETMASK=255.255.255.0
GATEWAY=192.168.1.254
NETWORK=192.168.1.0
ONBOOT=yes
TYPE=Ethernet
PEERDNS=no

DEVICE= Identificação da placa de rede “nome”

BOOTPROTO= static “ip fixo” ou Dynamic “ip recebido pelo servidor DHCP”

IPADDR= Aqui colocamos o “IP”

NETMASK= Mascara da rede

GATEWAY= é uma máquina intermediária geralmente destinada a interligar redes, separar domínios de colisão, ou mesmo traduzir protocolos.

NETWORK= Faixa de IP`s

ONBOOT= yes > ativa placa de rede, no > não ativa a placa de rede no boot

PEERDNS= responsável por gerar o DNS no arquivo “/etc/resolv.conf”

# vi /etc/sysconfig/network-scripts/ifcfg-enp0s8

enp0s8= Placa de rede, que vai distribuir internet.

# service network restart

Reiniciando a rede

DEVICE=enp0s8
BOOTPROTO=static
BROADCAST=10.0.0.255
IPADDR=10.0.0.1
NETMASK=255.0.0.0
NETWORK=10.0.0.0
GATEWAY=10.0.0.1
ONBOOT=yes
# vi /etc/resolv.conf

aqui configuramos o DNS:

nameserver 192.168.1.1

OBS: pode ser o seu DNS preferido, ex: 8.8.8.8 ou 8.8.4.4, que são os DNS do google.

# vi /etc/dhcpd/dhcpd.conf

Configuração do arquivo DHCP:

default-lease-time 600;
max-lease-time 7200;
authoritative;

subnet 10.0.0.0 netmask 255.0.0.0 {
range dynamic-bootp 10.0.0.100 10.0.0.200;
option domain-name-servers 8.8.8.8, 8.8.4.4;
option broadcast-address 10.0.0.255;
option routers 10.0.0.1;
}

default-lease-time = Controla o tempo de renovação dos endereços de IP´s

max-lease-time = determina o tempo máximo que uma estação pode usar um determinado IP.

authoritative= Terminais mesmo que estes possuam, configurações erradas de rede, ou possuam IPs que não sejam da subnet configurada no servidor.

subnet= classe de ip

range dynamic-bootp= IP’s que seraão liberados

option domain-name-servers=  É um computador com uma espécie de banco de dados que relaciona o endereço “nominal” de um site como www.uol.com.br com o endereço real onde está a página na rede, para poder acessá-la.

option domain-broadcast-adrress=

option routers= rota do tráfego

Agora vamos criar um script do roteamento, para liberar internet.

# vi /usr/bin/firewall

OBS: pode criar com o nome de sua preferência, no meu caso criei “firewall”.

#!/bin/bash
iptables -F 
iptables -t filter -P FORWARD ACCEPT
iptables -t nat -A POSTROUTING -s 10.0.0.0/255.0.0.0 -o enp0s3 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A FORWARD -s 10.0.0.0/12 -j ACCEPT
iptables -A FORWARD -d 10.0.0.0/12 -j ACCEPT

iptables= é o nome da ferramenta do espaço do usuário que permite a criação de regras de firewall e NATs.

-F= apaga todas as regras

-t= parâmetro tabela

-P= define uma regra padrão

-A=acrescenta uma nova regra às existentes

-s= especifica a origem do pacote. Origem que pode ser informada como

-o= identifica a interface de saída do pacote, com a mesma sintaxe descrita acima em -i

FORWARD= consultado para dados que são redirecionados para outra interface de rede ou outra máquina

POSTROUTING= consultado para os dados que precisam ser modificados logo que chegam (DNAT e redirecionamento de portas)

ACCEPT= O pacote é ACEITO e o processamento das regras daquele chains é concluído

filter= nome da tabela

# chmod +x /usr/bin/firewall

chmod= é um utilitário via linha de comando usado nos sistemas Linux/Unix/Unix-like para mudar as permissões de um arquivo ou diretório.

+= adiciona

x= execução

# vi /etc/rc.d/rc.local

Agora vamos adicionar na ultima linha, do arquivo “rc.local” para iniciar o script “firewall” no boot.

 

 

[ x ]
 

bash /usr/bin/firewall

salve e assim, estará rodando o seu servidor. Boa Sorte!

Download dos arquivos de configurações do CentOS aqui.

em relação ao editor de texto “vi”, quem não está familiarizado, consulte aqui.

 

By user777

 

 

 

Instalação do PCBSD 10.3

0

 

PC-BSD é um sistema operacional Desktop baseado no FreeBSD.
Ao invés do usuário ter que baixar e configurar o seu próprio ambiente de trabalho o que pode ser demorado.
O PCBSD visa tornar a experiência FreeBSD fácil e viável para o usuário médio “casual”
Neste tutorial, vamos instalar o PCBSD 10.3.
Passo 1 – Transferir.
Clique Aqui para obter o PCBSD.

Passo 2 – Comece o Instalar.

Instalação do FreeBSD 10.3

0

FreeBSD é um dos mais antigos e bem sucedidos projetos.
Certamente pela confiabilidade, robustez e desempenho do sistema.

Neste tutorial, vou instalar o FreeBSD 10.3 e depois instalar um ambiente Gráfico. (XFCE KDE Gnome).

Passo 1 – Transferir.

Clique no link https://www.freebsd.org/ para obter o FreeBSD.
clique em sua arquitetura no FreeBSD 10.3 Se você tem uma máquina de 64 bits ou uma máquina com processador Intel / AMD de 64 bits, escolha amd64. O ia64 é para processadores baseados em Itanium.

Se você tem uma máquina de 32 bits ou uma máquina
com um processador Intel / AMD de 32 bits, escolha
o i386. A maioria das máquinas mais velhas e laptops
irá utilizar esta versão.

Para usuários de Mac com processadores
baseados em Power-PC, escolher o Power-PC apropriado
(32-bit) ou PowerPC64 (64-bit) download.

O sparc64 é para processadores baseados em SPARC,
comumente usados em máquinas Sun / Oracle.

Passo 2 – Comece o Instalar.

SQUID PROXY COM INTERCEPTAÇÃO HTTPS

0
Squid_logo

Boa pessoal, estamos sumidos, na verdade eu ando muito desanimado com qualquer coisa e há tempos desejava criar novos tutoriais e videos, porém, os problemas de saúde e outros acabam por deixar o nosso tempo pouco. Não bastasse, o desgaste é bem desanimador.
Mas sem continuar falando de coisa triste, vamos ao que interessa: Squid proxy interceptando trafego https.

É  uma solução para o controle em ambientes onde existe a real necessidade de controlar acesso, filtrar buscas por palavras e até mesmo impor restrições de segurança. Claro, o proxy por si só não irá proteger sua rede, até porque em grande parte, os problemas são causados quando existe fragilidade no elo mais fraco, o usuario! Contudo, filtrar sites com conteúdo adulto, pirataria, redes sociais já pode desafogar um pouco do consumo de banda, além claro de possibilitar a analise de sites mais visitados, possibilitar algum cache e bloquear o tik tok(brincadeira – o nft seria mais indicado).
Bom, sem mais, vamos ao que interessa…

Para este tutorial eu usei o slackware 15 por rodar bem no hardware qual tenho hoje como gateway, uma c847 com duas portas ethernet de 1Gbps. Portanto, para outras distribuições esse processo poder ter variação de local de arquivos ou binarios(Exceto o diretorio do squid). O diretorio do squid se localiza nas distribuições linux mais conhecidas em “/etc” .

No nosso caso, o primeiro passo é instalar o pacote do squid, e caso você não o tenha instalado, então sugiro que o faça via sbopkg.
Para instalar o sbopkg você pode consultar mais informações em https://sbopkg.org .
Mas para facilitar sua vida, abra um terminal e como root ou usando sudo faça:

cd /tmp && wget https://github.com/sbopkg/sbopkg/releases/download/0.38.2/sbopkg-0.38.2.tar.gz

Após o download, faça um dos dois procedimentos, o primeiro instala e o segundo é update:

installpkg sbopkg-version-noarch-1_wsr.tgz

ou

upgradepkg sbopkg-version-noarch-1_wsr.tgz

Depois, rode o sbopk, entre na opção sync e aguarde…
Logo após, vá em search, digite squid e escolha a opção string.
Selecione o squid, selecione OK e pressione a tecla “P” ou vá até ‘process’ e de enter.
Ele vai processar a fila, baixar, compilar e instalar o pacote.

Essa é a etapa mais demorada, na minha humilde plaquinha foram quase uma hora(dual core de 1.1ghz).

Após todo processo, vá para o diretorio do squi que fica localizado em /etc;

cd /etc/squid

Faça um backup do squid.conf

cp squid.conf squid.conf.o

Crie o diretorio de politicas ou como desejar dentro do diretorio do squid, esse diretorio armazenará os arquivos com as politicas de ‘acl’, portanto, é interessante que ele fique neste diretorio até por questões de organização.

mkdir -p /etc/squid/politicas

Crie o diretorio para gerarmos nossos arquivos de certificados:
mkdir -p /etc/squid/certs

Use o seu editor de texto preferido e faça as alterações que considerar necessarias(o objetivo aqui é abordar a geração de certificados e do banco de dados ssl).
Um squid.conf que talvez possa ajudar:

acl localnet src 10.0.0.0/8 # RFC1918
acl localnet src 172.16.0.0/12 # RFC1918
acl localnet src 192.168.0.0/16 # RFC1918
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
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 allowed dstdomain .whatsapp.com:5222 .whatsapp.com:443
http_access allow allowed
acl blockkeyword url_regex -i "/etc/squid/politicas/palavras-bloqueadas.acl"
acl localnetsites dstdomain "/etc/squid/politicas/dominios-liberados.acl"
acl blockeddomain dstdomain "/etc/squid/politicas/dominios-bloqueados.acl"
acl bypass_caching dstdomain "/etc/squid/politicas/sites_fora_proxy.acl"
cache deny bypass_caching
http_access deny blockeddomain
acl myports port "/etc/squid/politicas/portas.liberadas.acl"
acl myaddrs dst "/etc/squid/politicas/ips.liberados.acl"
http_access allow myports myaddrs
acl CONNECT method CONNECT
http_access allow manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny blockkeyword
http_access allow localhost
http_access allow localnet
http_access allow localhost
http_access deny all
http_port 3128 ssl-bump \
cert=/etc/squid/certs/squid-ca-cert-key.pem \
generate-host-certificates=on dynamic_cert_mem_cache_size=16MB
https_port 3129 intercept ssl-bump \
cert=/etc/squid/certs/squid-ca-cert-key.pem \
generate-host-certificates=on dynamic_cert_mem_cache_size=16MB
sslcrtd_program /usr/libexec/security_file_certgen -s /var/lib/ssl_db -M 16MB
acl splice_it ssl::server_name "/etc/squid/politicas/fora-proxy-cache.acl"
acl splice_local ssl::server_name "/etc/squid/politicas/dominios-locais-fora-proxy.acl"
acl step1 at_step SslBump1
ssl_bump peek step1
ssl_bump splice splice_it
ssl_bump splice splice_local
ssl_bump bump all
visible_hostname NOME_DA_MAQUINA
coredump_dir /var/spool/squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
pid_filename /var/run/squid/squid.pid
cache_effective_user nobody
cache_effective_group nobody
cache deny localnetsites

Crie seus arquivos de politicas e regras acl, lembrando de substituir a localização das acl acima pelas suas ou de criar as acls informadas no squid.conf.
Agora vamos da uma olhada nas seguintes linhas, as mesmas estão destacadas no squid.conf acima:

http_port 3128 ssl-bump \
cert=/etc/squid/certs/squid-ca-cert-key.pem \
generate-host-certificates=on dynamic_cert_mem_cache_size=16MB
https_port 3129 intercept ssl-bump \
cert=/etc/squid/certs/squid-ca-cert-key.pem \
generate-host-certificates=on dynamic_cert_mem_cache_size=16MB
sslcrtd_program /usr/libexec/security_file_certgen -s /var/lib/ssl_db -M 16MB

Elas definem o local onde iremos  armazenar o certificado que criaremos em seguida. Este certificado será usado para importarmos nas maquinas que terão o squid como proxy.

No caso acima, definimos esse diretorio como “/etc/squid/certs” e a ultima linha:
sslcrtd_program /usr/libexec/security_file_certgen -s /var/lib/ssl_db -M 16MB
Se refere ao local do banco de dados de certificados setados no squid.conf.
Com essa breve configuração e squid parado, vamos gerar os nossos certificados:
cd /etc/squid/certs

E, agora usando o openssl, geramos nossos dois arquivos; Um certificado e uma chave privada.

~#openssl req -new -newkey rsa:2048 -sha256 -days 365 -nodes -x509 -extensions v3_ca -keyout squid-ca-key.pem -out squid-ca-cert.pem

Vamos usar o cat para pegar o conteúdo dos dois arquivos e redirecionar para um outro, no caso o arquivo que conterá tanto o nosso certificado quanto nossa private key:
~# cat squid-ca-cert.pem squid-ca-key.pem >> squid-ca-cert-key.pem

O arquivo acima, em destaque é o que iremos transferir para as maquinas clientes do squid.
Vamos aproveitar e gerar/inicializar  a base de dados de certificados:
~# /usr/libexec/security_file_certgen -c -s /var/lib/ssl_db -M 16MB

Na antepenúltima e penúltima linha nós temos o seguinte:

cache_effective_user nobody
cache_effective_group nobody

Essas duas linhas acimas representam para o cache o usuario e grupo, ou seja, as permissões de usuario e grupo que serão utilizadas. Aproveitamos e atribuimos essas permissões para o diretorio do squid e tudo que nele tiver presente.
~# chow -R nobody:nobody /etc/squid
Desta forma estamos aplicando as permissões para que o squid funcione sem problemas

Outras permissões para outros diretorios podem ser necessarias, experimente rodar ~#squid -k parse, leia as informações de log e veja se suas permissões estão corretas, caso necessario, aplique as permissões para nobody e restarte o serviço.
Após estes passos, bem provavel que tudo funcione, mesmo que com alertas sobre as acls(crie as acls).

Bom pessoal, como o intuito era vermos a parte do ssl, acredito que o tutorial se alongou até demais. De qualquer forma, se ainda tiver duvidas, comente ai.

Referencias
-> https://elatov.github.io/2019/01/using-squid-to-proxy-ssl-sites/
-> https://wiki.squid-cache.org/Features/DynamicSslCert

RFC 1918
-> https://www.rfc-editor.org/rfc/rfc1918.html