Você está na página 1de 7

MARINHA DO BRASIL

DIRETORIA DE COMUNICAES E TECNOLOGIA DA INFORMAO DA MARINHA

ORACLE LINUX 7 Guia Prtico de Consulta Rpida


Rio de Janeiro, RJ, 24 de maro de 2014.
Introduo
Este pequeno material tem um carter eminentemente prtico, com exemplos diretos e muitos
comandos especficos, listados em formato de um guia de consulta rpida. Incentiva-se os leitores a
buscarem mais informaes e estudarem mais profundamente os conceitos relativos aos comandos aqui
demonstrados.
Teremos o foco voltado para o Oracle Linux, porm, os comandos em geral tambm podem ser
utilizados com outras distribuies. Em especial, o aplicativo systemctl o mesmo que j foi includo no
Ubuntu (no sendo a opo default, por enquanto) e no SLES, onde j o padro a partir da verso 12.
Os comandos contidos nesta documentao, quando utilizados, devem ser digitados sem o caracter #
que aqui simboliza um prompt de terminal.

Vulnerabilidade Shell Shock


Esta vulnerabilidade grave j foi corrigida em todas as verses atualizadas de SO Linux, mas
mantivemos aqui a documentao para a sua verificao com a finalidade de uso em servidores instalados
anteriormente.
Verificar se o servidor est vulnervel a Shell Shock:
# env x='() { :;}; echo vulneravel' bash -c 'false'
O esperado que o comando acima no tenha nenhuma resposta, porm, se aparecer no terminal a
palavra vulneravel saberemos que o servidor precisa de atualizao, pois ainda contm o bug Shell Shock.

Configurao de Repositrios e Atualizao Automtica


O comando a seguir ir realizar a configurao do servidor para utilizar nosso repositrio da MB,
disponibilizado na RECIM, seguida pela configurao da atualizao automtica e tambm de uma primeira
atualizao completa. Para isso executamos o comando abaixo, devendo ser todo digitado em uma nica
linha, mantendo-se todo o contedo abaixo:
# curl http://oraclelinux.ctim.mb/mb-config-update.sh > mb-configupdate.sh && chmod +x mb-config-update.sh && ./mb-config-update.sh
Se necessrio, edite o arquivo /etc/yum.repos.d/mb-yum-ol7.repo e habilite o repositrio
Oracle Linux Optional Latest alterando o valor da opo enabled para 1

Comandos para o SO
Verificar a quanto tempo o servidor est rodando:
# uptime
08:15:43 up 4 days, 19:45, 1 user,

load average: 0,00, 0,01, 0,05

Reiniciar o sistema
# systemctl reboot
Desligar o sistema
# systemctl poweroff

Gerenciamento de Pacotes
Instalar um novo software do repositrio da MB
# yum -y install pacote
Instalar um pacote rpm baixado da internet (deve ser evitado)
# yum localinstall pacote.rpm
Desinstalar um software
# yum erase pacote
Consultar se um pacote est instalado e qual a verso
# rpm -q pacote
Atualizar um software especfico
# yum update pacote
Atualizar todos os pacotes instalados
# yum update
Listar Grupos de Pacotes e seus status
# yum group list
Plugins carregados: langpacks
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Available environment groups:
Instalaes Mnimas
Servidor de Infraestrutura
Servidor de Impressora e Arquivo
Servidor de Web Bsico
Mquina de Virtualizao
Servidor com GUI
Grupos disponveis:
Bibliotecas de compatibilidade
Compatibilidade da Legacia UNIX.
Ferramentas Administrativas grficas
Ferramentas de Administrao de Sistema
Ferramentas de Desenvolvimento
Ferramentas de Internet de Console
Ferramentas de Segurana
Gerenciamento de Sistema
Suporte Cientfico
Suporte a Smart Card
Concludo

Instalar o servidor de pginas http Apache utilizando grupos de pacotes (recomendado)


# yum group install "Servidor de Web Bsico"

