Pular para o conteúdo principal

Selinux



 Descomplicando Selinux

Lembrando que para todo sysadmin é de total importância a segurança de todo parque computacional, aconselho todo tipo de segurança a ser implementado e não deixar somente ou acerca de um firewall corporativo somente. Pois sempre lembre disso: Uma segurança não implatada pode acatar em um prejuízo de milhões.


O que é Selinux?

SELinux (Security-Enhanced Linux) é um conjunto de extensões de segurança para o kernel no qual inicialmente desenvolvido pela National Security Agency (NSA) dos Estados Unidos. O SELinux implementa um modelo de segurança obrigatório (Mandatory Access Control - MAC)

Por que utilizar Selinux?

O SELinux oferece segurança avançada em sistemas Linux por meio de políticas detalhadas e controle de acesso obrigatório. Reduz a superfície de ataque, limitando privilégios e protegendo contra exploits. Sua capacidade de auditoria detalhada facilita a detecção de atividades suspeitas. Adapta-se a diferentes ambientes e atende os padrões de segurança, sendo crucial em ambientes multiusuário. Embora potente, requer configuração cuidadosa/minuciosa para evitar complicações.

Recomenda-se a instalação de pacotes extras:

root@localhost spinal]# dnf install selinux-policy selinux-policy-targeted policycoreutils mcstrans setools -y

Primeira análise:

[root@localhost spinal]# rpm -qa | grep selinux
libselinux-3.5-1.el9.x86_64
libselinux-utils-3.5-1.el9.x86_64
python3-libselinux-3.5-1.el9.x86_64
selinux-policy-38.1.23-1.el9.noarch
selinux-policy-targeted-38.1.23-1.el9.noarch
container-selinux-2.221.0-1.el9.noarch
rpm-plugin-selinux-4.16.1.3-25.el9.x86_64
flatpak-selinux-1.12.8-1.el9.noarch

Quais os modos do selinux:

Enforcing (Imposição) --> SELinux implementa rigorosamente políticas de segurança, bloqueando e registrando violações.
Permissive (Permissivo) -->  SELinux registra violações, mas não as bloqueia, útil para ajuste de políticas sem interromper operações.
Disabled (Desabilitado) -->  SELinux está completamente desativado, sem aplicação de políticas ou registro de violações. 

Algumas comandos de referência:

[root@localhost spinal]# getenforce 
Permissive
[root@localhost spinal]# sestatus 
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   permissive --> modo atual --> Comando setenforce
Mode from config file:          enforcing --> /etc/selinux/config --> Configuração do arquivo
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Memory protection checking:     actual (secure)
Max kernel policy version:      33
[root@localhost spinal]# cat /etc/selinux/config  | grep ^SELINUX=
SELINUX=enforcing

Obs: Com o comando setenforce é possível colocar o selinux no mode enforcing ou permissive. No caso permissive seria recomendável para testar a implatação de algum sistema com selinux implatado.

O foco não é firewall, mas como mencionado a segurança é feito via camadas, e o firewall padrão no Rockylinux é o firewalld. Mas para liberarmos o acesso ssh, para começar atuar no servidor, deve-se habilitar o serviço.

[root@localhost spinal]# firewall-cmd --state
running
[root@localhost spinal]# firewall-cmd --add-service=ssh --permanent
[root@localhost spinal]# firewall-cmd --reload
[root@localhost spinal]# firewall-cmd --list-all | grep services
  services: cockpit dhcpv6-client ssh

Política SELinux (Terminando de ler, talvez fique mais ou menos claro)

user --> role --> domain --> file



User (Usuário SELinux): Identificador SELinux vinculado a um usuário, conectando-o a políticas de segurança.
Role (Papel SELinux): Define permissões agrupadas para um usuário SELinux, ex: "sysadm_r" para administração do sistema.
Domain (Domínio SELinux): Agrupa processos em execução com permissões específicas, ex: "httpd_t" para servidores web.
File (Arquivo SELinux): Objeto do sistema de arquivos associado a rótulos de segurança para controlar acesso e permissões.

Com o comando ls, seu melhor amigo, será o parâmetro -Z (maiúsculo), verificando as informações referente a política no selinux.

[root@localhost .ssh]# ls -Z /etc/passwd
system_u:object_r:passwd_file_t:s0 /etc/passwd

Para facilitar o entendimento, será falado sobre boleano, de modo simples é ativar a flag do selinux ou desativa-lo.

Comando para lista os módulos (Não mostrado pois existem vários)

[root@localhost .ssh]# semodule -l

Exemplo de informação de flags com boleanos com ssh (Detalhe da flag):

