Tagcentos

Configurar IP estático no RHEL/CentOS

Olá pessoal! Esse post foi criado, vendo a necessidade de muitas vezes após realizar uma nova instalação do RHEL/CentOS ter que alterar a configuração de endereçamento da interface de rede de DHCP para estático, ou vice-versa.

Iremos alterar o arquivo de configuração da interface de rede que pretendemos ajustar as configurações. Vamos utilizar o comando “ifconfig” para listar a devida interface de rede.

# ifconfig
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.10.10.15 netmask 255.255.255.0 broadcast 10.151.53.255
inet6 fe80::a00:27ff:fe04:dfb7 prefixlen 64 scopeid 0x20<link>
ether 08:00:27:04:df:b7 txqueuelen 1000 (Ethernet)
RX packets 12078 bytes 10297389 (9.8 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 7143 bytes 556064 (543.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Loopback Local)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Neste caso irei utilizar a interface “enp0s3”, então vamos alterar o arquivo “/etc/sysconfig/network-scripts/ifcfg-enp0s3”

# vim /etc/sysconfig/network-scripts/ifcfg-enp0s3
HWADDR=08:00:27:04:DF:B7
TYPE=Ethernet
#BOOTPROTO=dhcp
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
#IPV6INIT=yes
#IPV6_AUTOCONF=yes
#IPV6_DEFROUTE=yes
#IPV6_PEERDNS=yes
#IPV6_PEERROUTES=yes
#IPV6_FAILURE_FATAL=no
NAME=enp0s3
UUID=dbff828b-f8ac-4052-872f-cc8f1a02679a
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.10.10.15
NETMASK=255.255.255.0
GATEWAY=10.10.10.1

As linhas de IPv6 (IPV6INIT, IPV6_AUTOCONF, IPV6_DEFROUTE, IPV6_PEERDNS, IPV6_PEERROUTES, IPV6_FAILURE_FATAL) foram comentadas pois não irei utilizar endereçamento IPv6. A linha “BOOTPROTO=dhcp” foi comentada e criada uma nova entrada “BOOTPROTO=” com o valor “static” (também pode ser utilizado o valor none) para informarmos que a interface irá utilizar endereçamento estático, sendo necessário adicionar as respectivas linhas “IPADDR”, “NETMASK” e “GATEWAY”.

Feito isso salve o arquivo e reinicie o serviço de rede

No RHEL/CentOS 6.x

# service network restart

No RHEL/CentOS 7.x

# systemctl restart network.service

Para reiniciar somente a interface de rede

# ifdown enp0s3 && ifup enp0s3

Caso ocorra algum erro para resolução de nomes de domínio, adicione os servidores DNS da sua empresa ou o de sua preferência no arquivo “resolv.conf” conforme abaixo.

# vim /etc/resolv.conf
# Generated by NetworkManager
nameserver 10.10.10.1
nameserver 10.10.10.2

Pronto! Dessa forma temos nosso IP configurado de forma estática, caso queira alterar para DHCP, basta reverter o processo.

Utilizando Certificados Digitais e SSL no apache

Visão Geral do SSL e de Certificados Digitais

O SSL oferece conexões seguras permitindo que, para dois aplicativos que estão se conectando por meio de uma rede, cada aplicativo faça a autenticação da identidade do outro aplicativo. Além disso, o SSL fornece a criptografia dos dados trocados entre esses aplicativos. A autenticação permite que um servidor (unidirecional) e, opcionalmente, um cliente (bidirecional) verifiquem a identidade do aplicativo na outra extremidade de uma conexão de rede. A criptografia faz com que os dados transmitidos pela rede possam ser compreendidos apenas pelo destinatário planejado.

Os recursos do SSL incluem os seguintes conceitos:

  • O SSL oferece um mecanismo para que um aplicativo se autentique em outro aplicativo.
  • O SSL unidirecional permite que um aplicativo saiba exatamente a identidade do outro aplicativo.
  • O SSL bidirecional (autenticação mútua) permite que ambos os aplicativos saibam exatamente a identidade do outro.
  • O aplicativo que assume a função de “servidor” possui e utiliza um certificado de servidor para comprovar sua identidade ao aplicativo cliente.
  • Em uma autenticação mútua, o aplicativo que assume a função de “cliente” possui e utiliza um certificado de cliente para comprovar sua identidade ao aplicativo servidor.
  • O aplicativo que recebe um certificado deve possuir o certificado raiz (ou a cadeia de certificado) de CA (Autoridade de Certificação) que assinou esse certificado que está sendo apresentado. O certificado raiz, ou a cadeia, de CA valida o certificado que está sendo apresentado.
  • Em conexões de clientes, o navegador cliente alerta o usuário quando recebe um certificado que não foi emitido por uma Autoridade de Certificação reconhecida.

Compreendendo Chaves Privadas e Certificados Digitais

Chaves privadas, certificados digitais e Autoridades de Certificação confiáveis podem ser utilizadas para estabelecer e verificar a identidade de aplicativos de rede.

O SSL utiliza tecnologia de criptografia de chave pública para autenticação. Na criptografia de chave pública, uma chave pública e uma chave privada são geradas para um aplicativo. As chaves são relacionadas de tal forma que os dados criptografados com a chave pública podem ser decriptografados somente utilizando a chave privada correspondente. De maneira similar, os dados criptografados com a chave chave privada podem ser decriptografados somente utilizando a chave pública correspondente. A chave privada é cuidadosamente protegida, de forma que apenas o proprietário possa decriptografar as mensagens criptografadas utilizando a chave pública.

A chave pública está incorporada a um certificado digital com informações adicionais que descrevem o proprietário da chave pública, como nome, endereço e endereço de e-mail. Uma chave privada e um certificado digital fornecem a identidade para o aplicativo.

Os dados incorporados em um certificado digital são verificados por uma CA confiável e assinados digitalmente com o certificado digital da Autoridade de Certificação. As Autoridades de Certificação conhecidas incluem Verisign eEntrust.net. Uma Autoridade de Certificação confiável estabelece confiança para um aplicativo.

Um aplicativo que participa de uma conexão SSL é autenticado quando a outra parte avalia e aceita os respectivos certificados digitais. Um certificado digital utilizado para autenticação é validado por um certificado de CA raiz associado, localizado na aplicação de recepção.

Navegadores da Web, servidores e outros aplicativos ativados por SSL geralmente aceitam como verdadeiro qualquer certificado digital que seja assinado por uma Autoridade de Certificação confiável e seja válido. Por exemplo, um certificado digital pode ser invalidado porque expirou ou porque o certificado digital da Autoridade de Certificação utilizada para assiná-lo expirou. Um certificado de servidor poderá ser invalidado se o nome do host no certificado digital do servidor não corresponder ao nome do host especificado pelo cliente.

Irei mostrar três formas para gerar certificados SSL para o seu servidor. Você poderá utilizar um certificado auto-assinado (uma forma mais rápida, fácil, porém limitada), um certificado assinado através da CA, que poderá ser gerenciada por você mesmo (uma forma mais segura e confiável), ou usando um certificado de uma CA reconhecida (neste exemplo utilizarei o “cacert.org”, pois eles assinam seus certificados e fornecem um certificado com o objetivo de ser usado em muitos projetos de software livre).

Geralmente o mod_ssl vem junto com o pacote principal do Apache. Nas distribuições derivadas do debian é necessário somente ativar o módulo.

# a2enmod ssl

Vamos recarregar o serviço para que as alterações sejam aplicadas

# /etc/init.d/apache2 force-reload

No caso das distribuições derivadas do RHEL, como o CentOS, vamos verificar se o “mod_ssl” está instalado e ativar no apache.

# rpm -qa | grep mod_ssl

Vamos instalar o módulo e recarregar as configurações.

# yum install mod_ssl
# httpd -kgraceful

Após instalação do mod_ssl, automaticamente é criado o arquivo de configuração ssl.conf dentro do diretório “/etc/httpd/conf.d”

1 – Gerando um certificado auto-assinado

Gerar a chave privada com 2048 bits

$ cd /etc/pki/tls/certs
# openssl genrsa -out servidor.key 2048

Gerar o certificado auto-assinado

# openssl req -outform PEM -new -key servidor.key -x509 -days 1825 -out servidor.crt
Country Name (2 letter code) [XX]:BR
State or Province Name (full name) []:Ceara
Locality Name (eg, city) [Default City]:Fortaleza
Organization Name (eg, company) [Default Company Ltd]:Café com Linux
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:www.cafecomlinux.com.br
Email Address []:neto@cafecomlinux.com.br

Responda as perguntas conforme as informações de seu site. O campo “Common Name” deverá ser preenchido com as informações do hostname, os campos “Organizational Unit Name” e “Email” não são obrigatórios, porém darão mais informações ao certificado que será gerado.

Copie a chave privada para o respectivo diretório

# cp servidor.key /etc/pki/tls/private

O conteúdo abaixo deverá ser inserido no arquivo de configuração de ssl do seu servidor apache ou nas configurações do virtualhost de seu site

SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite DEFAULT:!EXP:!SSLv2:!DES:!IDEA:!SEED:+3DES
SSLCertificateFile /etc/pki/tls/certs/servidor.crt
SSLCertificateKeyFile /etc/pki/tls/private/servidor.key

2 – Gerando um certificado assinado através da sua CA

Nesse exemplo, irei utilizar dois servidores, o servidor que será assinado pela CA e o servidor responsável pela CA.

Vamos criar um diretório para a chave privada e certificado da CA

# mkdir /etc/pki/tls/certs/CA

Gerar a chave privada com 2048 bits da CA

$ cd /etc/pki/tls/certs/CA
# openssl genrsa -des3 -out cacert.key 2048
Enter pass phrase for cacert.key:
Verifying - Enter pass phrase for cacert.key:

Gerar o certificado auto-assinado da CA com validade de 10 anos

# openssl req -new -x509 -days 3650 -key cacert.key -out cacert.pem 
Country Name (2 letter code) [XX]:BR
State or Province Name (full name) []:Ceara
Locality Name (eg, city) [Default City]:Fortaleza
Organization Name (eg, company) [Default Company Ltd]:Café com Linux
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:www.cafecomlinux.com.br
Email Address []:neto@cafecomlinux.com.br

Responda as perguntas conforme as informações de seu site. O campo “Common Name” deverá ser preenchido com as informações do hostname, os campos “Organizational Unit Name” e “Email” não são obrigatórios, porém darão mais informações ao certificado que será gerado.

Agora iremos criar a chave privada do servidor que será assinado pela CA

# openssl genrsa -out servidor.key 2048

Gerar a requisição de certificado do servidor que será assinado pela CA

# openssl req -new -key servidor.key -out servidor.csr
Country Name (2 letter code) [XX]:BR
State or Province Name (full name) []:Ceara
Locality Name (eg, city) [Default City]:Fortaleza
Organization Name (eg, company) [Default Company Ltd]:Café com Linux
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:www.cafecomlinux.com.br
Email Address []:neto@cafecomlinux.com.br

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Novamente responda as perguntas conforme as informações de seu site. O campo “Common Name” deverá ser preenchido com as informações do hostname, os campos “Organizational Unit Name”, “Email”, “A challenge password” e “An optional company name” não são obrigatórios, porém darão mais informações ao certificado que será gerado.

Vamos assinar o certificado do seu servidor pela CA com validade de 10 anos

# openssl x509 -req -in servidor.csr -out servidor.crt -sha1 -CA cacert.pem -CAkey cacert.key -CAcreateserial -days 3650

O conteúdo abaixo deverá ser inserido no arquivo de configuração de ssl do seu servidor apache ou nas configurações do virtualhost de seu site

SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite DEFAULT:!EXP:!SSLv2:!DES:!IDEA:!SEED:+3DES
SSLCertificateFile /etc/pki/tls/certs/CA/servidor.crt
SSLCertificateKeyFile /etc/pki/tls/certs/CA/servidor.key
SSLCACertificateFile /etc/pki/tls/certs/CA/cacert.pem

Para o navegador de internet e aplicações clientes que utilizarão ssl, se faz necessário importar ou copiar o arquivo “cacert.pem” para seus respectivos diretórios.

3 – Usando um certificado de uma CA reconhecida”

Gerar a chave privada com 2048 bits

$ cd /etc/pki/tls/certs
# openssl genrsa -out servidor.key 2048

Gerar a requisição de certificado do servidor que será assinado pela CA

# openssl req -new -key servidor.key -out servidor.csr
Country Name (2 letter code) [XX]:BR
State or Province Name (full name) []:Ceara
Locality Name (eg, city) [Default City]:Fortaleza
Organization Name (eg, company) [Default Company Ltd]:Café com Linux
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:www.cafecomlinux.com.br
Email Address []:neto@cafecomlinux.com.br

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Responda as perguntas conforme as informações de seu site. O campo “Common Name” deverá ser preenchido com as informações do hostname, os campos “Organizational Unit Name”, “Email”, “A challenge password” e “An optional company name” não são obrigatórios, porém darão mais informações ao certificado que será gerado.

Copie a chave privada para o respectivo diretório

# cp servidor.key /etc/pki/tls/private

Agora vamos colar conteúdo do arquivo servidor.csr no site da CA que será gerado o certificado (https://www.cacert.org/account.php?id=10) e após receber e-mail com resposta, vamos copiar o cetificado “.crt” gerado pela CA para o servidor web

# cp servidor.crt /etc/pki/tls/certs/servidor.crt

Vamos baixar o certificado CACERT’s root certificate e renomear para “cacert.pem”. Este certificado será utilizado tanto pelo servidor web quanto pelos clientes.

O conteúdo abaixo deverá ser inserido no arquivo de configuração de ssl do seu servidor apache ou nas configurações do virtualhost de seu site

SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite DEFAULT:!EXP:!SSLv2:!DES:!IDEA:!SEED:+3DES
SSLCertificateFile /etc/pki/tls/certs/servidor.crt
SSLCertificateKeyFile /etc/pki/tls/private/servidor.key
SSLCACertificateFile /etc/pki/tls/certs/cacert.pem

Para o navegador de internet e aplicações clientes que utilizarão ssl, se faz necessário importar ou copiar o arquivo “cacert.pem” para seus respectivos diretórios.

Com o openssl podemos obter algumas informações através dos certificados gerados, abaixo seguem alguns exemplos de comandos:

Informação geral do certificado

# openssl x509 -in cacert.pem -noout -text

Informação sobre datas de criação e expiração

# openssl x509 -in cacert.pem -noout -dates

Informação da finalidade do certificado

# openssl x509 -in cacert.pem -noout -purpose

Instalação do OCS Inventory RHEL/CentOS 6.x

Pré-requisitos para instalação do OCS Inventory NG
– Apache 1.3.33 ou superior;
– Mod_perl 1.29 ou superior;
– Mod_php 4.3.2 ou superior;
– PHP 4.3.2 ou superior com suporte a ZIP e GD habilitados;
– PERL 5.6 ou superior;
– Perl module XML::Simple versão 2.12 ou superior;
– Perl module Compress::Zlib versão 1.33 ou superior;
– Perl module DBI versão 1.40 ou superior;
– Perl module DBD::Mysql versão 2.9004 ou superior;
– Perl module Apache::DBI versão 0.93 ou superior;
– Perl module Net::IP versão 1.21 ou superior;
– Perl module SOAP::Lite versão 0.66 ou superior (opcional);
– MySQL 4.1.0 ou superior com engine InnoDB habilitada;

Para instalar o MySQL, pode ser utilizado o meu post anterior clicando aqui.

Os pacotes do ocs não vêm nos repositórios padrão do RHEL/CentOS. Iremos instalar a versão 2.1.2 do ocs, pois já traz bastante melhoria de recursos comparada à versões anteriores, para isso vamos instalar o epel e o remi como repositório adicional.

# yum install epel-release
# wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
# rpm -Uvh remi-release-6*.rpm

O yum resolverá todas dependências informadas no início do post. Vamos instalar o OCS Inventory habilitando o uso do remi.

# yum --enablerepo=remi install ocsinventory

Vamos liberar o acesso ao apache e ao mysql nas portas 80 e 3306 pelo iptables

# iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
# iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

E deixar o SElinux no modo permissivo

# vim /etc/selinux/config
SELINUX=permissive

Vamos criar o banco de dados “ocsweb”, criar o usuário “ocs” e dar acesso ao banco.

# mysql -u root -p
CREATE DATABASE ocsweb;
GRANT ALL PRIVILEGES ON ocsweb.* to ocs@localhost IDENTIFIED BY 'senha';
FLUSH PRIVILEGES;
QUIT

Vamos agora checar se será necessário realizar alguma alteração nas informações do banco instalado

# vim /etc/httpd/conf.d/ocsinventory-server.conf
# Master Database settings
  # Replace localhost by hostname or ip of MySQL server for WRITE
  PerlSetEnv OCS_DB_HOST localhost
  # Replace 3306 by port where running MySQL server, generally 3306
  PerlSetEnv OCS_DB_PORT 3306
  # Name of database
  PerlSetEnv OCS_DB_NAME ocsweb //verifique se é o nome do banco que foi criado
  PerlSetEnv OCS_DB_LOCAL ocsweb //verifique se é o nome do banco que foi criado
  # User allowed to connect to database
  PerlSetEnv OCS_DB_USER ocs //verifique se é o nome do usuário do banco com permissões
  # Password for user
  PerlSetVar OCS_DB_PWD ocs //altere para a senha definida

Vamos iniciar o serviço httpd

# /etc/init.d/httpd start

Define a inicialização do httpd nos níveis padrão de inicialização do sistema

# chkconfig http on

Acesse o endereço “http://ip-do-servidor/ocsreports/install.php” e preencha conforme abaixo

ocs_database

Ao clicar em send, será executado o script install.php que realizará a configuração do banco de dados do OCS Inventory.
Acesse o endereço “http://ip-do-servidor/ocsreports” para acessar o OCS Inventory e use as credenciais abaixo

User: admin
Password: admin

ocs_home

Após o login, poderão aparecer alertas na tela informando que o script install.php está presente no servidor, conforme imagem acima. O usuário e senha do banco e da interface web de administração estão definidos como padrão. Altere as senhas no banco de dados e na interface web de administração e apague o script conforme abaixo.

# rm -f /usr/share/ocsinventory-reports/ocsreports/install.php

Pronto. O serviço do OCS Inventory está instalado, configurado, executando e aguardando por novos inventários, instale o agente na sua estação e verifique!

Fonte:
Wiki OCS Inventory NG

Instalação e configuração inicial MySQL no RHEL/CentOS 6.x

O repositório padrão do CentOS não dispõe de versões mais recentes do MySQL. No caso da necessidade de uma versão mais atual que ofereça novos recursos adicionados, costumo sempre utilizar o repositório epel com o remi como repositório adicional.

# yum install epel-release
# wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
# rpm -Uvh remi-release-6*.rpm

Vamos instalar o serviço mysqld no nosso servidor. Com o yum, iremos habilitar o uso do remi (por padrão é desabilitado) e adquirir as informações de versão do pacote a ser instalado.

# yum --enablerepo=remi info mysql-server.x86_64
Plugins carregados: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.gtdinternet.com
 * epel: epel.gtdinternet.com
 * extras: centos.ufes.br
 * remi: mirror.cedia.org.ec
 * remi-safe: mirror.cedia.org.ec
 * updates: mirror.gtdinternet.com
Pacotes disponíveis
Name        : mysql-server
Arch        : x86_64
Version     : 5.5.48
Release     : 1.el6.remi
Size        : 10 M
Repo        : remi
Summary     : The MySQL server and related files
URL         : http://www.mysql.com
License     : GPLv2 with exceptions and LGPLv2 and BSD
Descrição : MySQL is a multi-user, multi-threaded SQL database server. MySQL is
          : a client/server implementation consisting of a server daemon
          : (mysqld) and many different client programs and libraries. This
          : package contains the MySQL server and some accompanying files and
          : directories.

A versão que iremos utilizar será a 5.5.48 do mysql-server conforme exibido acima.

# yum --enablerepo=remi install mysql mysql-server -y

Após a instalação vamos iniciar o serviço mysqld

# /etc/init.d/mysqld start

Define a inicialização do mysqld nos níveis padrão de inicialização do sistema

# chkconfig mysqld on

Após inicialização do banco, iremos definir a senha de root. Existem duas formas, através do comando “mysqladmin” ou executando o script “mysql_secure_installation”. Irei a seguir mostrar das duas formas.
Com o comando “mysqladmin”, basta informar a nova senha conforme abaixo.

# mysqladmin -u root password 'nova_senha'

Utilizando o script “mysql_secure_installation” será feita uma configuração básica do servidor

# mysql_secure_installation
Enter current password for root (enter for none): //pressione enter no caso de não existir senha ainda
Set root password? [Y/n] //pressione enter para definir a senha de root do servidor MySQL
New password: //insira a senha de root do servidor MySQL
Re-enter new password: //repita a senha de root do servidor MySQL
Remove anonymous users? [Y/n] //pressione enter para remover o acesso de usuários anônimos
Disallow root login remotely? [Y/n] //pressione enter para remover o acesso remoto do root
Remove test database and access to it? [Y/n] //pressione enter para remover a tabela test e seus acessos
Reload privilege tables now? [Y/n] //pressione enter para recarregar os privilégios das tabelas

O servidor MySQL já está instalado e configurado com o básico. Espero ter ajudado

Ativar a interface de rede onboot no RHEL/CentOS 6.x e 7.x

Bom, há um bom tempo atrás na minha primeira instalação com imagem minimal do CentOS, perdi um pouquinho de tempo para habilitar a interface de rede no meu servidor no boot, resolvi então criar esse post para ajudar um pouco à quem necessite desta dica.

A opção “ONBOOT” vem desabilitada por padrão a partir da versão 6 do RHEL/CentOS, imagino eu que por razões de segurança. Porém, mesmo em versões minimal existe a possibilidade de habilitar a interface automaticamente durante a instalação, na opção “Configurar Rede”, “Editar” e marcando a opção “Conectar automaticamente”, conforme a imagem abaixo.

tela_instalação_rede_centos

Mas enfim, para você que não ficou atento durante a instalação, basta alterar no arquivo de configuração de interface a opção “ONBOOT” de no para yes

# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=08:00:27:0C:E6:46
TYPE=Ethernet
UUID=f7896960-2870-4dba-821c-d78f8f1ff38a
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp

Após a alteração, basta reiniciar o serviço de rede e se você tiver um servidor dhcp configurado na rede, a interface já irá receber um novo endereço de IP.

No RHEL/CentOS 6.x

# service network restart

No RHEL/CentOS 7.x

# systemctl restart network.service

Adicionar usuário no arquivo sudoers

Olá pessoal, venho aqui mais uma vez trazendo uma pequena dica, mas muito útil. Você já chegou a instalar o seu sistema operacional, independente da distribuição e quando foi executar algum comando como sudo ou até mesmo se autenticar como sudo e recebeu a mensagem “usuario não está no arquivo sudoers. Este incidente será relatado.”. Bom irei mostrar abaixo como resolver de forma bem simples e definitiva.

Existem duas formas de realizar o procedimento. Adicionando uma linha no arquivo “/etc/sudoers” ou criando um arquivo dentro de “/etc/sudoers.d/”. No meu caso, irei criar um arquivo com o nome do meu usuário dentro de “/etc/sudoers.d”.

Verifique se existe a linha “#includedir /etc/sudoers.d” no arquivo “/etc/sudoers”. Caso não exista, adicione ela no arquivo.

Iremos criar o arquivo “user” dentro de “/etc/sudoers.d”

# echo 'user     ALL=(ALL)     ALL' > /etc/sudoers.d/user

Pronto. Feito isso, basta verificarmos logando como sudo e obtendo o resultado abaixo

# sudo -i
Presumimos que você recebeu as instruções de sempre do administrador
de sistema local. Basicamente, resume-se a estas três coisas:

    #1) Respeite a privacidade dos outros.
    #2) Pense antes de digitar.
    #3) Com grandes poderes vêm grandes responsabilidades.

[sudo] password for user: 

VirtualBox 5 no Fedora/CentOS/RHEL

Olá pessoal, hoje irei apresentar um pequeno tutorial para realizar a instalação do Oracle VirtualBox no Fedora 23/22/21/20/19/18, RHEL/CentOS 7/6/5.

O VirtualBox é uma ótima ferramenta para virtualização com um maior uso doméstico e educacional, por possuir uma grande facilidade de instalação em sistemas operacionais “hospedeiros” voltados para o usuário final.

Inicialmente vamos adicionar o repositório de arquivos do VirtualBox

$ cd /etc/yum.repos.d/

Fedora 23/22/21/20/19/18/17/16/15/14/13/12

# wget http://download.virtualbox.org/virtualbox/rpm/fedora/virtualbox.repo

RHEL/CentOS 7/6/5

# wget http://download.virtualbox.org/virtualbox/rpm/rhel/virtualbox.repo

Vamos atualizar o nosso repositório e checar a nossa versão do Kernel

# yum update
$ uname -r

No caso do RHEL/CentOS é necessário instalar o pacote do repositório epel. Faremos isso com os comandos abaixo.
RHEL/CentOS 7

# rpm -Uvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm

RHEL/CentOS 6

# rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

RHEL/CentOS 5

# rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm

Vamos instalar as dependências abaixo necessárias.
Fedora 23/22

# yum install binutils gcc make patch libgomp glibc-headers glibc-devel kernel-headers kernel-devel dkms

Fedora 21/20/19/18/17/16/15/14 e RHEL/CentOS 7/6/5

# yum install binutils gcc make patch libgomp glibc-headers glibc-devel kernel-headers kernel-devel dkms

Vamos buscar e instalar a última versão do VirtualBox

# yum search VirtualBox
Last metadata expiration check performed 0:24:27 ago on Wed Dec  2 20:45:19 2015.
=========================== N/S Matched: VirtualBox ============================
VirtualBox-4.3.x86_64 : Oracle VM VirtualBox
VirtualBox-5.0.x86_64 : Oracle VM VirtualBox
libvirt-daemon-driver-vbox.x86_64 : VirtualBox driver plugin for the libvirtd
                                  : daemon
RemoteBox.noarch : Open Source VirtualBox Client with Remote Management
libvirt-daemon-vbox.x86_64 : Server side daemon & driver required to run
                           : VirtualBox guests
# yum install VirtualBox-5.0.x86_64

Vamos executar o comando abaixo para recriar os módulos do kernel.
Fedora 23/22/21/20/19 e RHEL/CentOS 7

# /usr/lib/virtualbox/vboxdrv.sh setup

Fedora 18/17/16/15/14 e RHEL/CentOS 6/5

# /etc/init.d/vboxdrv setup

Ou

# service vboxdrv setup

Vamos adicionar o usuário no grupo “vboxusers” criado automaticamente pela instalação.

# usermod -a -G vboxusers "usuário"

Em alguns casos você poderá ter problemas com o parâmetro “KERN_DIR”, então iremos setar este parâmetro manualmente.
Utilizando o Kernel atual no Fedora

# KERN_DIR=/usr/src/kernels/`uname -r`

Utilizando o Kernel atual no RHEL/CentOS

# KERN_DIR=/usr/src/kernels/`uname -r`-`uname -m`

Exportar KERN_DIR

# export KERN_DIR

Pronto! Feito isso, o nosso Oracle VirtualBox está instalado e funcionando corretamente. Agora vamos testar.

Ativar mod_rewrite apache

Olá a todos! Após passar por um pequeno problema ao criar links permanentes no meu blog, resolvi criar este post em 4 etapas para mostrar como fazer para habilitar o “mod_rewrite”, assim possibilitando a rescrita de url.

Verificar se o “mod_rewrite” está sendo carregado pelo apache

Vamos criar um arquivo “phpinfo.php” na raiz do nosso website, no meu caso “/var/www/wordpress”.

# vim /var/www/wordpress/phpinfo.php
<?php
phpinfo();
?>

Vamos agora acessar a página “http://ip_do_host/phpinfo.php” e localize “mod_rewrite” para confirmar que ele está ativo.

sem_mod_rewrite

Ativar “mod_rewrite”

Se não estiver ativo, caso você utilize uma distribuição derivada RHEL, iremos editar o arquivo “/etc/httpd/conf.modules.d/00-base.conf” e inserir a linha conforme abaixo.

# vim /etc/httpd/conf.modules.d/00-base.conf
LoadModule rewrite_module modules/mod_rewrite.so

Caso você esteja utilizando o Debian ou uma distribuição derivada, basta utilizar o comando abaixo e reiniciar o serviço do apache.

# a2enmod rewrite
# service apache2 restart

Vamos novamente acessar a página “http://ip_do_host/phpinfo.php” e localizar “mod_rewrite” para confirmar que ele está ativo.

com_mod_rewrite

Ativar o “AllowOverride”

Após ativar o módulo, será necessário Ativar o “AllowOverride” para o seu site. Edite o arquivo “httpd.conf”

# vim /etc/httpd/conf/httpd.conf

Caso você esteja utilizando o Debian ou uma distribuição derivada, edite o arquivo “apache2.conf”

# vim /etc/apache2/sites-available/000-default.conf

Localize a linha “DocumentRoot /var/www/wordpress” e altere ou adicione o conteúdo conforme abaixo

<Directory "/var/www/wordpress">
    Options FollowSymLinks
    AllowOverride All
</Directory>

Alterar as regras do “mod_rewrite”

Vamos criar um arquivo “.htaccess” na raiz do nosso site “/var/www/wordpress” para alterar as regras de escrita. As regras “.htaccess” mudam para vários sites, mas irei disponibilizar as regras do meu arquivo que servirá para finalidade didática e prática para quem usa wordpress.

# vim /var/www/wordpress/.htaccess
<IfModule mod_rewrite.c>
   RewriteEngine On
   RewriteBase /
   RewriteRule ^index\.php$ - [L]
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteRule . /index.php [L]
</IfModule>

Pronto pessoal, após esses procedimentos o “mod_rewrite” já está habilitado para o nosso site.

Script de Inicialização do Samba4

Olá pessoal, como prometido na postagem anterior, estou disponibilizando aqui um script que vai facilitar a vida do administrador samba. O procedimento a seguir foi realizado em uma estação CentOS 6.7, então esta dica é para sistemas derivados do Red Hat Enterprise Linux. O script abaixo deverá ser salvo por padrão em /etc/rc.d/init.d e criado um link para o caminho referente ao nível de execução de seu servidor.

Iremos criar o arquivo do script.

# vim /etc/rc.d/init.d/samba4

Dentro do arquivo, iremos colar o conteúdo abaixo:

#!/bin/bash
#
# samba4        This shell script takes care of starting and stopping
#               samba4 daemons.
#
# chkconfig: - 58 74
# description: Samba 4.0 will be the next version of the Samba suite
# and incorporates all the technology found in both the Samba4 alpha
# series and the stable 3.x series. The primary additional features
# over Samba 3.6 are support for the Active Directory logon protocols
# used by Windows 2000 and above.

### BEGIN INIT INFO
# Provides: samba4
# Required-Start: $network $local_fs $remote_fs
# Required-Stop: $network $local_fs $remote_fs
# Should-Start: $syslog $named
# Should-Stop: $syslog $named
# Short-Description: start and stop samba4
# Description: Samba 4.0 will be the next version of the Samba suite
# and incorporates all the technology found in both the Samba4 alpha
# series and the stable 3.x series. The primary additional features
# over Samba 3.6 are support for the Active Directory logon protocols
# used by Windows 2000 and above.
### END INIT INFO

# Source function library.
. /etc/init.d/functions


# Source networking configuration.
. /etc/sysconfig/network


prog=samba
prog_dir=/usr/local/samba/sbin/
lockfile=/var/lock/subsys/$prog


start() {
        [ "$NETWORKING" = "no" ] && exit 1
#       [ -x /usr/sbin/ntpd ] || exit 5

                # Start daemons.
                echo -n $"Starting samba4: "
                daemon $prog_dir/$prog -D
        RETVAL=$?
                echo
        [ $RETVAL -eq 0 ] && touch $lockfile
        return $RETVAL
}


stop() {
        [ "$EUID" != "0" ] && exit 4
                echo -n $"Shutting down samba4: "
        killproc $prog_dir/$prog
        RETVAL=$?
                echo
        [ $RETVAL -eq 0 ] && rm -f $lockfile
        return $RETVAL
}


# See how we were called.
case "$1" in
start)
        start
        ;;
stop)
        stop
        ;;