Gerenciamento de Servios
Iniciar a execuo de um servio
# systemctl start nome-servico
Parar a execuo de um servio
# systemctl stop nome-servico
Reiniciar a execuo de um servio, ou seja, vai para-lo e depois inicia-lo
# systemctl restart nome-servico
Verificar informaes sobre o estado do servio
# systemctl status nome-servico
Exemplo real da verificao do status de um servidor Apache com a respectiva resposta:
# systemctl status httpd
httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled)
Active: active (running) since Sex 2014-10-31 12:31:03 BRST; 4 days
ago
Main PID: 1025 (httpd)
Status: "Total requests: 0; Current requests/sec: 0; Current traffic:
0 B/sec"
CGroup: /system.slice/httpd.service
1025 /usr/sbin/httpd -DFOREGROUND
13358 /usr/sbin/httpd -DFOREGROUND
13359 /usr/sbin/httpd -DFOREGROUND
13360 /usr/sbin/httpd -DFOREGROUND
13361 /usr/sbin/httpd -DFOREGROUND
13362 /usr/sbin/httpd -DFOREGROUND
13363 /usr/sbin/httpd -DFOREGROUND
14648 /usr/sbin/httpd -DFOREGROUND
14649 /usr/sbin/httpd -DFOREGROUND
Out 31 12:31:03 oraclelinux httpd[1025]: AH00558: httpd: Could not r...e
Out 31 12:31:03 oraclelinux systemd[1]: Started The Apache HTTP Server.
Nov 02 14:52:08 oraclelinux systemd[1]: Reloading The Apache HTTP Se....
Nov 02 14:52:08 oraclelinux httpd[13344]: AH00558: httpd: Could not r...
Nov 02 14:52:08 oraclelinux systemd[1]: Reloaded The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.
Fazer um servio ser iniciado automaticamente sempre que o servidor for iniciado:
# systemctl enable nome-servico
Desabilitar um servio para que ele no se inicie junto com o servidor:
# systemctl disable nome-servico
Verificar se um servio est marcado para ser iniciado junto com o servidor:
# systemctl is-enabled nome-servico

Firewall
Abaixo transcrevemos a verificao do status do daemon de firewall, seguido pela sua parada e
reinicio, conforme vimos na parte de gerenciamento de servios. Posteriormente veremos a liberao de
aplicaes e portas.
# systemctl status firewalld
firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled)
Active: active (running) since Sex 2014-10-31 12:31:01 BRST; 4 days
ago
Main PID: 382 (firewalld)
CGroup: /system.slice/firewalld.service
382 /usr/bin/python -Es /usr/sbin/firewalld --nofork --n...
Out 31 12:31:01 oraclelinux systemd[1]: Started firewalld - dynamic ....
Hint: Some lines were ellipsized, use -l to show in full.
# systemctl stop firewalld
# systemctl status firewalld
firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled)
Active: inactive (dead) since Qua 2014-11-05 08:40:51 BRST; 4s ago
Main PID: 382 (code=exited, status=0/SUCCESS)
Out 31 12:31:01 oraclelinux systemd[1]: Started firewalld - dynamic ....
Nov 05 08:40:50 oraclelinux systemd[1]: Stopping firewalld - dynamic....
Nov 05 08:40:51 oraclelinux systemd[1]: Stopped firewalld - dynamic ....
Hint: Some lines were ellipsized, use -l to show in full.
# systemctl start firewalld
# systemctl disable firewalld
rm '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service'
rm '/etc/systemd/system/basic.target.wants/firewalld.service'
# systemctl status firewalld
firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled)
Active: active (running) since Qua 2014-11-05 08:41:22 BRST; 16s ago
Main PID: 18398 (firewalld)
CGroup: /system.slice/firewalld.service
18398 /usr/bin/python -Es /usr/sbin/firewalld --nofork -...
Nov 05 08:41:22 oraclelinux systemd[1]: Started firewalld - dynamic ....
Hint: Some lines were ellipsized, use -l to show in full.

Para manipular o firewall e suas configuraes utilizamos o aplicativo de linha de comando


firewall-cmd. importante ressaltar que o firewall tem regras ativas e regras permanentes, que so
configuradas e entram em vigor quando o servio se inicia. Este aplicativo permite alterar o funcionamento
do firewall das duas maneiras (permanente ou apenas para a execuo corrente), sendo usado o parmetro
--permanent quando queremos que a alterao seja mantida aps o reinicio do servidor.
Listar as configuraes correntes do firewall (o que de fato est sendo permitido):
# firewall-cmd --list-all
public (default, active)
interfaces: ens160
sources:
services: dhcpv6-client http ssh
ports: 2211/tcp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
Para abrir a porta 443 imediatamente e de forma permanente:
# firewall-cmd --add-port=443/tcp
# firewall-cmd --permanent add-port=443/tcp
Para adicionar o servio http (abrir porta 80), imediatamente e de forma permanente:
# firewall-cmd --add-service=http
# firewall-cmd --add-service=http --permanent
Remover um servio qualquer (o parmetro entre [] deve ser usado para tornar a alterao permanente):
# firewall-cmd --remove-service=nome_servico [--permanent]
Adicionar um servio qualquer (o parmetro entre [] deve ser usado para tornar a alterao permanente):
# firewall-cmd --add-service=nome_servico [--permanent]
Nos comandos abaixo, protocolo pode ser tcp ou udp e 0000 deve ser o nmero da porta desejada.
Remover uma porta qualquer (o parmetro entre [] deve ser usado para tornar a alterao permanente):
# firewall-cmd --remove-port=0000/protocolo [--permanent]
Adicionar uma porta qualquer (o parmetro entre [] deve ser usado para tornar a alterao permanente):
# firewall-cmd --add-port=0000/protocolo [--permanent]

