Inspirováni nedávným příspěvkem na komunitním blogu jsme se rozhodli přidat nový oficiální způsob, jak může naše komunita používat Kali. Od nynějška můžete najít oficiálně udržovaný obraz Kali Linuxu ve Vagrant Cloud.
Co je to Vagrant?
Z webu Vagrant:
Vagrant je nástroj pro vytváření a správu prostředí virtuálních strojů v jediném pracovním postupu.
Jednoduše řečeno, s jediným konfiguračním souborem si můžete stáhnout základní „box“ a použít další konfigurace, jako je přidání dalšího síťového rozhraní, nastavení počtu jader CPU a paměti nebo spuštění skriptu při prvním spuštění. Ještě důležitější je, že toto vše je obsaženo v konfiguračním souboru, který lze velmi snadno sdílet ve srovnání s virtuálním strojem, který má mnoho gigabajtů.
Začínáme
Chcete-li začít, nejprve nainstalujte Vagrant a VirtualBox. Poté vytvořte prázdný adresář a odtud spusťte následující příkaz:
$ vagrant init kalilinux/rolling
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.
Tím se vytvoří soubor s názvem Vagrantfile , který obsahuje všechny možnosti konfigurace pro virtuální počítač. Každý příkaz „vagrant“ musí být spuštěn z adresáře obsahujícího tento soubor. Ve výchozím nastavení obsahuje pouze název boxu a také mnoho komentovaných běžných možností. Některé z nich zkontrolujeme později, ale zde je úryvek.
$ cat Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :
# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
Vagrant.configure("2") do |config|
# The most common configuration options are documented and commented below.
# For a complete reference, please see the online documentation at
# https://docs.vagrantup.com.
# Every Vagrant development environment requires a box. You can search for
# boxes at https://vagrantcloud.com/search.
config.vm.box = "kalilinux/rolling"
...
# Create a forwarded port mapping which allows access to a specific port
# within the machine from a port on the host machine. In the example below,
# accessing "localhost:8080" will access port 80 on the guest machine.
# NOTE: This will enable public access to the opened port
# config.vm.network "forwarded_port", guest: 80, host: 8080
...
end
Dále se ujistěte, že máte dostatek místa na disku. Tulácká „krabice“ (můžete si to představit jako šablonu) využívá přibližně 4 GB a spřádaný virtuální počítač zabere přibližně 10 GB nebo více v závislosti na tom, co nainstalujete dovnitř. Poté spusťte tento příkaz:
$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'kalilinux/rolling' could not be found. Attempting to find and install...
default: Box Provider: virtualbox
default: Box Version: >= 0
==> default: Loading metadata for box 'kalilinux/rolling'
default: URL: https://vagrantcloud.com/kalilinux/rolling
==> default: Adding box 'kalilinux/rolling' (v2018.3.1) for provider: virtualbox
default: Downloading: https://vagrantcloud.com/kalilinux/boxes/rolling/versions/2018.3.1/providers/virtualbox.box
...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Mounting shared folders...
default: /vagrant => /Users/woodbine/vagrant-boxes/kali
Vagrant nejprve stáhne soubor krabice, pokud není v mezipaměti, poté vytvoří virtuální počítač Kali a zapne jej. Zobrazí se uživatelské rozhraní VirtualBox, takže můžete Kali normálně používat s root/toor pověření. Vagrant veteráni by si mohli všimnout, že VM není bezhlavý, na rozdíl od většiny ostatních Vagrant boxů. Rozhodli jsme se zobrazovat GUI jako výchozí, protože to vyžaduje mnoho nástrojů Kali. Pokud GUI nepotřebujete, můžete jej deaktivovat v Vagrantfile (viz níže příklad konfigurace) a spusťte následující příkaz pro SSH do počítače jako vagrant uživatel.
$ vagrant ssh
Linux kali 4.18.0-kali1-amd64 #1 SMP Debian 4.18.6-1kali1 (2018-09-10) x86_64
The programs included with the Kali GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Kali GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
[email protected]:~$
Tento uživatel má konfigurováno sudo bez hesla s heslem vagrant , podle konvencí Vagrant.
Konfigurace
Virtuální počítač je dodáván s předkonfigurovaným rozhraním NAT, takže nemusíte upravovat konfiguraci, abyste měli přístup k internetu z virtuálního počítače. Kromě toho Vagrant ve výchozím nastavení vytvoří sdílenou složku:aktuální adresář na hostiteli (ten, který obsahuje Vagrantfile ) je k dispozici v /vagrant adresář hosta. Tento adresář vám umožňuje uchovávat data uložená na hostiteli, ale snadno dostupná pro hosta. To je dobrý postup, protože vám to umožní rychle resetovat váš počítač Vagrant a nikdy neztratíte data.
Podívejme se, co dalšího můžeme udělat s malou konfigurací.
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.box = "kalilinux/rolling"
# Create a forwarded port
config.vm.network "forwarded_port", guest: 80, host: 8080
# Create a private network. In VirtualBox, this is a Host-Only network
config.vm.network "private_network", ip: "192.168.33.10"
# VirtualBox specific settings
config.vm.provider "virtualbox" do |vb|
# Hide the VirtualBox GUI when booting the machine
vb.gui = false
# Customize the amount of memory on the VM:
vb.memory = "4096"
end
# Provision the machine with a shell script
config.vm.provision "shell", inline: <<-SHELL
apt-get update
apt-get install -y crowbar
SHELL
end
Přidejte/odkomentujte možnosti uvnitř Vagrantfile poté restartujte počítač pomocí následujícího příkazu, aby se změny projevily:
vagrant reload
Prováděcí skript bude spuštěn pouze při prvním spuštění počítače, ale můžete jej znovu spustit pomocí jednoho z těchto příkazů:
vagrant provision # provision the powered on VM
vagrant up --provision # when VM is powered off, power it on then provision
vagrant reload --provision # reboot the VM then provision
Všimněte si, že i když je možné přidat přemostěnou síť (ve Vagrant nazývanou „veřejná síť“, je to pravděpodobně špatný nápad, protože Vagrant je ve výchozím nastavení nezabezpečený.
Zabalení
Doufáme, že vám tato nová nabídka bude užitečná. Ukázali jsme několik jednoduchých věcí, které můžete dělat s Vagrantem, ale nezapomeňte se podívat na oficiální dokumentaci pro další možnosti konfigurace a na Vagrant Cloud pro více krabic!