status)
        status $prog
        ;;
restart)
        stop
        start
        ;;
reload)
        echo "Not implemented yet."
        exit 3
        ;;
*)
        echo $"Usage: $0 {start|stop|status|restart|reload}"
        exit 2
esac

Vamos dar permissão para execução ao script criado

# chmod +x /etc/rc.d/init.d/samba4

Feito isso, salvaremos o arquivo e iremos criar um link simbolico no local referente ao nível de execução de seu servidor. No meu caso, utilizo o N3

# ln -s /etc/rc.d/init.d/samba4 /etc/rc3.d/S80samba4

Para iniciar o samba com nosso novo script poderemos executar o comando abaixo:

# /etc/rc.d/init.d/samba4 start

O script poderá ser utilizado com as seguintes opções:

start|stop|status|restart|reload

Pronto. Feito isso, de uma forma bem simples teremos o nosso script rodando tranquilo.

Fonte
Samba Wiki

Samba4 no RHEL/CentOS

Sejam todos bem vindos ao Café com Linux!

Decidi criar o primeiro post com um tutorial. Pretenderei sempre postar novos tutoriais, dicas e notícias com assuntos relacionados à área de Tecnologia da Informação, buscando priorizar sempre Software Livre.

Este será um tutorial sobre o Samba4, uma ferramenta que tem amadurecido muito desde sua primeira versão. Uma das grandes vantagem ao utilizar o Samba4 é poder criar um controlador de domínio Active Directory (AD DC) similar ao da Microsoft. O objetivo deste post é preparar um ambiente RHEL/CentOS com as dependências necessárias para a compilação, instalação e primeira configuração. Não irei abordar a instalação do RHEL/CentOS, pois imagino que já saibam como fazer.