SELinux
SELinux (Security-Enhanced Linux) uma implementao de arquitetura de segurana no modelo
Mandatrio (Mandatory Access Control MAC) para o sistema operacional Linux. SELinux prov uma
poltica de segurana sobre todos os processos e objetos do sistema baseando suas decises em etiquetas
contendo uma variedade de informaes relevantes segurana, expandindo assim o sistema de permisses e
direitos normalmente utilizado em sistemas Linux. Este mecanismo prov, por exemplo, o isolamento de
processos atinentes servios web, impedindo a invaso da mquina em caso de um ataque bem sucedido
contra um sistema disponibilizado pelo usurio, diminuindo assim o risco de comprometimentos de
segurana.
O SELinux vem habilitado por default no Oracle Linux 7 e pode algumas vezes dificultar a
disponibilizao de servios e aplicaes, caso o administrador responsvel no faa as corretas
configuraes de segurana.
Para verificar o status do SELinux:
# getenforce
Enforcing
O comando getenforce retorna uma de trs respostas:
Enforcing Se ele est ativo e garantindo a aplicao do controle de acesso estendido
Permissive Se ele est ativo, mas no efetua nenhum bloqueio, apenas registrando as aes
Disabled Se ele est desabilitado
Para alterar o status do SELinux, enquanto ele est sendo executado, utilizamos o comando setenforce
seguido de 0 ou 1, para desabilitar os bloqueios ou habilit-los, respectivamente:
# setenforce 0
# getenforce
Permissive
# setenforce 1
# getenforce
Enforcing
Para desabilitar o SELinux por completo, basta editar o arquivo /etc/selinux/config mudando a
opo SELINUX para disabled. Em geral, no devemos desabilitar todo o mecanismo de segurana
simplesmente porque no sabemos utiliza-lo corretamente, por isso recomenda-se efetuar as configuraes
corretas para que se mantenha o SELinux sempre executando.
Dar permisso de leitura e escrita para o Apache, e em consequncia para o Drupal, em um diretrio:
# chcon -R -t httpd_sys_content_rw_t /var/www/html/sites/
Para habilitar a execuo do Apache em conjunto com jboss de forma integrada:
# setsebool -P httpd_unified on
Permitir que o Apache conecte a um banco de dados em outra mquina
# setsebool -P httpd_can_network_connect_db 1
Outra dica importante quando temos o SELinux que no devemos mover arquivos das pastas de usurio
para as pastas de sistema, sendo prefervel copi-los.

Banco de Dados PostGre SQL


Para instalar o servidor de banco de dados PostGreSQL e efetuar a configurao inicial:
# yum -y install postgresql-server
# postgresql-setup initdb
O comando getenforce retorna uma de trs respostas:
Enforcing Se ele est ativo e garantindo a aplicao do controle de acesso estendido
Permissive Se ele est ativo, mas no efetu

Drupal (Resumo rpido)


Aqui segue um resumo prtico com instalao de requisitos para instalao e configurao do Drupal em um
servidor Oracle Linux 7:
# yum group install "Servidor de Web Bsico"
# yum -y install php php-mbstring php-gd php-dom php-pgsql
# yum -y install postgresql-server
# postgresql-setup initdb
# cd /var/www/html && tar -xzvf /caminho/para/drupal-7.32.tar.gz
# systemctl start httpd
# systemctl start postgresql
# systemctl enable httpd
# systemctl enable postgresql
# firewall-cmd --add-service=http
# firewall-cmd --add-service=http -permanent
# firewall-cmd add-port=443/tcp
# firewall-cmd add-port=443/tcp -permanent
# chcon -R -t httpd_sys_content_rw_t /var/www/html/sites
# setsebool -P httpd_can_network_connect 1
# setsebool -P httpd_can_network_connect_db 1

Você também pode gostar