[root@localhost .ssh]# semanage boolean -l | grep ssh
fenced_can_ssh                 (off  ,  off)  Allow fenced to can ssh
selinuxuser_use_ssh_chroot     (off  ,  off)  Allow selinuxuser to use ssh chroot
ssh_chroot_rw_homedirs         (off  ,  off)  Allow ssh to chroot rw homedirs
ssh_keysign                    (off  ,  off)  Allow ssh to keysign
ssh_sysadm_login               (off  ,  off)  Allow ssh to sysadm login
ssh_use_tcpd                   (off  ,  off)  Allow ssh to use tcpd
sshd_launch_containers         (off  ,  off)  Allow sshd to launch containers
virt_qemu_ga_manage_ssh        (off  ,  off)  Allow virt to qemu ga manage ssh

Lista os boleanos de outra forma com ssh:

[root@localhost .ssh]# getsebool -a | grep ssh
fenced_can_ssh --> off
selinuxuser_use_ssh_chroot --> off
ssh_chroot_rw_homedirs --> off
ssh_keysign --> off
ssh_sysadm_login --> off
ssh_use_tcpd --> off
sshd_launch_containers --> off
virt_qemu_ga_manage_ssh --> off

Agora a parte no qual você mais gosta, com o selinux habilitado, habilitar um boleano.
Para isto vamos utilizar o serviço de ftp para conexão de anonimato, para facilitar a implatação e configuração do mesmo:

Instalação básica do ftp:

[root@localhost .ssh]# dnf install vsftpd -y

Verificando informações do serviço:

[root@localhost .ssh]# systemctl enable vsftpd --now
Created symlink /etc/systemd/system/multi-user.target.wants/vsftpd.service → /usr/lib/systemd/system/vsftpd.service.
[root@localhost .ssh]# ss -lnt
State  Recv-Q  Send-Q  Local Address:Port  Peer Address:Port  Process
LISTEN  0       128     0.0.0.0:ssh         0.0.0.0:*           users:(("sshd",pid=748,fd=3))
LISTEN  0       32      *:ftp               *:*                 users:(("vsftpd",pid=4820,fd=3))
LISTEN  0       128     [::]:ssh            [::]:*              users:(("sshd",pid=748,fd=4))
[root@localhost .ssh]# ip r
default via 192.168.15.1 dev enp0s3 proto dhcp src 192.168.15.127 metric 100 
192.168.15.0/24 dev enp0s3 proto kernel scope link src 192.168.15.127 metric 100 

Observa-se que o serviço e sua porta está aberta:
Primeiro detalhe a porta está aberta somente localmente pois não há regra de firewall.

[root@localhost .ssh]# firewall-cmd --add-service=ftp --permanent
success
[root@localhost .ssh]# firewall-cmd --reload
success
[root@localhost .ssh]# firewall-cmd --list-all | grep services
  services: cockpit dhcpv6-client ftp ssh

Apartir de outro local ou outro servidor verifique se a porta está do serviço de ftp:

spinal@lenovo-legion5:~/.ssh$ timeout 1 telnet 192.168.15.127 22
Trying 192.168.15.127...
Connected to 192.168.15.127.
Escape character is '^]'.

Obs:  Não esqueça de aplicar segurança no servidor ftp, utilizado ssl por exemplo e de preferência com chroot. Com o serviço do ftp vou deixar, você mandar bala, pois o intuito é focar no selinux.

[root@localhost .ssh]# getsebool -a | grep ftp
ftpd_anon_write --> off
ftpd_connect_all_unreserved --> off
ftpd_connect_db --> off
ftpd_full_access --> off
ftpd_use_cifs --> off
ftpd_use_fusefs --> off
ftpd_use_nfs --> off
ftpd_use_passive_mode --> off
httpd_can_connect_ftp --> off
httpd_enable_ftp_server --> off
tftp_anon_write --> off
tftp_home_dir --> off

Vamos utilizar a seguinte situação, lembrando que somente é para exemplo: 
Vamos supor que a missão seja habilitar usuários anônimos ou convivados tenham permissão de criar arquivos ou pastas em algum diretório X. Vamos liberar a flag, lembrando que o comando precisa do argumento (-P) para aplicar permanentemte.

[root@localhost .ssh]# setsebool -P ftpd_anon_write on
[root@localhost .ssh]# getsebool -a | grep ftpd_anon_write
ftpd_anon_write --> on
[root@localhost .ssh]# 

Um exemplo de teste pode ser utilizado a ferramenta filezilla (Cliente FTP):


Espero ter contribuído para sua vida, para segurança de vários ambientes e esqueça disso:
Brincadeiras a parte. kkkkkkkk



Ass: Luiz Guilherme Nunes Fernandes
Email: narutospinal@gmail.com
Informativo: Entusiasta e colaborador em Software Livre.

Comentários

Postagens mais visitadas deste blog

Instale o Telegram Desktop 0.8