O ambiente utilizado:

  • VM CentOS 6.7 x86_64 minimal (utilizei uma imagem mínima por instalar somente o necessário para o funcionamento do S.O.);
  • 1GB de RAM;
  • 20GB de HD;

Como utilizei uma imagem minimal (offline), recomendo fazer a atualização após a instalação do S.O. utilizando o comando:

# yum update

Iremos fazer a instalação e configurações iniciais com o nosso serviço de firewall iptables parado e o SELinux no modo permissivo com os comandos abaixo. Lembrando que não é recomendável utilizar um servidor em produção com o firewall desabilitado e como se trata somente de um laboratório, deixaremos a criação de um arquivo iptables configurado de forma correta, liberando somente as portas necessárias para o funcionamento do Samba4 em um outro post.

# service iptables stop
# setenforce 0

Iremos editar o arquivo do SELinux e alterar a linha conforme abaixo:

# vim /etc/sysconfig/selinux
SELINUX=permissive

Iremos instalar agora os pacotes necessários para a compilação e funcionamento do samba:

# yum install -y epel-release vim wget man perl gcc attr libacl-devel libblkid-devel gnutls-devel readline-devel python-devel gdb pkgconfig krb5-workstation zlib-devel setroubleshoot-server libaio-devel setroubleshoot-plugins policycoreutils-python libsemanage-python perl-ExtUtils-MakeMaker perl-Parse-Yapp perl-Test-Base popt-devel libxml2-devel libattr-devel keyutils-libs-devel cups-devel bind-utils libxslt docbook-style-xsl openldap-devel autoconf pam-devel systemd-devel

