O documento discute namespaces no Linux, descrevendo sua implementação e funcionalidade. As system calls unshare() e setns() foram adicionadas para criar e associar processos a namespaces existentes, respectivamente. A estrutura de dados nsproxy representa associações de processos a namespaces.
Slides para palestra introdutória sobre o openSolaris, falando um pouco sobre suas história e suas tecnologias mais relevantes, como dTrace, ZFS, Zones/Containers,..
Slides para palestra introdutória sobre o openSolaris, falando um pouco sobre suas história e suas tecnologias mais relevantes, como dTrace, ZFS, Zones/Containers,..
Trabalho apresentado na Universidade Tiradentes para passar uma introdução sobre sistemas operacionais baseados no FreeBSD, passando sobre seu histórico, seu objetivo e seu funcionamento interno.
Esse tutorial ajuda na configuração do asterisk.
Qualquer duvida podem mandar um email para:
vicente.proj@hotmail.com
Ou visitar o endereço do you tube que contém muitos vídeos ensinando a configurar o asterisk.
http://www.youtube.com/user/voipjava
Análise de segurança e hacking de containers Docker - Fernando Silva - Tcheli...Tchelinux
Nesta apresentação são abordados cenários comuns em que a utilização de containers Docker pode expor novos tipos de problemas de segurança, que talvez você não tenha considerado, algumas ferramentas de análise e hacking, assim como dicas que você pode usar para garantir que não deixe as portas abertas quando você implantar em produção.
Palestra de Fernando Silva, apresentada no Tchelinux Bento Gonçalves 2017.
* Link original do autor: https://speakerdeck.com/fernandodebrando/analise-de-seguranca-e-hacking-de-containers-docker
* Link do perfil do autor no Speaker Deck: https://speakerdeck.com/fernandodebrando/
Fernando Silva é Analista de Desenvolvimento na KingHost, graduado em Análise e Desenvolvimento de Sistemas (ADS) pela Faculdade Senac Porto Alegre, onde ganhou o Prêmio Keller de melhor trajetória acadêmica. Atualmente faz pós-graduação em Segurança Cibernética pela UFRGS, além disso, é um dos coordenadores da comunidade PHP-RS, é entusiasta Open Source e Software Livre.
CHAMADA DE SISTEMA (System Calls)
API é a “matrix” dos aplicativos, ou seja, uma interface que roda por trás de tudo: enquanto você usufrui de um aplicativo ou site, a sua API pode estar conectada a diversos outros sistemas e aplicativos. E tudo isso acontece sem que você perceba.
Chamadas de sistemas são como funções, porém, são funções específicas que invocam o sistema operacional para que este faça algo, como a criação de um processo.
Chamadas de sistemas para gerenciamento de processos
Chamadas de sistemas para gerenciamento de arquivos
Chamadas de sistemas para Sinalização
Chamadas de Sistema para Gerenciamento de Tempo
Chamadas de Sistema para Gerenciamento de Diretórios e Sistemas de Arquivos
O propósito dessa palestra é:
* Entender o que é um ambiente chroot;
* Criar um ambiente chroot;
* Dar subsídios para a pessoa saber criar seus próprios ambientes em chroot.
Trabalho apresentado na Universidade Tiradentes para passar uma introdução sobre sistemas operacionais baseados no FreeBSD, passando sobre seu histórico, seu objetivo e seu funcionamento interno.
Esse tutorial ajuda na configuração do asterisk.
Qualquer duvida podem mandar um email para:
vicente.proj@hotmail.com
Ou visitar o endereço do you tube que contém muitos vídeos ensinando a configurar o asterisk.
http://www.youtube.com/user/voipjava
Análise de segurança e hacking de containers Docker - Fernando Silva - Tcheli...Tchelinux
Nesta apresentação são abordados cenários comuns em que a utilização de containers Docker pode expor novos tipos de problemas de segurança, que talvez você não tenha considerado, algumas ferramentas de análise e hacking, assim como dicas que você pode usar para garantir que não deixe as portas abertas quando você implantar em produção.
Palestra de Fernando Silva, apresentada no Tchelinux Bento Gonçalves 2017.
* Link original do autor: https://speakerdeck.com/fernandodebrando/analise-de-seguranca-e-hacking-de-containers-docker
* Link do perfil do autor no Speaker Deck: https://speakerdeck.com/fernandodebrando/
Fernando Silva é Analista de Desenvolvimento na KingHost, graduado em Análise e Desenvolvimento de Sistemas (ADS) pela Faculdade Senac Porto Alegre, onde ganhou o Prêmio Keller de melhor trajetória acadêmica. Atualmente faz pós-graduação em Segurança Cibernética pela UFRGS, além disso, é um dos coordenadores da comunidade PHP-RS, é entusiasta Open Source e Software Livre.
CHAMADA DE SISTEMA (System Calls)
API é a “matrix” dos aplicativos, ou seja, uma interface que roda por trás de tudo: enquanto você usufrui de um aplicativo ou site, a sua API pode estar conectada a diversos outros sistemas e aplicativos. E tudo isso acontece sem que você perceba.
Chamadas de sistemas são como funções, porém, são funções específicas que invocam o sistema operacional para que este faça algo, como a criação de um processo.
Chamadas de sistemas para gerenciamento de processos
Chamadas de sistemas para gerenciamento de arquivos
Chamadas de sistemas para Sinalização
Chamadas de Sistema para Gerenciamento de Tempo
Chamadas de Sistema para Gerenciamento de Diretórios e Sistemas de Arquivos
O propósito dessa palestra é:
* Entender o que é um ambiente chroot;
* Criar um ambiente chroot;
* Dar subsídios para a pessoa saber criar seus próprios ambientes em chroot.
Hypervisor "versus" Linux Containers!
Docker is an open-source engine that automates the deployment of any application as a lightweight, portable, self-sufficient container that will run virtually anywhere.
Less hardware, less pain and more scalability in production, on VMs, bare-metal servers, OpenStack clusters, public instances, or combinations of the above. "Do more with less " and this is all that matters!
Automation of server and applications deployments never had been so easy and fast that ever. Also brings produtivity to a new level, in the DataCenters and Cloud Environments.
Francisco Gonçalves (Dec2013
( francis.goncalves@gmail.com )
LXD is a container "hypervisor" and a new user experience for LXC.
The daemon exports a REST API both locally and if enabled, over the network.
The command line tool is designed to be a very simple, yet very powerful tool to manage all your containers. It can handle connect to multiple container hosts and easily give you an overview of all the containers on your network, let you create some more where you want them and even move them around while they're running.
Performance comparison between Linux Containers and Virtual MachinesSoheila Dehghanzadeh
This presentation is based on http://ieeexplore.ieee.org/xpl/articleDetails.jsp?reload=true&arnumber=7164727&punumber%3D7153311%26filter%3DAND(p_IS_Number%3A7164643)%26pageNumber%3D3
Traditional virtualization technologies have been used by cloud infrastructure providers for many years in providing isolated environments for hosting applications. These technologies make use of full-blown operating system images for creating virtual machines (VMs). According to this architecture, each VM needs its own guest operating system to run application processes. More recently, with the introduction of the Docker project, the Linux Container (LXC) virtualization technology became popular and attracted the attention. Unlike VMs, containers do not need a dedicated guest operating system for providing OS-level isolation, rather they can provide the same level of isolation on top of a single operating system instance.
An enterprise application may need to run a server cluster to handle high request volumes. Running an entire server cluster on Docker containers, on a single Docker host could introduce the risk of single point of failure. Google started a project called Kubernetes to solve this problem. Kubernetes provides a cluster of Docker hosts for managing Docker containers in a clustered environment. It provides an API on top of Docker API for managing docker containers on multiple Docker hosts with many more features.
É muito importante a constante atualização tecnológica, principalmente nos dias atuais nos quais a internet se tornou não só uma realidade global, como também uma necessidade empresarial.
As instituições de ensino, sempre pioneiras no gênero UNIX e INTERNET, não devem e não podem ficar para trás nesta nova onda global: o LINUX.
Sistema operacional que surgiu e se difundiu com o apoio de UNIVERSIDADES, o LINUX vem crescendo esplendorosamente e se mostrando um sistema operacional altamente confiável e robusto, satisfazendo todas as necessidades do mercado, com exceção da falta de profissionais específicos para ele.
Devido a isto, venho com esta apostila e este treinamento (a apostila será distribuída gratuitamente na internet e eu ofereço o treinamento para qualquer empresa ou instituição que desejar) tentar reprimir a falta de profissionais e o mais importante, divulgar ainda mais o LINUX.
Linux4All#2 é o segundo minicurso sobre Gnu/Linux, realizado na Uncisal (Universidade Estadual de Ciências Médicas de Alagoas). Abordando conceitos teóricos/praticos a nível intermediário de uma forma simples e dinâmica, ministrada por mim.
Este trabalho foi desenvolvido com a finalidade de abordar técnicas de defesas voltadas à segurança da informação, consistindo de uma atividade da cadeira de Segurança de Redes de Computadores da Universidade Católica de Pernambuco.
3. Introdu¸c˜ao Implementa¸c˜ao
Introdu¸c˜ao
a
Limita o escopo do Kernel a nomes e a estruturas de dados
utilizados gradualmente por processos para prover isola¸c˜ao.
Observa¸c˜ao
Existem 10 namespaces definidos (por´em apenas 6 implementados)
Mount (mnt)
Process ID (pid)
Network (net)
Interprocess Call (ipc)
Unix Timesharing System (uts)
User (user)
security*
security key*
device*
7. Introdu¸c˜ao Implementa¸c˜ao
Introdu¸c˜ao
Implementado para oferecer maneiras de isolar processos
Permite inserir checkpoint/restore (C/R), importante para
sistemas que s˜ao executados em ambientes HPC
Permite integrar live-migration
Utilizado em projetos como containers (LXC, OpenVZ, etc),
CRIU.
8. Introdu¸c˜ao Implementa¸c˜ao
Implementa¸c˜ao
Mount namespaces foi o primeiro namespace a ser
implementado, em 2002 no kernel 2.4.19
User namespace foi o ´ultimo namespace a ser implementado e
tornou-se dispon´ıvel junto com os outros tipos no kernel 3.8
Observa¸c˜ao
Exceto o User namespace, todos precisam da capacidade
(capability) CAP SYS ADMIN
11. Introdu¸c˜ao Implementa¸c˜ao
Estrutura de dados
a
Todas as estruturas de nsproxy possuem
um objeto user ns
User namespace ´e membro da estrutura
de credenciamento (cred)
cred representa o contexto de seguran¸ca
de um processo
O objeto nsproxy ´e criado atrav´es do
m´etodo create nsproxy()
nsproxy ´e liberado atrav´es do m´etodo
free nsproxy()
O descritor de processo (task struct)
possui um ponteiro para nsproxy
13. Introdu¸c˜ao Implementa¸c˜ao
Clone Flags
O que s˜ao
Flags utilizadas para suportar a cria¸c˜ao de namespaces (em
especial, utilizadas na system call clone()
S˜ao 6:
CLONE NEWNS: mount namespace
CLONE NEWUTS: unix timesharing system namespace
CLONE NEWIPC: inter-process call namespace
CLONE NEWPID: process id namespace
CLONE NEWNET: networking namespace
CLONE NEWUSER: user namespace
Implementado em: include/linux/sched.h
A system call clone() ´e utilizada para criar novos processos. Foi
adaptada para suportar novas flags, criando um processo e
adicionando a um namespace espec´ıfico.
16. Introdu¸c˜ao Implementa¸c˜ao
unshare()
Defini¸c˜ao
Respons´avel por criar um objeto nsproxy e adicion´a-lo ao processo
que chamou o system call. Requer uma Clone Flag para identificar
qual namespace dever´a ser criado.
Quando a CLONE NEWPID ´e passada, ele chama a system call
fork(), diferenciando seu comportamento tradicional.
Implementado em: kernel/fork.c
17. Introdu¸c˜ao Implementa¸c˜ao
setns()
Defini¸c˜ao
Respons´avel por adicionar um processo que chamou a system call
a um namespace existente.
Assinatura do m´etodo: setns(int fd, int nstype), onde:
fd (file descriptor): Um descritor que refere-se a um
namespace. Localizado no diret´orio:/proc/$PID/ns/
nstype (opcional): Especifica atrav´es de uma Clone Flag qual
deve ser o tipo do namespace.
Valor 0, fd pode assumir qualquer tipo.
Valor de nstype diferente do tipo de fd: Retorna -EINVAL
Implementado em: kernel/nsproxy.c