Telegram Desktop é um software livre cliente multi-plataforma para o GNU\ Linux, Windows e Mac OS. O cliente tem suporte para notificações , enviar mensagens e arquivos de mídia e inserção de emoji . Enquanto o cliente Telegram desktop ainda está em desenvolvimento , que permite aos usuários enviar e receber mensagens a partir do desktop Linux, tem um recurso para sincronização em todas as plataformas com suporte , para que você possa ler as suas notificações móveis , tanto do computador e telefone , sem faltar nada. Além disso, tem o apoio de transferência de arquivos e os usuários podem criar grupos de até 200 pessoas e enviar mensagens .   A última versão disponível é Telegram do Desktop 0.8 , que foi lançado recentemente, vindo com mudanças, algumas são:   Adicionado comentário mensagens antes de encaminhadas;   Hashtags sugestões em novos campos de mensagens e de busca (com base em pesquisas recentes); Bot...

Como Instalar a Fonte ttf-mscorefonts (Times New Roman, Arial, etc) no Ubuntu, Linux Mint e Derivados

Quando instalamos uma distribuição GNU/Linuxmsabemos que vem o LibreOffice por padrão porém geralmente não vem instalado a fonte ttf-mscorefonts que contém as fontes Times New Roman, Arial, etc, como essas fontes são muito útil para os universitários, pelo mundo corporativo e a Associação Brasileira de Normas Técnicas (ABNT), exige que os trabalhos sejam entregues nas fontes Times New Roman e Arial, por meio desta postagem espero pode ajudar a todos com a instalação da fonte ttf-mscorefonts que contém essas fontes. Ao instalar o GNU/Linux abra o terminal e execute o comando: $ sudo apt-get install ttf-mscorefonts-installer Leia os termos de uso e avance clicando em “Ok” Agora aceite os termos de uso clicando em “Sim” Pronto agora abra o LibreOffice e veja se as fontes Times New Roman, Arial estão instaladas. Caso ocorra algum erro ou precisa reinstalar, execute: $ sudo apt-get install --reinstall ttf-mscorefonts-installer

Como Instalar a Fonte ttf-mscorefonts (Times New Roman, Arial, etc) no Ubuntu, Linux Mint e Derivados

Quando instalamos uma distribuição GNU/Linuxmsabemos que vem o LibreOffice por padrão porém geralmente não vem instalado a fonte ttf-mscorefonts que contém as fontes Times New Roman, Arial, etc, como essas fontes são muito útil para os universitários, pelo mundo corporativo e a Associação Brasileira de Normas Técnicas (ABNT), exige que os trabalhos sejam entregues nas fontes Times New Roman e Arial, por meio desta postagem espero pode ajudar a todos com a instalação da fonte ttf-mscorefonts que contém essas fontes. Ao instalar o GNU/Linux abra o terminal e execute o comando: $ sudo apt-get install ttf-mscorefonts-installer Leia os termos de uso e avance clicando em “Ok” Agora aceite os termos de uso clicando em “Sim” Pronto agora abra o LibreOffice e veja se as fontes Times New Roman, Arial estão instaladas. Caso ocorra algum erro ou precisa reinstalar, execute: $ sudo apt-get install --reinstall ttf-mscorefonts-installer

Comandos Úteis para o Linux Mint, Ubuntu e Derivados

Alguns dias sugeriram que eu postasse alguns comandos uteis  utilizados no Linux Mint e para o Ubuntu, mas com tantas distros baseadas no Ubuntu esses comandos também podem ser utilizados nas distros como: Ubuntu 15.04, Ubuntu 14.10, Ubuntu 14.04 , Linux Mint 17.2, Linux Mint 17.1, Linux Mint 17, Pinguy OS 14.04, Elementary OS 0.3, Deepin 2014, Peppermint Five, LXLE 14.04 and Linux Lite 2 2 , DuZeru, Kaiana e derivados . Segue alguns comandos importantes para manutenção do sistema, principalmente para usuários iniciantes... 1- Atualizar a lista de pacotes:  $ sudo apt-get update 2- Atualizar toda a distro:  $ sudo apt-get -f dist-upgrade ou update-manager -d -c 3- Instalar pacotes:  $ sudo apt-get install [nome do pacote] 4- Procurar arquivos corrompidos:  $ sudo apt-get check 5- Corrigir problemas de dependências, concluir instalação de pacotes pendentes e outros erros: $ sudo apt-get -f install 6- Se o comando sudo apt-get -f install nã...

Aprenda a apagar as linhas vazias no LibreOffice Calc