Obtendo o samba:

Utilizaremos o “wget” para baixar a última versão estável do Samba4 no site “https://www.samba.org/samba/download/”

$ cd /usr/src
$ wget "https://ftp.samba.org/pub/samba/samba-latest.tar.gz"
$ tar zxvf samba-latest.tar.gz
$ cd /usr/src/samba-4.2.3

Compilando o samba:

Utilizaremos o comando abaixo para que seja criado o makefile e seja possível compilar o samba. Nessa etapa é interessante acompanhar o resultado final, pois será informado se há necessidade de instalação de mais algum pacote. Caso tenha ocorrido tudo com sucesso o resultado final deverá ser ” ‘configure’ finished successfully (47.522s)”.

$ ./configure

Esse processo pode levar algum tempo, de acordo com o seu hardware. Iremos executar o seguinte comando para compilar o samba:

$ make

Instalando o samba:

Esse processo também pode levar algum tempo. Iremos executar o seguinte comando para instalar o samba:

# make install

Provisionando o samba:

Após a instalação, iremos criar o Active Directory.

# /usr/local/samba/bin/samba-tool domain provision
Realm [LOCAL]: CAFE.LOCAL     //Você deverá inserir o nome completo do domínio em caixa alta (FQDN);
Domain [CAFE]:     //Nome do domínio ou ENTER para escolher a opção já definida como padrão;
Server Role (dc, member, standalone) [dc]:     //Você deverá informar se será um controlador de domínio, membro ou standalone. Como iremos criar o AD DC, deveremos escolher a opção [dc] que já está como padrão;
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]:     //Utilizaremos o DNS do próprio samba4 como backend, então pressionamos novamente ENTER para o padrão;
DNS forwarder IP address (write 'none' to disable forwarding) [192.168.1.1]:     //No meu caso estou escolhendo um servidor DNS da minha rede para ser utilizado como forwarder em casos que o samba não consiga resolver os nomes;
Administrator password:     //Você deverá definir uma senha complexa para que o provisionamento do domínio seja criado com sucesso;
Retype password:     //Você deverá reinserir a senha para confirmar. Após essa etapa, se tudo estiver ocorrido bem, seu samba retornará um mensagem similar à seguir;

