Manual do Hacker Especial - Volume 2 (2019-07)

(Antfer) #1
84 | Manual do Hacker Especial

gem “therubyracer”, “~> 0.11.4” group :development, :test do gem “rspec-rails”, “~> 2.13.0” $ gem install bundler $ gem install rails --version=3.2.12 $ rbenv rehash $ rails


new todolist --skip-test-unit respond_to do |format| if @task.update_attributes(params[:task]) format.html { redirect_to @task, notice: ‘...’ } format.json { head :no_content }


else format.html { render action: “edit” } format.json { render json: @task.errors, status: :unprocessable_entity } $ bundle exec rails generate migration add_priority_to_tasks


priority:integer $ bundle exec rake db:migrate $ bundle exec rake db:migrate $ bundle exec rails server validate :due_at_is_in_the_past def due_at_is_in_the_past errors.


add(:due_at, ‘is in the past!’) if due_at < Time.zone.now #!/usr/bin/en python import pygame from random import randrange MAX_STARS = 100 pygame.init() screen =


pygame.display.set_mode((640, 480)) clock = pygame.time.Clock() stars = for i in range(MAX_STARS): star = [randrange(0, 639), randrange(0, 479), randrange(1, 16)] stars.


append(star) while True: clock.tick(30) for event in pygame.event.get(): if event.type == pygame.QUIT: exit(0) #!/usr/bin/perl $numstars = 100; use Time::HiRes qw(usleep);


use Curses; $screen = new Curses; noecho; curs_set(0); for ($i = 0; $i < $numstars ; $i++) { $star_x[$i] = rand(80); $star_y[$i] = rand(24); $star_s[$i] = rand(4) + 1; } while (1)