Estes dias eu precisei realizar uma tarefe um tanto quanto inusitada: apagar as linhas vazias de uma planilha do LibreOffice Calc. E após ter pesquisado muito na internet (além de ter tendado de todas as formas fazer isso), acabei achando a  solução nesta lista de discussão . Basicamente, este procedimento é possível através da implementação de Macros no LibreOffice.  Mas o que são Macros? Os Macros são definidos na programação como um padrão de entrada que é substituído por um novo padrão de saída, e podem ser aplicados como recurso de linguagem em programação, em planilhas, serem aplicadas para converter entradas periféricas em comandos e ações dentro do sistema operacional. Em outras palavras, os Macros são códigos que tem a finalidade de “pegar algo” afim de “transformar em outro algo”. Abaixo iremos detalhar em um passo-a-passo o procedimento para implementação de uma Macro no Calc que irá permitir-nos apagar linhas vazia dentro das nossas planilhas. Vamos l...

Como Instalar o Gophish (Um Guia para Entender o Conceito de Phishing e Como se Proteger Dele)

  O que é Gophish? Gophish é uma ferramenta de código aberto que permite aos usuários realizar campanhas de engenharia social para coletar credenciais de autenticação e outros dados confidenciais (phishing). Esta ferramenta foi projetada para ser usada por pesquisadores de segurança para melhorar a segurança da rede. Gophish foi criado em 2016 por Jordan Wright, um pesquisador de segurança baseado em San Francisco, EUA. Sendo também uma das melhores ferramentas do mercado para realizar testes de segurança contra phishing, caso seja utilizado de forma fraudulenta.   Como Gophish funciona? O Gophish é executado em um servidor, o que significa que você precisa ter acesso a um servidor para usar a ferramenta. Depois de configurada, a ferramenta pode ser usada para criar simulações de phishing com diferentes tipos de conteúdo, como mensagens de e-mail, páginas da web e mensagens de texto. Esses exercícios de phishing são enviados aos destinatários pretendidos, que são os usuár...

Linux Lite 6.4

O Linux Lite é uma distribuição Linux amigável para iniciantes, baseada no lançamento de suporte de longo prazo (LTS) do Ubuntu e apresentando o desktop Xfce. O projeto publicou uma atualização para sua série 6.x que melhora a compactação de pacotes para software personalizado, oferece uma nova ferramenta de relatório para diagnosticar problemas e atualiza o layout para o cliente de e-mail Thunderbird.   "Linux Lite 6.4 Final agora está disponível para download e instalação. Com base no lançamento do 6.2, adicionamos várias novas alterações. Alterações: Nossos aplicativos internos estão começando a ser reempacotados usando compactação ZSTD para velocidades de descompactação significativamente mais rápidas e taxas de compactação mais altas. Exemplo: Temas Lite - pacote compactado antigo: 91,2 MB; Temas Lite - novo pacote compactado: 76,8 MB. Isso beneficiará máquinas de uma faixa etária mais ampla. Ótimo para computadores mais lentos ao instalar atualizações, atualizações extrem...

Feliz 2013!!!

Gostaria de agradecer a todos que este ano acompanharam as matérias postadas e as mais de  7000 visitas ao blog , muito obrigado. Este ano tivemos grandes conquistas e inúmeras novidades como por exemplo o fim do MSN no início de 2013, a criação da União Livre e o desenvolvimento do Kaiana que será lançada em 2013, distro nacional , a descontinução do BigLinux do DreanLinux entre outr as distro, o lançamento do liv ro da S B P - Software Publico Brasileiro, os dois anos do LibreOffice, o prime iro Hackday do LibreOffice , o IX Latinoware, a Microsoft boicotando o Linux (como sempre), o lançamento do Windows 8 e a sua baixa taxa de adesão pelos usuários, entre out ros. Gostaria de desejar a todos Boas Festas e que em 2013 possamos estar juntos novamente. Feliz Natal!!!! F eli z 2013 a todos!!!

Como Instalar o Kodi 19.5 "Matrix"

Kodi (anteriormente denominado XBMC) é um famoso hub de mídia de código aberto e home theater PC, sendo traduzido em mais de 30 idiomas. Além disso, suas características podem ser altamente estendido através de plugins de terceiros e extensões e tem suporte para PVR (personal video recorder).   A versão final do Kodi 19.5 “Matrix” foi lançado, chegando com alterações que podem ser vistas clicando aqui . Para instalar no Ubuntu,  Linux Mint, Elementary OS e derivados, execute:   $ sudo add-apt-repository ppa:team-xbmc/ppa $ sudo apt-get update $ sudo apt-get install kodi     Use o comando a seguir para instalar codecs de áudio e outros complementos, executando:     $ sudo apt-get install --install-suggests kodi     Para remover, execute:   $ sudo apt-get remove kodi*

Certificado FLISOL-DF 2024 Liberado

Foi disponibilizado o link para baixar o certificado de Participante e de Palestrante do FLISOL-DF2024. Para baixar o seu clique no link: https://certified.flisol.app/ Para saber sobre os dados estatísticos do FLISOL 2024 clique no link: https://flisol.info/FLISOL2024/Brasil/Estatisticas