O resultado deverá ser parecido com o abaixo:

Once the above files are installed, your Samba4 server will be ready to use
Server Role: active directory domain controller
Hostname: cafecomlinux
NetBIOS Domain: CAFE
DNS Domain: cafe.local
DOMAIN SID: S-1-5-21-11342085-354663710-1608352529

Testando o samba:

Iniciaremos o Samba4 em modo standalone para realizar alguns testes. O nosso samba ainda não tem scripts de inicialização. Estarei criando um novo post, onde utilizaremos um modelo disponível no site wiki.samba.org.

# /usr/local/samba/sbin/samba

Executaremos o “smbclient” para checar se o samba criou os compartilhamentos padrões “netlogon” e “sysvol” durante o seu provisionamento.

# /usr/local/samba/bin/smbclient -L localhost -U%

Testaremos agora a autenticação no compartilhamento “netlogon” com usuário e senha criados no momento de provisionamento do samba:

# /usr/local/samba/bin/smbclient //localhost/netlogon -UAdministrator -c 'ls'
Enter Administrator's password:
Domain=[CAFE] OS=[Windows 6.1] Server=[Samba 4.2.3]
. D 0 Thu Sep 3 23:40:16 2015
.. D 0 Thu Sep 3 23:40:55 2015

17971068 blocks of size 1024. 15315052 blocks available