{ $screen->clear; for ($i = 0; $i < $numstars ; $i++) { $star_x[$i] -= $star_s[$i]; if ($star_x[$i] < 0) { $star_x[$i] = 80; } $screen->addch($star_y[$i], $star_x[$i], “.”); } $screen-



refresh; usleep 50000; gem “therubyracer”, “~> 0.11.4” group :development, :test do gem “rspec-rails”, “~> 2.13.0” $ gem install bundler $ gem install rails --version=3.2.12



$ rbenv rehash $ rails new todolist --skip-test-unit respond_to do |format| if @task.update_attributes(params[:task]) format.html { redirect_to @task, notice: ‘...’ } format.json


{ head :no_content } else format.html { render action: “edit” } format.json { render json: @task.errors, status: :unprocessable_entity } $ bundle exec rails generate migration


add_priority_to_tasks priority:integer $ bundle exec rake db:migrate $ bundle exec rake db:migrate $ bundle exec rails server validate :due_at_is_in_the_past def dueat


is_in_the_past errors.add(:due_at, ‘is in the past!’) if due_at < Time.zone.now #!/usr/bin/en python import pygame from random import randrange MAX_STARS = 100


pygame.init() screen = pygame.display.set_mode((640, 480)) clock = pygame.time.Clock() stars = for i in range(MAX_STARS): star = [randrange(0, 639), randrange(0, 479),


randrange(1, 16)] stars.append(star) while True: clock.tick(30) for event in pygame.event.get(): if event.type == pygame.QUIT: exit(0) #!/usr/bin/perl $numstars = 100; use


Time::HiRes qw(usleep); use Curses; $screen = new Curses; noecho; curs_set(0); for ($i = 0; $i < $numstars ; $i++) { $star_x[$i] = rand(80); $star_y[$i] = rand(24); $star_s[$i]


= rand(4) + 1; } while (1) { $screen->clear; for ($i = 0; $i < $numstars ; $i++) { $star_x[$i] -= $star_s[$i]; if ($star_x[$i] < 0) { $star_x[$i] = 80; } $screen->addch($star_y[$i],


$star_x[$i], “.”); } $screen->refresh; usleep 50000; gem “therubyracer”, “~> 0.11.4” group :development, :test do gem “rspec-rails”, “~> 2.13.0” $ gem install bundler $ gem


install rails --version=3.2.12 $ rbenv rehash $ rails new todolist --skip-test-unit respond_to do |format| if @task.update_attributes(params[:task]) format.html { redirect_to @


task, notice: ‘...’ } format.json { head :no_content } else format.html { render action: “edit” } format.json { render json: @task.errors, status: :unprocessable_entity } $ bundle


exec rails generate migration add_priority_totasks priority:integer $ bundle exec rake db:migrate $ bundle exec rake db:migrate $ bundle exec rails server validate :due


at_is_in_the_past def due_at_is_in_the_past errors.add(:due_at, ‘is in the past!’) if due_at < Time.zone.now #!/usr/bin/en python import pygame from random import


randrange MAX_STARS = 100 pygame.init() screen = pygame.display.set_mode((640, 480)) clock = pygame.time.Clock() stars = for i in range(MAX_STARS): star =


[randrange(0, 639), randrange(0, 479), randrange(1, 16)] stars.append(star) while True: clock.tick(30) for event in pygame.event.get(): if event.type == pygame.QUIT: exit(0)


#!/usr/bin/perl $numstars = 100; use Time::HiRes qw(usleep); use Curses; $screen = new Curses; noecho; curs_set(0); for ($i = 0; $i < $numstars ; $i++) { $star_x[$i] =


rand(80); $star_y[$i] = rand(24); $star_s[$i] = rand(4) + 1; } while (1) { $screen->clear; for ($i = 0; $i < $numstars ; $i++) { $star_x[$i] -= $star_s[$i]; if ($star_x[$i] < 0) { $star_x[$i]


= 80; } $screen->addch($star_y[$i], $star_x[$i], “.”); } $screen->refresh; usleep 50000; gem “therubyracer”, “~> 0.11.4” group :development, :test do gem “rspec-rails”, “~>


2.13.0” $ gem install bundler $ gem install rails --version=3.2.12 $ rbenv rehash $ rails new todolist --skip-test-unit respondto do |format| if @task.update


attributes(params[:task]) format.html { redirect_to @task, notice: ‘...’ } format.json { head :no_content } else format.html { render action: “edit” } format.json { render json: @


task.errors, status: :unprocessable_entity } $ bundle exec rails generate migration add_priority_to_tasks priority:integer $ bundle exec rake db:migrate $ bundle exec rake


db:migrate $ bundle exec rails server validate :due_at_is_in_the_past def due_at_is_in_the_past errors.add(:due_at, ‘is in the past!’) if due_at < Time.zone.now #!/usr/bin/


en python import pygame from random import randrange MAX_STARS = 100 pygame.init() screen = pygame.display.set_mode((640, 480)) clock = pygame.time.Clock()


stars = for i in range(MAX_STARS): star = [randrange(0, 639), randrange(0, 479), randrange(1, 16)] stars.append(star) while True: clock.tick(30) for event in pygame.event.


get(): if event.type == pygame.QUIT: exit(0) #!/usr/bin/perl $numstars = 100; use Time::HiRes qw(usleep); use Curses; $screen = new Curses; noecho; curs_set(0); for ($i =


0; $i < $numstars ; $i++) { $star_x[$i] = rand(80); $star_y[$i] = rand(24); $star_s[$i] = rand(4) + 1; } while (1) { $screen->clear; for ($i = 0; $i < $numstars ; $i++) { $star_x[$i]


-= $star_s[$i]; if ($star_x[$i] < 0) { $star_x[$i] = 80; } $screen->addch($star_y[$i], $star_x[$i], “.”); } $screen->refresh; usleep 50000; gem “therubyracer”, “~> 0.11.4” group


:development, :test do gem “rspec-rails”, “~> 2.13.0” $ gem install bundler $ gem install rails --version=3.2.12 $ rbenv rehash $ rails new todolist --skip-test-unit respond_


to do |format| if @task.update_attributes(params[:task]) format.html { redirect_to @task, notice: ‘...’ } format.json { head :no_content } else format.html { render action: “edit”


} format.json { render json: @task.errors, status: :unprocessable_entity } $ bundle exec rails generate migration add_priority_to_tasks priority:integer $ bundle exec rake


db:migrate $ bundle exec rake db:migrate $ bundle exec rails server validate :due_at_is_in_the_past def due_at_is_in_the_past errors.add(:due_at, ‘is in the past!’) if due_at


< Time.zone.now #!/usr/bin/en python import pygame from random import randrange MAX_STARS = 100 pygame.init() screen = pygame.display.set_mode((640, 480))


clock = pygame.time.Clock() stars = for i in range(MAX_STARS): star = [randrange(0, 639), randrange(0, 479), randrange(1, 16)] stars.append(star) while True: clock.tick(30)


for event in pygame.event.get(): if event.type == pygame.QUIT: exit(0) #!/usr/bin/perl $numstars = 100; use Time::HiRes qw(usleep); use Curses; $screen = new Curses;


noecho; curs_set(0); for ($i = 0; $i < $numstars ; $i++) { $star_x[$i] = rand(80); $star_y[$i] = rand(24); $star_s[$i] = rand(4) + 1; } while (1) { $screen->clear; for ($i = 0; $i <


$numstars ; $i++) { $star_x[$i] -= $star_s[$i]; if ($star_x[$i] < 0) { $star_x[$i] = 80; } $screen->addch($star_y[$i], $star_x[$i], “.”); } $screen->refresh; usleep 50000; gem


“therubyracer”, “~> 0.11.4” group :development, :test do gem “rspec-rails”, “~> 2.13.0” $ gem install bundler $ gem install rails --version=3.2.12 $ rbenv rehash $ rails new


todolist --skip-test-unit respond_to do |format| if @task.update_attributes(params[:task]) format.html { redirect_to @task, notice: ‘...’ } format.json { head :no_content } else


format.html { render action: “edit” } format.json { render json: @task.errors, status: :unprocessable_entity } $ bundle exec rails generate migration add_priority_to_tasks


priority:integer $ bundle exec rake db:migrate $ bundle exec rake db:migrate $ bundle exec rails server validate :due_at_is_in_the_past def due_at_is_in_the_past errors.


add(:due_at, ‘is in the past!’) if due_at < Time.zone.now #!/usr/bin/en python import pygame from random import randrange MAX_STARS = 100 pygame.init() screen =


pygame.display.set_mode((640, 480)) clock = pygame.time.Clock() stars = for i in range(MAX_STARS): star = [randrange(0, 639), randrange(0, 479), randrange(1, 16)] stars.


append(star) while True: clock.tick(30) for event in pygame.event.get(): if event.type == pygame.QUIT: exit(0) #!/usr/bin/perl $numstars = 100; use Time::HiRes qw(usleep);


use Curses; $screen = new Curses; noecho; curs_set(0); for ($i = 0; $i < $numstars ; $i++) { $star_x[$i] = rand(80); $star_y[$i] = rand(24); $star_s[$i] = rand(4) + 1; } while (1)


{ $screen->clear; for ($i = 0; $i < $numstars ; $i++) { $star_x[$i] -= $star_s[$i]; if ($star_x[$i] < 0) { $star_x[$i] = 80; } $screen->addch($star_y[$i], $star_x[$i], “.”); } $screen-



refresh; usleep 50000; gem “therubyracer”, “~> 0.11.4” group :development, :test do gem “rspec-rails”, “~> 2.13.0” $ gem install bundler $ gem install rails --version=3.2.12



$ rbenv rehash $ rails new todolist --skip-test-unit respond_to do |format| if @task.update_attributes(params[:task]) format.html { redirect_to @task, notice: ‘...’ } format.json


{ head :no_content } else format.html { render action: “edit” } format.json { render json: @task.errors, status: :unprocessable_entity } $ bundle exec rails generate migration


add_priority_to_tasks priority:integer $ bundle exec rake db:migrate $ bundle exec rake db:migrate $ bundle exec rails server validate :due_at_is_in_the_past def dueat


is_in_the_past errors.add(:due_at, ‘is in the past!’) if due_at < Time.zone.now #!/usr/bin/en python import pygame from random import randrange MAX_STARS = 100


pygame.init() screen = pygame.display.set_mode((640, 480)) clock = pygame.time.Clock() stars = for i in range(MAX_STARS): star = [randrange(0, 639), randrange(0, 479),


randrange(1, 16)] stars.append(star) while True: clock.tick(30) for event in pygame.event.get(): if event.type == pygame.QUIT: exit(0) #!/usr/bin/perl $numstars = 100; use


Time::HiRes qw(usleep); use Curses; $screen = new Curses; noecho; curs_set(0); for ($i = 0; $i < $numstars ; $i++) { $star_x[$i] = rand(80); $star_y[$i] = rand(24); $star_s[$i]


= rand(4) + 1; } while (1) { $screen->clear; for ($i = 0; $i < $numstars ; $i++) { $star_x[$i] -= $star_s[$i]; if ($star_x[$i] < 0) { $star_x[$i] = 80; } $screen->addch($star_y[$i],


$star_x[$i], “.”); } $screen->refresh; usleep 50000; gem “therubyracer”, “~> 0.11.4” group :development, :test do gem “rspec-rails”, “~> 2.13.0” $ gem install bundler $ gem


install rails --version=3.2.12 $ rbenv rehash $ rails new todolist --skip-test-unit respond_to do |format| if @task.update_attributes(params[:task]) format.html { redirect_to @


task, notice: ‘...’ } format.json { head :no_content } else format.html { render action: “edit” } format.json { render json: @task.errors, status: :unprocessable_entity } $ bundle


exec rails generate migration add_priority_totasks priority:integer $ bundle exec rake db:migrate $ bundle exec rake db:migrate $ bundle exec rails server validate :due


at_is_in_the_past def due_at_is_in_the_past errors.add(:due_at, ‘is in the past!’) if due_at < Time.zone.now #!/usr/bin/en python import pygame from random import


randrange MAX_STARS = 100 pygame.init() screen = pygame.display.set_mode((640, 480)) clock = pygame.time.Clock() stars = for i in range(MAX_STARS): star =


[randrange(0, 639), randrange(0, 479), randrange(1, 16)] stars.append(star) while True: clock.tick(30) for event in pygame.event.get(): if event.type == pygame.QUIT: exit(0)


A explosão dos jogos triple-A chegou ao Linux.
Veja como montar a sua máquina Steam.

30 | Manual do Hacker Manual do Hacker | 31

Software | Monte sua própria máquina Steam

Software | Monte sua própria máquina Steam

Vdedicada para jogar no Linux, achamos que a melhor coisa a fazer é baixar e instalar o SteamOS você mesmo. Esta distro foi ocê poderia, claro, comprar uma supermáquina pronta agora mesmo, mas para conseguir uma máquina
projetada, desde a sua concepção, para jogos, com o Stream Big Picture como interface padrão. A interface foi especialmente criada para navegar por meio de controle de jogos
em uma tela grande, como uma TV, embora isso signifique que, desse modo, o SteamOS não será muito útil para outras tarefas que não sejam jogos. No entanto, se você quiser
criar uma máquina Linux de ponta para jogos para competir com PS4 e Xbox, acesse http://bit.ly/BYOSteamOSNesta página, você encontrará duas.
opções. A primeira contém as instruções para baixar o SteamOS. Embora esta seja a maneira mais direta de instalar o SteamOS, isso requer um disco rígido com a capacidade
de 1 TB, mas há usuários que ainda possuem discos com capacidade menor. A segunda opção consiste na instalação avançada

(download do Steam Beta), que oferece mais controle por meio de um instalador baseado no padrão Debian e permite usar um disco rígido de capacidade menor do que 1 TB. Ao
clicar em “Baixar a instalação do SteamOS”, você será encaminhado para uma página de Contrato de Licença de uso do Steam – vale a pena dar uma lida.
Embora o SteamOS seja baseado em
O hardware para a sua Máquina SteamQuando você constrói uma máquina para jogar jogos na sala de estar, é preciso
considerar algumas coisas. Para começar, você vai querer que ela seja discreta, não ocupe muito espaço e, claro, que não seja muito barulhenta.
Quanto ao visual, adquira um gabinete pequeno (uma caixinha como o modelo BitFenix Phenom Mini-ITX). Em seguida, o processador – embora os da Intel sejam
mais caros do que os da AMD, eles funcionam melhor em máquinas Steam. Mesmo o quad-core i5-4570 de 3.2 GHz pode ser uma boa escolha.
limitam a escolha da placa-mãe. Caso escolha um gabinete do tipo Mini-ITX, a Escolher o gabinete e o processador

Linux e use software de código aberto, consiste principalmente em uma interface para a loja Steam, da Valve, mas você poderá também acessar a área de trabalho Gnome
como parte do sistema para instalar programas e jogos que não sejam do Steam.do SteamOS tem 1GB, de modo que poderá Outra coisa a considerar é que o download
demorar para baixá-lo, caso a sua conexão com a internet seja lenta.extrair o conteúdo do arquivo Uma vez baixado o Steam, você precisará
SteamOSinstaller.zipcapacidade de 4 GB ou mais, que precisa ser formatado no sistema de arquivos FAT 32.Para formatar o pendrive em FAT32, em um pendrive de
insira-o na porta USB e abra o terminal. Em seguida, digite instalados em sua máquina. Olhe atentamente a lista para identificar o pendrive df para abrir a lista de drivers
em questão (a capacidade dele é um bom indicador). Não precisava nem dizer, porque é óbvio, mas convém identificar corretamente o pendrive pois você poderá formatar o driver
errado, perdendo todos os dados salvos nele. identificar seu pendrive, anote o Depois de
caminho sob o título Filesystem (sistema de arquivos), por exemplo: /dev/sdc1.
usando:sudo umount /dev/sdc1Você precisará desmontar a unidade,
USB. Em seguida, formate a unidade para o sistema de arquivos FAT32, usando:sudo mkfs.vfat -n 'SteamOS' -I /dev/sdc1onde sdc1 deve ser o caminho de seu drive
sdc1correto. Além disso, a parte Mais uma vez, onde escrevemos , certifique-se de colocar o caminho -n 'SteamOS'dev/ do

do Gnome nas configurações do SteamOS, o que lhe permitirá executar programas ejogos não-Steam. Você pode habilitar uma área de trabalho
código é opcional. Este apenas dá um nome à sua partição recém criada na unidade, para facilitar o uso. Se você preferir não nomear a partição, deixe esta parte do código de fora.
tenha baixado o arquivo ZIP do SteamOS, pois você precisará descompactá-lo no pendrive que você acabou de formatar. Para fazer isso, Esperemos que, neste momento, você já
primeiro você precisa se certificar de que possui os programas corretos instalados, digitando:apt-get install zip
nome Downloads) onde está o arquivoSteamOSInstaller.zipapt-get install unzipAgora, navegue até a pasta (geralmente de que você baixou, por
exemplo:cd ~/Downloads/unzip SteamOSInstaller.zip -d /path/e, então, digite:
onde Em seguida, é preciso instalar o SteamOS na máquina que você está usando para a instalação. Com o pendrive conectado, inicie o/path/ é o caminho do seu pendrive.
PC e entre na BIOS. Isto normalmente é feito pressionando a tecla F8, F11 ou F12 nomomento em que seu computador está
escolher a placa Asus Nvidia GeForce GTX 760 2GB GDDR5 MiniCine II Mini. memórias (pelos menos, 8 GB) e um disco de Você também vai querer adquirir um cooler,
rígido a partir de 500 GB (ideal 1 TB, caso esteja pensando em instalar muitos jogos). Pronto, agora você tem uma máquina que está à altura do PS4 e do Xbox One.

placa-mãe também deve seguir esse padrão – obviamente, o processador escolhido deverá ser compatível com ela. Ah, não se esqueça de adquirir uma placa-mãe que venha com Wi-Fi
embutido – você não vai querer sair tropeçando em cabos pela a sua sala.(placa de vídeo). Para facilitar a compatibilidade Agora, você precisa pensar na placa gráfica
(caso sua configuração seja parecida com a nossa), escolha uma Nvidia. Alguns gabinetes Mini-ITX têm espaço limitado para placas gráficas. Então, em nosso exemplo, escolhemos
a Asus GeForce GTX 970 DirectCU Mini. Esta é uma placa excelente e minúscula, que executa os jogos mais recentes com facilidade. Ela é um pouco cara, mas vale a pena o investimento. Se
você quiser economizar, talvez seja o caso de

os melhores componentes para montar a sua formidável Escolha
máquina de jogos.

A explosão dos jogos de 1.000 títulos disponíveis. Montar a sua própria triple-A chegou ao Linux, com mais
máquina de jogos dedicada nunca foi tão fácil!

Monte a sua
própria Máquina
Steam

Jdeixar de fazê-lo – e se concentrarem mais tempo no suporte para Windows. A dura verdade é ogos no Linux era um problema no passado, geralmente ocasionado por erros de desenvolvedores apressados em criar o suporte para Linux – ou
que o sistema operacional da Microsoft é encontrado na grande maioria dos PCs de jogos, cuja base de usuários
Windows é cerca de 95,68% em mais de 125 milhões de clientes ativos (fonte: Steam Hardware Survey). Felizmente, a maré mudou e os jogos para Linux estão
chegando cada vez mais. O desejo da Microsoft de criar um jardim murado em seu

sistema preocupou a Valve, a desenvolvedora da amada série Half-Life, e a empresa por trás do serviço Steam, é claro, que criou um distro baseada e no Debian, chamada SteamOS,
cujo foco são os jogos.
Linux, e a gente se perguntou o porquê de ela ter demorado tanto tempo, mas o fato é que isso chamou a atenção gamers de PC que A Valve demorou um tempo para abraçar o
ainda não haviam considerado o Linux antes.

Com o apoio da Valve, um número crescente de desenvolvedores está portando seus jogos para Linux, ao mesmo tempo em que muitos fabricantes de hardware, particularmente os
de placas gráficas, estão fazendo progresso no suporte ao Linux por meio de seus drivers.Agora está mais fácil do
que nunca jogar no Linux – temos acesso aos títulos mais recentes, suporte a hardwares mais poderosos e não temos
mais que fazer jogos funcionarem via Wine ou gastar com licenças Windows. E o melhor, muitos usuários podem notar uma melhora significativa de performance no computador
ao migrar para o Linux.

“Agora está mais fácil do que nunca jogar no Linux – temos
acesso aos títulos mais recentes”

“A interface foi especialmente projetada para navegar por meio de controle de jogos em
uma tela grande”

DESKTOP LINUX Escolha o ambiente certo para você


PRIVACIDADE Como proteger os seus servidores?


BANCO DE DADOS Conheça a solução NoSQL


REDE Como colocar o Windows e o Linux para conversar


TUTORIAIS! GUIAS ESPECIAIS PARA VOCÊ


MANDAR BEM NO LINUX


O sistema Linux é quase impenetrável, mas
será que seus servidores estão protegidos?

Àde desktop Linux não têm muito o que temer em termos de vírus e malwares do que seus equivalentes do Windows. s vezes, você ouve por aí que o Linux é “mais seguro” do que o Windows. Até certo ponto, isto está certo, pois usuários
Não é que eles não existam, mas como representam uma parte tão pequena do ecossistema de malwares, é perfeitamente razoável não se
preocupar muito com eles, desde que você adobe bons hábitos de navegação. números: qualquer pesquisa colocará o Isso se resume a um simples jogo de
Linux com menos de 2% na fatia de mercado de desktops. Assim, faz muito sentido os criadores de malwares direcionarem seus esforços para o
Windows e (cada vez mais) os sistemas Mac. As vítimas podem ser infectadas de várias maneiras: geralmente, abrindo links e anexos de e-mail maliciosos ou visitando
sites suspeitos. Muitas vezes, vulnerabilidades de sistema operacional são exploradas, permitindo que um invasor execute remotamente códigos na máquina
da vítima. Sites mal-intencionado podem, por meio de uma variedade de técnicas, tentar colocar malwares na máquina do

usuário que os visita. Mas, de longe, o meio de ataque que mais prevalece é o plugin Flash, da Adobe.Applets (miniaplicações) maliciosas

podem executar arbitrariamente códigos de forma remota na máquina infectada, inteiramente sem o conhecimento do usuário. É fácil (e, em alguns casos
justificado), atribuir a Adobe pelo código

desonesto, mas, novamente, a real questão é que muitas pessoas têm o Flash instado em suas máquinas, e isso as tornam um alvo potencial. Isso também é verdade

para o o Adobe Reader da Adobe e o plugin Java da Oracle. O Chrome 42 desativou o suporte oficial para todos os plugins NPAPI, os evidenciando como
uma grande superfície de ataque contra o navegador.permitem que os mawares se imponham Mas os servidores web vulneráveis que
são, na maioria das vezes, máquinas Linux. Na verdade, existem várias formas pelas quais um servidor Linux pode acabar “possuída” por esses vilões. E se
nele estiver hospedado um site popular ou um banco de dados sensível, isso é mais uma motivação para alguém tentar invadi-lo. Muitas vezez, mossos leitores
nos perguntam sobre como configurar um pacote LAMP seguro ou similar, mas, infelizmente, não há realmente uma

Segurança


Assustado? Talvez você devesse estar. Aqui, nos
aprofundamos para lançar alguma luz sobre
o mundo sombrio de malwares Linux...

Uma canção
de ameaça e
prevenção

“As vítimas podem ser infectadas de várias maneiras: geralmente, abrindo
links e anexos de e-mail maliciosos ou visitando sites suspeitos.”

Como fazer update quando você não puder fazê-loExistem, infelizmente, uma variedade de servidores rodando distros antigas e sem
suporte. Os administradores delas devem unir esforços para atualizá-las, mas se, em seu caso, isso estiver fora de questão, então você deve tentar fazer o backup de importantes
correções de segurança. Às vezes, as pessoas cederão generosamente pacotes para a sua distro antiga, mas isso pode suscitar questões de segurança.
próprios pacotes, incorporando novas correções de segurança. Os pacotes fonte Em geral, você terá que lançar seus

para distros antigas são fáceis de encontrar (para versões antigas do Ubuntu acesse https://launchpad.netendereço http://archive.debian.org e, para Debian, o ).
virtual cuja configuração esteja a mais próxima de seu servidor antigo e que você possa gerenciá-la. Você também precisará trabalhar com ferramentas É uma ótima ideia configurar uma máquina gcc (GNU
Compiler Collection) cuja configuração pode envolver alguma dificuldade de dependências, e você também precisará de todas as dependências de compilação do pacote.

atualizações da versão principal do software vulnerável, já que isto irá provavelmente obstruir o seu sistema. Em vez disso, os Você não vai querer fazer quaisquer
patches precisarão ser ajustados para a versão antiga, que envolverá algumas tentativas e erros. Se você estiver usando uma distro baseada no Debian, adicione o patch no diretório debian/patches/all
directoryadicione o nome do patch em patches/seriesdebuild para preparar o pacote., dentro do diretório do pacote e. Em seguida, execute debian/

O Munin é uma ferramenta baseada na web para representar o histórico de dados.

Segurança | Malware

50 | Manual do Hacker Manual do Hacker | 51

Segurança | Malware

Colocamos o Linux e o Windows frente a
frente para ver qual deles é o melhor!

20 | The Hacker’s Manual 201620 | Manual do Hacker Manual do Hacker | 21 The Hacker’s Manual 2016 | 21

Distros | Windows vs Linux

Distros | Windows vs Linux

Fatia de mercadoO Windows 7, lançado três anos depois do Windows Vista, fez um ótimo trabalho em
melhorar alguns de seus predecessores, tornando-se um sistema operacional melhor do que o Vista.A adoção foi bastante cautelosa, mas, no
terceiro trimestre de 2011, conseguiu superar a fatia de usuários do XP. Infelizmente para a Microsoft, muitos usuários obstinados se recusavam a sair do XP. De certa forma, o seu mais bem-
sucedido sistema operacional também foi o seu maior tormento. Ainda hoje, 16 anos desde que foi lançado, o dinossauro azul e verde XPanda por aí (lutando para respirar).
com uma interface denominada inicialmente Em 2012, a Microsoft trouxe o Windows 8,

de Metro. A despeito de essa versão tirar vantagem de notebooks com telas sensíveis ao toque, usuários de desktop se sentiram desconfortáveis e confusos, principalmente
pela falta do menu Iniciar e da área de trabalho padrão, que ficavam escondidos sob uma interface não muito intuitiva. Este sistema operacional foi acusado de estar em
meio a uma crise de identidade – um misto de aplicativos para gestos multitoques e para uso padrão de desktop, causando contradição. O Windows 8.1, uma versão
lançada um ano depois, atendendo a protestos dos usuários, recuou em muitas de suas decisões de projeto e conseguiu ter umaaceitação melhor, mas a navegação na
interface por meio de teclado e mouse ainda

permanecia estranha. Até hoje, há usuários tanto do Windows 8.1 como do Windows XP, ambos tomando cerca de 13% da fatia de mercado Windows.
o XP estão diante de um trilema: não fazernada, atualizar para o Windows 7 ou fazer uma aposta no Windows 8.1. O primeiro não é Atualmente, empresas que ainda utilizam
uma ideia viável, por muitas razões. O segundo parece ser uma opção mais segura, mas o Windows 7 é um sistema que já tem 8 anos, cujo suporte básico terminou em 2015,
e o suporte estendido terminará em 2020. O Windows 8.1 talvez seja a melhor solução, dada a semelhança com o seu sucessor,Windows 10, pelo menos até que as empresas
julguem este suficientemente estável.

Windows é coisa do passado

geral, podemos dizer que a Microsoft de hoje é muito diferente daquela de ontem. Ela ainda domina os desktops em todo o mundo (embora dividido entre os últimos cinco
sistemas que destacamos linhas atrás e com as distros de Linux, bem como com o OS X), mas isso parece que não irá durar muito, e o CEO da empresa, Satya Nadella,
tem consciência disso.dispositivos móveis, e a Microsoft está ficando para trás nesse segmento. Um dos A verdadeira batalha está ocorrendo em
recursos mais apreciados do Windows 10 é a convergência de plataforma: PC, Xbox, dispositivos Windows Mobile, Surface Hubs e até mesmo a compilação do Windows 10
para o Raspberry Pi serão executados em um núcleo unificado do Windows, de modo que um aplicativo seja executado eficientemente em qualquer uma dessas
plataformas. Para tablets/notebooks conversíveis há também o recurso Continuum, que garante que os aplicativos transitem da interface de um dispositivo

para a interface de outro diferente, sem prejuízo da continuidade do trabalho. Quando o Windows Phone 10 for lançado, ele permitirá que os usuários conectem seu
smartphone a um monitor, mouse e teclado e use-o como um PC normal. das palavra-chave da Canonical desde a Convergência também tem sido uma
introdução de sua controvertida área de trabalho Unity. Dois smartphones Ubuntu já foram lançados, mas dependem da Unity 8, que incorpora o novo servidor de
exibição Mir. Essas tecnologias ainda têm um longo caminho a percorrer antes de serem estáveis para o uso em uma área de trabalho, embora desenvolvedores
corajosos poderão tentar fazê-lo funcionar por meio do canal Ubuntu Next. É claro que a Microsoft alcançará a convergência antes da Canonical, mas o verdadeiro
desafio para ambas as partes (ainda peixes pequenos no ecossistema móvel) será aproveitar esse recurso para conquistar os consumidores.
Cvencedor. Na realidade, isso é o mesmo que comparar maçãs e laranjas e, depois, pontuar olocamos lado a lado o sistema operacional Microsoft com o Linux para determinar qual deles sai
com bananas: um tem como base o código livre, que pode ser executado na maioria dos hardwares, e o
outro, um produto proprietário com uma GUI que, até recentemente, funcionava somente em PCs x86. Em nossa abordagem,
consideramos os recursos de uma do Windows 10 disponível até o build

fechamento desta edição e os comparamos com seus equivalentes a várias distribuições do Linux.O discurso de lançamento do Windows
10 anunciava uma mudança de paradigma
no cenário do Windows. Há novidades louváveis e, talvez, a mais notável seja a de que o Windows 10 represente a últimaencarnação do sistema operacional. Isso
não significa o fim do Windows, mas o

início do “Windows como um serviço” (Windows as a service).“empurrada” para o consumidor final A atualização do sistema foi
que possuía uma máquina qualificada para o upgrade gratuito (por exemplo, um Windows 8 legítimo pré instalado) – este
terá sempre a versão mais recente do sistema, sem custo. Além disso, os usuários inscritos no
Windows Insider Program podem testar as novas versões do Windows antes do seu lançamento oficial – umaoportunidade de testar os novos
recursos sem ter de pagar.

Pfuncionou muito bem. O Windows Vista não foi bem recebido, principalmente em razão das exigências mínimas de hardware para odemos perdoar a Microsoft por abandonar sua estratégia de fazer lançamentos discretos, pois isso não
rodar o sistema, mas este teve alguns pontos positivos. constantes do Controle de Conta de Usuário É bem verdade que aquelas interrupções
(UAC) eram irritantes, mas isso foi uma ideia bem intencionada, cujo intuito era implementar melhores privilégios de conta de usuário para o Windows. O DirectX 10 introduziu novos
recursos multimídia interessantes, e o modelo de driver WDDM proporcionava uma melhor performance gráfica. Mas, pelo conjunto, o Vista foi visto como um fracasso, ignorado
tanto pelos usuários domésticos quanto pelas empresas. Não conseguiu nada mais do 21% da parcela do mercado.Em suma, possuir uma única versão do
Windows significa evitar problemas de fragmentação para a Microsoft e minimizar problemas com seus clientes. Muitos preferiram ficar com o Windows 8, em vez de
fazer o upgrade de sistema, com o receio de encontrar dificuldades. Em questões visuais, o Windows 10 não chega a ser tão diferente do Windows 8.1. Se a Microsoft realmente
queria evitar nomear sua última progênie de Windows 9, então o 8.2 seria um título muito mais interessante. É claro que é um
você encontrará o mesmo Gerenciador de Dispositivos que existia desde o Windows XP. código, mas ao esmiuçar as configurações, segredo o quão diferente é a base do
É hora de colocar a Microsoft contra o batalhão Linux Você notará também os arquivos win.ini e system.ini, que datam do Windows 3.1. Mas, no

Poder acampar sob a via láctea não torna um sistema operacional revolucionário.

“Colocamos lado a lado o Windows com o Linux para determinar qual
deles sai vencedor. ”

LINUX
WINDOWSVS

Tudo o que você sempre quis saber sobre
NoSQL, mas teve medo de perguntar

78 | Manual do Hacker Manual do Hacker | 79

Programação | Banco de dados NoSQL

Programação | Banco de dados NoSQL

Pé um banco de dados que começou a sua vida sem usar a linguagem padrão SQL. Mais ode levar décadas para que percebamos as transformações de uma revolução. Criado em 1998, o NoSQL (Not Only SQL)
revolucionário, o NoSQL se afastou dos modelos de bancos de dados atuais para criar algo com melhor
performance e maior escalabilidade de armazenamento de grandes volumes de dados.
dados NoSQL, originalmente projetado Como o nome sugere, o banco de

informações complexas, você deve desconstruí-los em partes e campos e armazená-las em muitas tabelas diferentes.
dados, você deve recuperar todas as partes e campos e colocá-los de volta novamente. Nenhuma dessas duas tarefas é eficiente, Da mesma forma, para restaurar os
especialmente se você tem um website grande que armazena e consulta dados o tempo todo. O próximo passo lógico consiste em
usar muitas máquinas para rodar o seu banco de dados, mas isso também cria um problema, porque os bancos de dados relacionais foram originalmente projetados
para serem executados como sistemas de um único nó (single-node). Assim, as grandes empresas, como Google e Amazon, desenvolveram seus próprios
sistemas de banco de dados relacionais tradicionais, e inspiraram o movimento NoSQL. É bastante difícil definir o que é um
banco de dados NoSQL, mas você pode identificar algumas características comuns entres os bancos de dados NoSQL: eles não são relacionais, são de código fonte
aberto (embora nem sempre), sem

para não usar o SQL, ele pode, em vez disso, adotar diferentes linguagens. Quando surgiu em 1998, o NoSQL não ganhou importância até os anos 2.000 quando foi adotado como
um recuperador de hashtag no Twitter para
um grupo de projetos de banco de dados não-relacionais distribuído que estava atrás de algo pequeno e exclusivo.

ou não a pena considerar o banco de dados NoSQL, você deve estar ciente de que, de acordo com o DB-Engines Se você estiver se perguntando se vale
Ranking (https://db-engines.com/en/rankingpopular banco de dados NoSQL, é atualmente o ), o MongoDB, um
quinto mais popular, depois de Oracle, MySQL, Microsoft SQL Server e PostgreSQL – e até mesmo
banco de dados.O problema com banco de dados a Oracle tem uma versão NoSQL de seu famoso
relacionais é que, para armazenar

esquemas, fácil de ser distribuído em muitas máquinas (novamente, nem sempre), entre outras.Assim, os bancos de dados NoSQL são
projetados para a web e não oferecem suporte a junções, processos e outros recursos da linguagem SQL. Sua terminologia também é um pouco
diferente, mas vamos mergulhar nos detalhes.dados NoSQL é que eles são adequados e A principal vantagem de banco de
eficientes para grandes armazenamento de dados e aplicações web em tempo real. Eles também oferecem fácil escalabilidade e permitem a implementação de alta
disponibilidade de forma indolor. Eles também são geralmente mais fáceis de administrar, configurar e executar, e podem armazenar objetos complexos.
Além disso, é mais fácil desenvolver aplicativos para e com bases de dados NoSQL. Seu esquema pode mudar facilmente sem tempo de inatividade
porque, na verdade, eles não possuem esquemas. A maioria dos bancos de dados NoSQL, com exceção do Oracle NoSQL, são projetos de código fonte abertos.
As principais desvantagens dos bancos

de dados NoSQL incluem o fato de que eles exigem uma maneira totalmente nova de pensar e você, ainda, precisa de um DBA em projetos grandes e/ou críticos. Se
a sua empresa precisar usar bancos de dados SQL e NoSQL, você terá dois sistemas totalmente diferentes para programar e administrar e, portanto, de
mais pessoas. Os bancos de dados NoSQL, sendo relativamente novos, não são tão maduros como os bancos de dados relacionais; portanto, escolher banco de
dados NoSQL para um problema crítico pode não parecer a solução mais segura, mas isso não será um problema em alguns anos. A última desvantagem é o fato de
que, embora pareçam ter nenhum esquema, você precisará assumir um esquema implícito na hora de fazer um trabalho mais sério com seus dados. Isso
não é inesperado, porque enquanto você estiver trabalhando com dados, não poderá fugir do esquema, mesmo um informal. Existe vários tipos de bancos de dados
NoSQL, cada um sendo bom em uma ou mais áreas, mas não em todas. Você pode categorizar os bancos de dados NoSQL de acordo com seus modelos de dados:
muito comum. Ele interpreta o banco de dados como um grande armazenamento para documentos, em que cada^ Document Este é um modelo de dados
documento é uma estrutura de dados de várias partes, normalmente representada na forma de JSON. Você pode, ainda, armazenar documentos em qualquer
formato desejado. MongoDB, CouchDB e RavenDB são documentos representativos do banco de dados NoSQL.
de dados comum que é semelhante à estrutura de dados do mapa estrutura de dados, em que você tem a^ Key-Value Este também é um modelo hash de
chave (key) e solicita ao banco de dados que ele devolva o valor armazenado para a chave em questão. Este valor pode ser qualquer coisa, de um único número a um
documento completo. Exemplos de banco de dados key-value NoSQL incluem Redis e Project Voldemort. Riak,

mas teve medo de perguntar. Descubra por que os Tudo o que você sempre quis saber sobre NoSQL,
administradores adoram este sistema de alta performance.

Os bancos de dados NoSQL são projetados para a web e não oferecem suporte a junções
e processos complexos.

as estatísticas de servidor por meio de: http://localhost:10018/stats/. A porta e o número IP são definidos em riak.conf. Todo servidor Riak possui uma interface web. Nesse caso, estamos acessando

MapReduceMapReduce é uma técnica de consulta avançada, bem como uma ferramenta para
agregação de dados usada em bancos de dados NoSQL. É uma técnica alternativa para consultar um banco de dados que difere das técnicas de consulta declarativas
usuais. Você dá as instruções ao banco de dados sobre como encontrar os dados que

você está procurando e o MapReduce tenta encontrar os dados. Usar o MapReduce, às vezes, pode ser muito complicado. No entanto, ele permite que você crie consultas
que teriam sido extremamente desafiadoras de criá-las por meio do SQL.Depois de entender e praticar o processo, você irá considerá-lo mais confiável e útil. A

solução MapReduce leva mais tempo para ser implementada, mas pode desenvolver-se melhor do que uma solução SQL. O mais complicado é decidir se a técnica
MapReduce é ou não apropriada para o problema específico que você está querendo resolver. Esse tipo de conhecimento vem com a experiência!

Quer montar você mesmo a sua máquina
Linux eficiente? Confira aqui!

58 | Manual do Hacker Manual do Hacker | 59

Faça mais | Monte um PC Linux

Faça mais | Monte um PC Linux

A montagem de um PC é fácil, mas escolher os
componentes é um pouco mais difícil. Vamos dar
uma olhada nas opções disponíveis.

Htexto sobre a Companhia Aérea Linux afirma: “Quando embarcar, você receberá um assento, quatro parafusos, uma chave á um texto que percorre na internet há anos, chamado “E se os sistemas operacionais fossem companhias aéreas?”. O
de boca e uma cópia do assento-HOWTO.html.” Esta é uma brincadeira antiga, mas, como usuários
de Linux, estamos mais acostumados a fazer as coisas por nós mesmos do que
usuários de outros sistemas. Não que isso seja necessariamente uma coisa ruim, pois significa que entendemos melhor sobre computadores.

novo computador (ou adquiri-lo online). Mas porque muitas pessoas preferem montar a sua própria máquina? Nas próximas páginas, É muito fácil ir a uma loja física comprar um
tentaremos responder a esta pergunta, bem como as dúvidas mais complexas que surgirem quando você tentar montar o seu computador, por exemplo: qual é o risco de

fazer a montagem?; e quanto à garantia?; vou economizar?; posso montar um computador sem Windows?; e muitas outras. Há muitas razões pelas quais você mesmo

pode montar a sua própria máquina, mas a melhor é a satisfação de conhecer um pouco mais sobre o seu computador. Muitas das informações apresentadas aqui servirão
também para aqueles que desejam fazer upgrades em uma máquina já existente. Aqui, nos concentramos na montagem de um desktop, que geralmente são mais fáceis de
trabalhar, mas muitos dos assuntos tratados sobre a escolha de componentes compatíveis com Linux também se aplicam a notebooks ou
escolhendo os seus próprios componentes, qualquer outro tipo de computador.computador? Você pode economizar Por que montar o seu próprio
mas recomendamos prudência. O que você precisa fazer é escolher a especificação exata do que deseja – sem desperdiçar dinheiro

“Na hora de escolher os componentes, você precisa levar
em conta o seu tipo de uso atual”

MONTE
UM PC
LINUX

Compatibilidade Linux

Relembre a Lei de MooreA Lei de Moore prevê um duplicação do poder de processamento do computador (a
computação de modo geral) a cada 18 meses. A menos que você deseje montar um computador novo todos os anos, o ideal é fazê-lo de modo que sua configuração
permita upgrades durante a sua vida útil. Por exemplo, se você precisa de 16 GB de

RAM, compre uma placa-mãe cuja capacidade seja de 32 GB. Assim, vocêainda poderá fazer o upgrade usando a mesma placa-mãe. O mesmo vale para o
armazenamento: adquira uma placa-mae com fartura de conectores SATA, para adicionar mais HD e/ou disco SSD no futuro.

O suporte a hardware no Linux é bom nos dias de hoje. Muitos dispositivos já são suportados diretamente pelo kernel, dispensando a necessidade de sair em busca dos drivers nos sites dos fabricantes. Quando estiver comprando os componentes para o seu computador,
você precisar descobrir se há suporte para ele. O primeiro passo é determinar o componente exato em uso, o que não é tão fácil quanto parece. O site do fabricante da placa-mãe pode indicar que ela possui porta Ethernet Gigabit, mas não lhe informar qual é o chipset. Então,
você terá que fazer alguma pesquisa. palavra Linux, e você terá muitos resultados pertinentes. Vale a pena No site de busca, digite o código completo do produto, seguido da

restringir a sua pesquisa a postagens mais recentes. Procure por postagens que forneçam detalhes, como códigos de chipset e nomes de módulos. Também vale a pena pesquisar em fóruns (por exemplo em http://www.linuxquestions.org).
fabricantes não oferecem ajuda aos desenvolvedores do driver do kernel, então tudo tem de ser feito por meio de engenharia reversa – isso geralmente se aplica a adaptadores sem fio, mas algumas placas Problemas de compatibilidade sempre ocorrem, porque os
de som também são afetadas. Outra razão de incompatibilidade pode ser porque o hardware é tão novo que o suporte ainda não foi adicionado ao kernel da sua distribuição Linux favorita.

você deve escolher, mas oferecer as informações para que você mesmo tome suas próprias decisões com base nas suas A ideia não é dizer quais componentes
necessidades específicas. Após a montagem de seu computador, você precisará instalar um sistema operacional e os aplicativos. Naturalmente, estamos
presumindo que você irá instalar o Linux, mas talvez você queira instalar também o Windows em determinados jogos ou outros aplicativos dual-boot para poder executar
para necessidades específicas. Mas não se preocupe, pois vamos demonstrar com instalar os dois sistemas na mesma máquina e fazê-los conviver em (quase)
harmonia. Escolhendo os componentes
Na hora de escolher os componentes, você precisa levar em conta o seu tipo de uso atual, bem como as suas necessidades futuras. Isso pode alterar dramaticamente
quais componentes escolher. Um PC gamer, por exemplo, precisa de muito armazenamento em disco e velocidade de acesso aos dados. O recomendável é que,
em conjunto com um HD, você use um disco SSD para instalar o sistema e salvar os arquivos atuais – os demais arquivos, cujo acesso é menos frequente, podem ser
salvos em um disco rígido comum. No caso do servidor NAS, a capacidade importa, mas a velocidade de acesso não precisa ser tão elevada.
considerar: compatibilidade. Embora nos Usuários Linux tem outro aspecto a

o que o fabricante colocou dentro dele, ou você mesmo pode montar o seu e obter exatamente o que deseja. Você pode comprar um desses e aceitar dias de hoje a situação seja muito melhor do que no passado, ainda há componentes que são melhor suportados do que outros. Vamos focar nos principais componentes de que você precisa e ver quais são as opções disponíveis.
ProcessadorA primeira decisão a ser tomada é escolher qual processador será usado, pois isso influenciará a escolha da placa-mãe e, em
seguida, praticamente todo o resto. Tal escolha pode parecer óbvia: obter o mais rápido que você puder pagar, mas as coisas nunca são tão simples. Processadores mais
rápidos são mais caros (muito mais caros). Porém, a velocidade do processador não é tudo – a memória também pode ter um efeito maior em relação ao desempenho do
computador, de modo que você pode economizar um pouco no processador e

desempenho para o seu processador preferido. Encontre o melhor custo-benefício/

naquilo que você queria exatamente. Você pode também escolher a qualidade dos componentes que deseja usar. O HD do computador que você já compra montado
pode, por exemplo, não vir com a capacidade que você deseja. Além disso, os fabricantes de disco rígido produzem unidades de mesmo tamanho mas com velocidades variáveis e
diferentes consumos de energia. Você aprenderá sobre os componentes fazendo isso você mesmo. E o fato de você mesmo montar o seu computador lhe dará mais
confiança na hora de abri-lo para fazer os upgrades, por exemplo, trocar o disco rígido, as memórias, entre outros componentes.
O que você precisa?Dependendo de sua necessidade, existe vários tipos de configurações de computador. No mínimo, você precisa de: processador,
placa-mãe, memória, disco rígido, placa de vídeo, gabinete e fonte de alimentação. Você também pode precisar de um monitor, teclado e mouse; mas talvez você queira
montar um computador para centro de mídia de sua casa, para conectar à sua TV ou simplesmente uma máquina para ser usada como um servidor NAS (para armazenar
arquivos de uma rede). Mais adiante, explicaremos sobre estas escolhas.

Veja como Windows e Linux podem se
enxergar em uma mesma rede

66 | Manual do Hacker Manual do Hacker | 67

Faça mais | Samba

Faça mais | Samba

SMBFS e CIFS

Dica esperta!

Duas implementações de arquivos de sistema virtuais no Linux permitem a montagem de compartilhamentos SMB: SMBFS e CIFS. O último é a mais nova implementação e está
incorporada ao núcleo. As ferramentas que você precisará para utilizar o CIFS eram, originalmente, parte do Samba, mas agora são um pacote separado, chamado cifs-utils.
suíte do Samba, ficou obsoleto – você deve O SMBFS original, que também é parte da

utilizar o CIFS para montar os arquivos de sistema do Samba. O resultado disso é que, se você apenas quer montar compartilhamentos Windows na sua
máquina Linux, você não precisa do Samba. Montar um compartilhamento Windows é simples assim:mount -t cifs -o
username=myuser,password=mypass //myserver/myshare /mnt

um pouco confusa, porque o dialeto CIFS é mais recente do que o SMB, mas mais velho do que o SMB2, enquanto que o CIFS é mais novo A diferença entre o CIFS e o SMB pode ser
do que o SMBFS e suporta SMB, CIFS e os mais recentes dialetos SMB2 e SMB3. Para mais detalhes, veja o guia de usuário: bit.ly/1JFFIn4. As especificações de protocolo http://
SMB e CIFS são publicadas em ly/1FakGHQ e http://bit.ly/1hNoqKOhttp://bit..

Você não precisa reiniciar o Samba quando modificar o mudanças automaticamente.smb.conf, porque ele detecta

totalmente a funcionalidade do controlador de domínio Active Directory, fazendo uma substituição efetiva para as funções equivalentes na linha de produtos Windows
Server da Microsoft. Samba é uma implementação código aberto dos protocolos Server Message Block ou SMB.É uma aplicação de camada de protocolo
de rede que foi originalmente desenvolvida pela IBM para fornecer acesso compartilhado para arquivos e impressoras. A Microsoft entendeu sua implementação para suporte
da autenticação SMB usando seu próprio NT LAN Manager (NTLM) e, mais tarde, protocolos NTLMv2. Esta implementação é chamada de Common Internet File System,
ou CIFS. Novas extensões, incluindo suporte para links simbólicos foram lançadas como SMB2 com o Windows Vista.Samba oferece suporte SMB2 desde a
versão 3.6. A Microsoft introduziu o SMB2.1 com o Windows 7 e SMB3 com Windows 8. Ele chama diferentes versões dos dialetos de protocolo, portanto o CIFS e o SMB2 são
dialetos do protocolo SMB. Enquanto estes dialetos são proprietários, suas especificações estão disponíveis para o público; um dos resultados da liquidação da Microsoft com as
cortes europeias em 2004 foi o lançamento de uma documentação completa para autenticação de rede com o Active Directory. Isto resultou no desenvolvimento da versão 4
do Samba, com a própria Microsoft estando envolvida e testando.como AD) é uma locação central para a Active Directory (ou também conhecido
administração de computadores Windows em rede. Servidores que podem rodar o Active Directory são chamados de controladores de domínio (que nós podemos abreviar como
ADDC, da sigla em inglês) que autenticam e autorizam todos os usuários e computadores em uma rede Windows, atribuindo e aplicando

políticas de segurança para todos os computadores que são parte de um domínio Windows, o ADDC verifica a senha inserida e determina se o usuário em um sistema é
administrador ou convidado. O AD faz uso das versões 2 e 3 do Lightweight Directory Access Protocol (LDAP), Kerberos e DNS. Samba utiliza sua própria implementação LDAP
chamada Ibd; ela não suporta o uso do OpenLDAP para Active Directory.
Samba – uma é como sempre tem sido usada (o clássico Samba), que pode ser operadocomo um domínio membro ou automático e é Sendo assim, há duas maneiras de usar o
tudo o que você precisa para configurar compartilhamentos básicos. A outra maneira de utilizar o Samba dependerá das suas necessidades, mas a primeira coisa que
precisa ser feita é instalá-lo. A maioria das distribuições devem tê-lo em estoque, embora o Samba 3.6 ainda possa ser a opção padrão. A outra opção é buscá-lo na fonte: http://www.
samba.org/samba/downloadconfiguração do Samba é chamado e normalmente é encontrado em uma Assim que for instalado, o arquivo de .smb.conf
subpasta como mais simples é compartilhada publicamente:[global] server string = Samba Server Version/etc/samba. A configuração
%v (where permitted) # Treat unknown users as a guest security = user

(^) [tmp] map to guest = Bad Userpath = /tmpread only = No
browsable = Yesguest ok = Yesforce user = nobodyforce group = nobody
create mask = 0755directory mask = 0755
disponível assim como o Samba compartilha o TCP/IP. O uso de security = user e map toguest permite compartilhamentos para Isto tornará o /tmp no servidor
operar similarmente ao obsoleto modo security = shareSamba podem estar familiarizados. Um usuário com um nome de usuário Windows que administradores do
que o Samba não reconhece não precisará fornecer credenciais para acessar o compartilhamento e eles serão autenticados como
usuários convidados. Quaisquer arquivos que eles editarem terão os suas identificações de
usuário e grupo configuradas para “ninguém”. Entretanto, se o nome de usuário for conhecido pelo Samba, então o usuário terá sua senha solicitada. Isso pode parecer
estranho, mas é consistente com a forma que o Windows funciona.tornar este compartilhamento acessível no Comece o Samba daemon, smbd, para
Windows. Para acessá-lo, basta usar o Windows Explorer para navegar até o servidor Samba (você pode tanto utilizar o nome quanto o endereço IP).
associado com a rede Windows há tempos e, portanto, uma parte integral do Samba suite: NetBIOS. Atualmente, NetBIOS geralmente Existe outro protocolo que tem sido
refere-se ao NetBIOS do protocolo TCP/IP, que é considerado um protocolo de legado. Ele oferece resoluções de nome, arquivo e impressora compartilhada com dispositivos
que não têm capacidades DNS. Ele é usado essencialmente em uma rede Windows, mas não é mais necessário ao menos que haja versões mais velhas do Windows envolvidas,
mas você ainda precisará dela se quiser que clientes rodando sistemas operacionais anteriores ao Windows 2000 sejam capazes de acessar seus compartilhamentos. Se você
não quer o NetBIOS, as adições a seguir aseção [global] # disable NetBIOS[global] do smb.conf, faça isso:
disable netbios = yes smb ports = 445
Tuma rede com computadores Windows e sabemos que Samba é o que permite compartilhar arquivos de sistema odos amamos nossas máquinas Linux, mas a maioria de nós, em algum momento, precisa coexistir em
entre Linux e Windows.isso e, com a versão 4, está completamente compatível com oMas ele faz muito mais do que
Active Directory da Microsoft. Isto
é uma grande coisa – Samba tem sido capaz de agir como um Windows NT 4.0 Domain Controller ou em um existente Windows NT 4.0 Domain. Mas com o
lançamento do Windows 2000, a Microsoft
começou a distanciar-se dos controles NT Domain para o seu novo Active Directory aumentando a lacuna entre os ecossistemas Linux e Windows. A versão 4
do Samba fornece a solução bastante esperada para este problema sendo completamente
“Samba 4 implementa totalmente a funcionalidade do controlador de domínio Active Directory” compatível com o Active Directory.Eleimplementa
A suíte de interoperabilidade padrão do Windows para Linux agora conta com suporte Active
Directory. Vamos dar uma olhada
Dançando com o Windows
“A maneira que você usa o Samba dependerá das suas necessidades”
Samba
Ano 01
Edição 02
Grupo Unico PDF Passe@diante

Free download pdf