Testando o DNS

O DNS é necessário para o funcionamento do Active Directory. Sem o DNS configurado, o Kerberos e alguns outros serviços podem não funcionar corretamente. Iremos alterar o arquivo “resolv.conf” inserindo as informações do nosso servidor DNS do samba.

# vim /etc/resolv.conf
; generated by /sbin/dhclient-script
search cafe.local     //Nome do domínio;
nameserver 192.168.1.67     //Endereço de ip do servidor samba4;

Para testar se o DNS está trabalhando direito, execute os comandos a seguir e compare a saída com o mostrado abaixo:

# host -t SRV _ldap._tcp.cafe.local
_ldap._tcp.cafe.local has SRV record 0 100 389 cafecomlinux.cafe.local.
# host -t SRV _kerberos._udp.cafe.local
_kerberos._udp.cafe.local has SRV record 0 100 88 cafecomlinux.cafe.local.
# host -t A cafecomlinux.cafe.local
cafecomlinux.cafe.local has address 192.168.1.67

Se retornar algum erro, verifique os logs.

Configurando o Kerberos:

Iremos copiar ou criar um link simbólico do arquivo de configuração gerado na criação do AD para o local padrão do arquivo de configuração no sistema.

# ln -sf /usr/local/samba/private/krb5.conf /etc/krb5.conf

Agora iremos testar o Kerberos gerando um ticket com o “kinit” e “klist”.

# kinit administrator@CAFE.LOCAL
Password for administrator@CAFE.LOCAL:
Warning: Your password will expire in 41 days on Thu Oct 15 23:40:53 2015
# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator@CAFE.LOCAL

Valid starting Expires Service principal
09/04/15 19:36:56 09/05/15 05:36:56 krbtgt/CAFE.LOCAL@CAFE.LOCAL
renew until 09/05/15 19:36:47

Fonte:
Samba Wiki

© 2018 Blog do Vieira

Theme by Anders NorénUp ↑