Install Minio on Ubuntu 18.04 LTS
Minio is a self-hosted solution for creating your own Object storage. It is an alternative for AWS S3, if you have used that service before. The Minio software itself is shipped as a plain binary and even the official documentation suggests you to use it that way, instead of using a package manager. There are, of course, Docker images if you wish to use those to run minio on your VPS.
In this tutorial we will be installing and demonstrating the use of Minio on Ubuntu 18.04 LTS server. This VPS has a static IP and I will be setting up DNS records and TLS connections to make this Object store as secure and production ready as possible.
Here are the prerequisites you would need if you want to follow along:
- A VPS running Ubuntu or any other Linux distro with a static IP (IP_ADDRESS will be our placeholder, replace it with your VPS’ actual IP address)
- A Fully Qualified Domain Name [FQDN]. example.com will be our placeholder.
Installation and Miscellaneous Setup
Let’s login to our VPS and get things ready for Minio to run properly.
1. DNS Setup
Go to the nameserver where your domain’s DNS records are maintained, most likely this is found at your domain registrar’s website. Add an A record, pointing your chosen FQDN (for example minio.example.com ) to your VPS’ IP_ADDRESS.
2. Minio User
Before we install Minio, let’s create a new UNIX user account under whom minio will run. We don’t want to run it as root or as the regular user who may have sudo access or other applications running under it. We create a minio system account, named minio-user:
$ sudo useradd –system minio-user –shell /sbin/nologin
3. Minio Download
Next we download the minio binary (It is written in Go which compiles into a small lightweight binary).
Get the binary
$ curl -O https://dl.minio.io/server/minio/release/linux-amd64/minio
Move the binary to a location where binaries are usually expected to reside:
$ sudo mv minio /usr/local/bin
Make the binary file executable and give minio-user user and group its ownership:
$ sudo chmod +x /usr/local/bin/minio
$ sudo chown minio-user:minio-user /usr/local/bin/minio
4. /etc config files, startup scripts and storage device
We need Minio to start up with system reboot and be recognized as a running service by the OS. Not doing so would result in catastrophes such as when the OOM-killer sees this process and decides that it’s not useful enough. We would also need a directory where the actual data of our object store is going to be saved:
$ sudo mkdir /usr/local/share/minio
$ sudo mkdir /etc/minio
Make sure that minio has full control over these directories:
$ sudo chown minio-user:minio-user /usr/local/share/minio
$ sudo chown minio-user:minio-user /etc/minio
Inside the /etc/default directory we need to create a minio file to specify environment variables like the port number we will be listening on and the directory where the data should be saved (the volume). We created the volume earlier that was the /usr/local/share/minio directory. So use your favourite text editor to create a file /etc/default/minio and add the following contents inside it:
MINIO_VOLUMES=”/usr/local/share/minio/”
MINIO_OPTS=”-C /etc/minio –address minio.example.com:443″
Make sure that you write your VPS’ actual designated FDQN instead of the literal string minio.example.com above. Port number 9000 is what they usually use in the Documentation but we are going to use proper TLS installation listening at port 443. Since it is a port number less than 1024, we need to expressly tell the OS that it is okay for minio to listen on these ports:
$ sudo setcap ‘cap_net_bind_service=+ep’ /usr/local/bin/minio
Lastly, we need to configure the minio service. Fortunately the script that does it is available at their GitHub repo and we will place it at its appropriate place:
$ curl -O https://raw.githubusercontent.com/minio/minio-service/master/linux-systemd/
minio.service
$ sudo mv minio.service /etc/systemd/system
Reload all systemd units and enable minio to start on boot
$ sudo systemctl daemon-reload
$ sudo systemctl enable minio
Lastly, make sure that your firewall allows communication at port 443.
LetsEncrypt TLS Certificates using Certbot
We need to negotiated TLS certificates between our Minio server and LetsEncrypt. Certbot is the client which does this for us and also automates the certificate renewals. Let’s first install Certbot:
$ sudo apt update
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install certbot
Then install the certs, as documented by Minio Docs:
$ sudo certbot certonly –standalone -d minio.example.com –staple-ocsp -m
username@email.com –agree-tos
Here you enter your FQDN for the Minio server after the -d flag and your email address after -m flag. The email address is important as it allows LetsEncrypt to notify you about pending renewals.
Your emails will now be present at /etc/letsencrypt/live/minio.example.com. Of course, the last directory name would depend on your chosen FQDN. Now copy the certs to Minio’s /etc/minio directory and give it permission to access them.
$ cp /etc/letsencrypt/live/minio.ranvirslog.com/fullchain.pem /etc/minio/certs/public.crt
$ cp /etc/letsencrypt/live/minio.ranvirslog.com/privkey.pem /etc/minio/certs/private.key
$ chown minio-user:minio-user /etc/minio/certs/public.crt
$ chown minio-user:minio-user /etc/minio/certs/private.key
Now you are ready to use the service:
$ sudo service minio start
$ sudo service minio status
Output:
- minio.service – Minio
Loaded: loaded (/etc/systemd/system/minio.service; disabled; vendor preset: enabled)
Active: active (running) since Tue 2018-10-09 11:54:41 PDT; 5s ago
Docs: https://docs.minio.io
Process: 15874 ExecStartPre=/bin/bash -c [ -n “$” ] && echo “Variable
MINIO_VOLUMES not set in /etc/default/minio” (code=exited, status=0/SUCCESS)
Main PID: 15877 (minio)
Tasks: 13 (limit: 4915)
CGroup: /system.slice/minio.service
└─15877 /usr/local/bin/minio server -C /etc/minio –address minio.example.com:443 /usr/
local/share/minio/
Oct 09 11:54:41 hostname minio[15877]: Browser Access:
Oct 09 11:54:41 hostname minio[15877]: https://minio.example.com
Oct 09 11:54:41 hostname minio[15877]: Command-line Access: https://docs.minio.io/docs/
minio-client-quickstart-guide
Oct 09 11:54:41 hostname minio[15877]: $ mc config host add myminio
https://minio.example.com
PAMH22LU3YJIFLU82H2E IKJ+qtc0Oqdn46R3dLfsjv5bCnm8UEeIBYpdG8qg
…
The output of this command will contain the access key (PAMH22LU3YJIFLU82H2E) and secret key (IKJ+qtc0Oqdn46R3dLfsjv5bCnm8UEeIBYpdG8qg) for minio as shown in bold letters above. Your keys would be different so don’t copy the ones mentioned here.
Using Minio
Open up your browser and visit https://minio.example.com (make sure to use the FQDN you assigned) and use the access and secret key listed in your service minio status command to login in for the first time.
And you will be greeted by the Minio UI.
Here you can use the plus sign at the bottom left corner to upload files or create a new bucket. I created a new bucket called mybucket.
You can edit its policy to read and write and then upload a few files (say images) into this bucket. Minio will create a unique URL for each object in a bucket. You can set policies for read and write per bucket as well as the expiration date on individual object’s URL.
Conclusion
That’s the basics of how you get started with an object store. The objects themselves are ideally not meant to be modified just read from or added to the buckets. You can integrate this into your application by following the official documentation. It supports a wide range of programming languages ranging from Go, Python, JavaScript to .NET.
piwheels: Speedy Python package installation for the Raspberry Pi
One of the great things about the Python programming language is PyPI, the Python Package Index, where third-party libraries are hosted, available for anyone to install and gain access to pre-existing functionality without starting from scratch. These libraries are handy utilities, written by members of the community, that aren’t found within the Python standard library. But they work in much the same way—you import them into your code and have access to functions and classes you didn’t write yourself.
The cross-platform problem
Many of the 150,000+ libraries hosted on PyPI are written in Python, but that’s not the only option—you can write Python libraries in C, C++, or anything with Python bindings. The usual benefit of writing a library in C or C++ is speed. The NumPy project is a good example: NumPy provides highly powerful mathematical functionality for dealing with matrix operations. It is highly optimized code that allows users to write in Python but have access to speedy mathematics operations.
The problem comes when trying to distribute libraries for others to use cross-platform. The standard is to create built distributions called Python wheels. While pure Python libraries are automatically compatible cross-platform, those implemented in C/C++ must be built separately for each operating system, Python version, and system architecture. So, if a library wanted to support Windows, MacOS, and Linux, for both 32-bit and 64-bit computers, and for Python 2.7, 3.4, 3.5, and 3.6, that would require 24 different versions! Some packages do this, but others rely on users building the package from the source code, which can take a long time and can often be complex.
Raspberry Pi and Arm
While the Raspberry Pi runs Linux, it’s not the same architecture as your regular PC—it’s Arm, rather than Intel. That means the Linux wheels don’t work, and Raspberry Pi users had to build from source—until the piwheels project came to fruition last year. Piwheels is an open source project that aims to build Raspberry Pi platform wheels for every package on PyPI.
Packages are natively compiled on Raspberry Pi 3 hardware and hosted in a data center provided by UK-based Mythic Beasts, which provides cloud Pis as part of its hosting service. The piwheels website hosts the wheels in a pip-compatible web server configuration so Raspberry Pi users can use them easily. Raspbian Stretch even comes preconfigured to use piwheels.org as an additional index to PyPI by default.
The piwheels stack
The piwheels project runs (almost) entirely on Raspberry Pi hardware:
- Master
- A Raspberry Pi web server hosts the wheel files and distributes jobs to the builder Pis.
- Database server
- All package information is stored in a Postgres database.
- The master logs build attempts and downloads.
- Builders
- Builder Pis are given build jobs to attempt, and they communicate with the database.
- The backlog of packages on PyPI was completed using around 20 Raspberry Pis.
- A smaller number of Pis is required to keep up with new releases. Currently, there are three with Raspbian Jessie (Python 3.4) and two with Raspbian Stretch (Python 3.5).
The database server was originally a Raspberry Pi but was moved to another server when the database got too large.
Time saved
Around 500,000 packages are downloaded from piwheels.org every month.
Every time a package is built by piwheels or downloaded by a user, its status information (including build duration) is recorded in a database. Therefore, it’s possible to calculate how much time has been saved with pre-compiled packages.
In the 10 months that the service has been running, over 25 years of build time has been saved.
Great for projects
Raspberry Pi project tutorials requiring Python libraries often include warnings like “this step takes a few hours”—but that’s no longer true, thanks to piwheels. Piwheels makes it easy for makers and developers to dive straight into their project and not get bogged down waiting for software to install. Amazing libraries are just a pip install away; no need to wait for compilation.
Piwheels has wheels for NumPy, SciPy, OpenCV, Keras, and even Tensorflow, Google’s machine learning framework. These libraries are great for home projects, including image and facial recognition with the camera module. For inspiration, take a look at the Raspberry Pi category on PyImageSearch (which is one of my favorite Raspberry Pi blogs) to follow.
Read more about piwheels on the project’s blog and the Raspberry Pi blog, see the source code on GitHub, and check out the piwheels website. If you want to contribute to the project, check the missing packages tag and see if you can successfully build one of them.
Mugricons: These Icons Seems To Fit With Any Kind Of Theme – NoobsLab
You may have your favorite icon theme installed on Linux desktop right now but here is the new icon pack “
“. It is released just few days ago under license GNU General Public License V3, this icon pack borrowed some icons from three icon sets that are: Archdroid, Zafiro and Adwaita.
Mugricons offers two variants light version and dark version, you can choose appropriate one according to your desktop theme. It is compatible with most of the Linux desktop environments such as Gnome, Unity, Cinnamon, Mate, Lxde, Xfce and others. Since this is very first icon theme by this creator, you should expect to see some issues/bugs but in our test we didn’t encounter any until now. For this icon theme many application icons available and if you found any missing icon or want to include something in this icon pack or face any kind of bug then report it to creator.
Available for Ubuntu 18.04 Bionic/18.10/16.04 Xenial/14.04 Trusty/Linux Mint 19/18/17/and other related Ubuntu derivatives
To install Mugricons Icons in Ubuntu/Linux Mint open Terminal (Press Ctrl+Alt+T) and copy the following commands in the Terminal:What do you think of this icon pack? Let us know in the comments below!
Find How Linux Get IP Address From Command
How many commands you know to get IP address on your Linux systems? In this article, we’ll discuss a few ways to get IP address as well as public IP on Linux.
- ifconfig command
- ip addr
- Hostname -I command
- nmcli command
- ip route
- Graphical Method
- Display Public IP address
1) ifconfig command
ifconfig is short for interface configuration. It’s a widely used command line tool used for configuration & viewing of ip addresses, and enabling/disabling network interfaces.
Note: ifconfig command is deprecated, try using ip command.
Read Also: How to use IP Command in Linux with Examples
ifconfig / ifconfig -a
ifconfig with no arguments will display statistics of all active interfaces. This is the same as running ifconfig -a
Example
ifconfig
Output
eth0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether a0:2b:b8:22:0c:6b txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 28212 bytes 8319418 (7.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 28212 bytes 8319418 (7.9 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.43.156 netmask 255.255.255.0 broadcast 192.168.43.255
inet6 fe80::9ed2:1eff:fe31:3fb9 prefixlen 64 scopeid 0x20
ether 9c:d2:1e:31:3f:b9 txqueuelen 1000 (Ethernet)
RX packets 88974 bytes 98475476 (93.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 59034 bytes 7601548 (7.2 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ifconfig
To get an IP address of a specific network interface, run ifconfig followed by an interface name
Example
ifconfig eth0
Output
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.43.156 netmask 255.255.255.0 broadcast 192.168.43.255
inet6 fe80::9ed2:1eff:fe31:3fb9 prefixlen 64 scopeid 0x20
ether 9c:d2:1e:31:3f:b9 txqueuelen 1000 (Ethernet)
RX packets 92374 bytes 98997644 (94.4 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 62046 bytes 8082927 (7.7 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
2) ip addr
ip addr is yet another command you can use to get an IP address of a system and other interface statistics
Example
ip addr
Output
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
link/ether a0:2b:b8:22:0c:6b brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 9c:d2:1e:31:3f:b9 brd ff:ff:ff:ff:ff:ff
inet 192.168.43.156/24 brd 192.168.43.255 scope global dynamic noprefixroute wlan0
valid_lft 3489sec preferred_lft 3489sec
inet6 fe80::9ed2:1eff:fe31:3fb9/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3) Hostname -I command
To get the IP address of active network connections, run
hostname -I
Output
192.168.43.156
4) nmcli command
nmcli – Network Manager command Line interface – is a command line tool used for creating, editing, displaying, deleting, activating and deactivating connections.
nmcli
Example
nmcli
Output
wlan0: connected to TECNO Camon CX
“Realtek RTL8188EE”
wifi (rtl8188ee), 9C:D2:1E:31:3F:B9, hw, mtu 1500
ip4 default
inet4 192.168.43.156/24
route4 0.0.0.0/0
route4 192.168.43.0/24
inet6 fe80::9ed2:1eff:fe31:3fb9/64
route6 fe80::/64
route6 ff00::/8
eth0: unavailable
“Realtek RTL810xE”
ethernet (r8169), A0:2B:B8:22:0C:6B, hw, mtu 1500
lo: unmanaged
“lo”
loopback (unknown), 00:00:00:00:00:00, sw, mtu 65536
DNS configuration:
servers: 192.168.43.1
interface: wlan0
Use “nmcli device show” to get complete information about known devices and
“nmcli connection show” to get an overview on active connection profiles.
nmcli device show
To get the IP address and even more detailed statistics, run
nmcli device show
Output
GENERAL.DEVICE: wlan0
GENERAL.TYPE: wifi
GENERAL.HWADDR: 9C:D2:1E:31:3F:B9
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected)
GENERAL.CONNECTION: TECNO Camon CX
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1
IP4.ADDRESS[1]: 192.168.43.156/24
IP4.GATEWAY: 192.168.43.1
IP4.ROUTE[1]: dst = 0.0.0.0/0, nh = 192.168.43.1, mt = 600
IP4.ROUTE[2]: dst = 192.168.43.0/24, nh = 0.0.0.0, mt = 600
IP4.DNS[1]: 192.168.43.1
IP6.ADDRESS[1]: fe80::9ed2:1eff:fe31:3fb9/64
IP6.GATEWAY: –
IP6.ROUTE[1]: dst = fe80::/64, nh = ::, mt = 600
IP6.ROUTE[2]: dst = ff00::/8, nh = ::, mt = 256, table=255
GENERAL.DEVICE: eth0
GENERAL.TYPE: ethernet
GENERAL.HWADDR: A0:2B:B8:22:0C:6B
GENERAL.MTU: 1500
–
5) ip route get 1.2.3.4 | awk ”
This is yet another command that can be used to get an IP address without much statistics
ip route get 1.2.3.4 | awk ”
Output
192.168.43.156
6) Network Settings in Graphical User Interface
If you are running Linux in a graphical environment, you can easily navigate to the Network settings and check out the IP address. In this example, we have demonstrated this using Ubuntu 18.04 GNOME interface.
- Click on the Network icon as shown.
- On the pull-down menu that appears, be sure to locate the connected network interface. In this case, it’s the wired connection and we can see that the interface is up by ‘Wired connected’ status. Click on it.
- Next, click on the ‘Wired settings’ option that appears below
- This displayed a ‘Network Settings’ window. Click on the gear icon next to the ON/OFF toggle and a pop-up Window will appear showing the IP details of the connected network interface.
Display a Public IP address of your Linux System
If you wish to get the Public IP of your Linux System, the following commands come in handy
curl ipinfo.io/ip
curl ifconfig.me
curl bot.whatismyipaddress.com
dig +short myip.opendns.com @resolver1.opendns.com
curl checkip.dyndns.org
curl ident.me
host myip.opendns.com resolver1.opendns.com
curl ipecho.net/plain
Do you know any other method to get the IP address? Please reply with your comments.
Read Also:
[Stable Update] 2018-09-02 – Deepin, Pamac, Linux419, Firefox-Dev, Upower
- September 2nd, 2018
- Philip Müller
Hi community,
Welcome to another stable update. So what do we have with this one?
- some new Deepin packages got added
- we released pamac v7.0
- a newer snapshot of linux419 and firefox-dev got added
- we worked on a upower regression
- removed fd-limits modification in steam-manjaro
- the usual upstream rebuilds/updates
We hope with all these changes Manjaro to be more efficent for you all.
Our effort and all the needed information about the new security risk can be found here.
So please report back and give us feedback for given changes made to our repositories. Users of our 32-bit Distro should read this.
kind regards
Philip Müller
Manjaro Project Lead
Current supported Kernels
- linux316 3.16.57
- linux318 3.18.120 [EOL]
- linux44 4.4.152
- linux49 4.9.124
- linux414 4.14.67
- linux417 4.17.19 [EOL]
- linux418 4.18.5
- linux419 4.19-rc1
- linux414-rt 4.14.53_rt40
- linux416-rt 4.16.18_rt11
Package Updates (Sun Sep 2 03:29:48 CEST 2018)
- community x86_64: 177 new and 168 removed package(s)
- core x86_64: 3 new and 3 removed package(s)
- extra x86_64: 30 new and 35 removed package(s)
- multilib x86_64: 3 new and 3 removed package(s)
Links
- Talk about this update-pack in our forum
- Download Manjaro 17.1.12
- We are always happy for some support via a small donation
Posted in: news
Kali Linux for Vagrant: Hands-on
I recently saw the announcement for Kali Linux on Vagrant. I have been a huge fan of Kali Linux for a very long time, and I am interested in virtualization (and currently using VirtualBox in an educational environment), so this was a very interesting combination to me. I have now installed it on a few of my systems, and so far I am quite impressed with it.
The logical place to start is with a brief overview of Vagrant itself. What is Vagrant? According to their web page:
Vagrant is a tool for building and managing virtual machine environments in a single workflow
What Vagrant actually does is provide a way of automating the building of virtualized development environments using a variety of the most popular providers, such as VirtualBox, VMware, AWS and others. It not only handles the initial setup of the virtual machine, it can also provision the virtual machine based on your specifications, so it provides a consistent environment which can be shared and distributed to others.
The first step, obviously, is to get Vagrant itself installed and working — and as it turns out, doing that requires getting at least one of the virtual machine providers installed and working. In the case of the Kali distribution for Vagrant, this means getting VirtualBox installed.
Fortunately, both VirtualBox and Vagrant are available in the repositories of most of the popular Linux distributions. I typically work on openSUSE Tumbleweed, and I was able to install both of them from the YAST Software Management tool. I have also checked that both are available on Manjaro, Debian Testing and Linux Mint. I didn’t find Vagrant on Fedora, but there are several articles in the Fedora Developer Portal which describe installing and using it.
SEE: 20 quick tips to make Linux networking easier (free PDF)
If you are not able to find Vagrant in the software sources of whatever operating system you are using, you can go to the Vagrant Downloads page, and you will find installation images for various Linux distributions (and a generic Linux image), macOS and Windows.
Once you have them both installed, you should give some thought to disk space. The Vagrant “box” file will require about 4GB for each virtual machine, and the actual Kali VM will be at least 10GB and possibly more depending on how you configure and provision it (other VMs may be much smaller, of course; the Vagrant precise64 image comes in at about 5GB, for example). Both of these will land in your home directory by default, so if you don’t have that much free disk space, or you just prefer to keep data in some other specific place (/data in my case), you need to configure that first.
Image: J.A. Watson
For VirtualBox this is done using the File/Preferences dialog, as shown here. The first item is the default machine location, and you can see that I have mine set to “/data/VirtualBox VMs”.
For Vagrant it is a bit less obvious; you have to set the environment variable VAGRANT_HOME. The typical way to do this on Linux is in your .bashrc file, by adding this statement:
export VAGRANT_HOME=/data/jw/.vagrant.d
Once you have made these two adjustments, you are ready to download the Kali Vagrant image. When you initialize a Vagrant configuration, it will create a text file containing the specifications of that image (creatively named Vagrantfile). You can only have one Vagrantfile in a directory, so the simplest way to do this is to make an empty directory for each image (or project) that you want to install, and then change to that directory before running the command:
$ vagrant init offensive-security/kali-linux
Note that this command does not require root privileges.
This will fetch the necessary information from the Vagrant Cloud, and create a default configuration file (Vagrantfile). Oh, a quick note about the Vagrant Cloud; if you are curious about what other images and versions are available, just follow that link and have a look around. There are all sorts of other Linux images (Debian, CentOS, Arch, more Ubuntu versions than you can shake a stick at, Oracle Enterprise Linux, and plenty of others), and a variety of pre-configured and provisioned development environments for both general development and specific applications.
The next step is to let Vagrant actually download and install the VM image, and start it up. This is done with the command:
$ vagrant up
This command checks to see if the necessary files have already been downloaded. If they have not (this is the first time you have started this VM), it will fetch everything it needs from the Vagrant Cloud website.
That will take some time (typically 10-15 minutes if you have a reasonable Internet connection; something measured in hours or days if you are doing it on Airport Free Wi-Fi…), and will produce a lot of text to keep you informed of what it is doing and how much progress is made on the downloads.
Image: J.A. Watson
When the download is complete you will see the VM GUI pop up, and the normal Kali Linux boot process will run in that window. After about a minute or so, you will get the Kali login window shown here.
Image: J.A. Watson
You can then login using the usual default account (root/toor), and you will get the standard Kali (Gnome 3) desktop. The Kali VM has a NAT interface configured, so you have internet access (as shown in the browser window within the screen shot).
One other small but very useful feature; Vagrant configures a shared directory between the host and the Kali guest, by mounting the current working directory of the host (the one containing the Vagrantfile) on the /vagrant directory of the Kali guest. This is particularly convenient because it allows you to keep data in the guest which will survive a reset of the Vagrant machine.
Let me expand on that a bit further. One of the biggest advantages of Vagrant is that it is very easy to reload a machine from scratch, and return to the original “clean” condition. This includes re-initializing the disk of the VM, so anything that you have stored there will be gone. Any files that you want to keep across such a reset can simply be placed in the /vagrant directory, and they will once again be there in the new system.
Vagrant also configures ssh access to the VM for you, without you having to figure out the IP address or port number; you just have to use vagrant ssh to connect.
SEE: How to find files in Linux with grep: 10 examples (free PDF)
There are a number of ways that you can manage your running Kali Vagrant system:
- vagrant reload reboots the VM
- vagrant suspend saves the current state of the VM and then stops it. This allows you to return to exactly the same state at a later time with vagrant up. Note that this uses even more disk space, because it stores the state of the VM RAM to disk as well, but it is faster than a vagrant halt / vagrant up sequence
- vagrant halt stops the VM, performing a normal shutdown of Kali
- vagrant destroy removes the VM from your system. If the VM is currently running, it will simply be killed — there’s no sense in bothering with a graceful shutdown, because the machine is toast anyway. Everything except the Vagrantfile will be deleted, so you will recover the disk space from that.
So there you have it. Vagrant provides an easy way to create, run and manage a virtual Linux system, and Kali now provides a distribution image for Vagrant. Together, this means that you can have Kali up and running in 30 minutes or less. Nice. In addition, if you get interested in Vagrant itself there are lots of other distributions available in the Vagrant Cloud. Extra nice.
RECENT AND RELATED COVERAGE
Hands-on with MX Linux: A pleasant, easy-to-install Linux distribution
MX Linux is a descendant/spin-off from Antix and MEPIS Linux. I want to see what it is like to install and run on both UEFI and MBR laptops.
Hands-on with Linux Mint Debian Edition 3 Beta
The long-awaited LMDE update is finally (really) on the way!
Linux phone battery bug: Purism’s Librem 5 delayed until April 2019
Purism gave its Librem 5 phone an updated SoC, but found it has a battery-draining bug that’s delayed production.
Even Linus Torvalds doesn’t completely understand the Linux kernel
In a wide-ranging interview at Open Source Summit, Torvalds talked about programmers, Linux, and open-source development.
Linux distribution comparison chart (Tech Pro Research)
If you’re new to the world of Linux and trying to figure out which distribution is right for your needs, this chart can help.
Microsoft’s obsession with Windows is ending, and I couldn’t be happier (CNET)
Commentary: It’s all about AI and the web now.
How to expose an internal Linux server to the internet with PageKite (TechRepublic)
Jack Wallen shows you how to easily expose an internal Ubuntu server to the outside world with the help of PageKite.
Teal One drone runs Linux on a Jetson TX1 and flies at 60 mph
Teal has launched a $1,200 “Teal One” drone that runs Linux on a Jetson TX1 module and an Ambarella SoC with PX4 support. The quadcopter can fly at up to 60 mph for 15 minutes and shoot [email protected] video.
Salt Lake City based Teal was launched by CEO George Matus at the age of 17 to pursue his love of FPV drone racing. The company launched a Teal Sport FPV racing drone that runs on an MCU-based KISS flight controller and sells for $499 for a barebones model and $799 fully accessorized. Now, at age 21, Matus has followed up with his promised Teal One, a higher-end, all-purpose, semi-autonomous camera quadcopter.
Teal One
(click image to enlarge)
When we saw that the Teal One had an onboard
The $1,200 price is on the high side considering that market leaders like the DJI Mavic Pro start at about $800 and Parrot’s Linux-based Bebop 2 goes for $300. However, if you want to fly like the wind, the 60 miles per hour (96.5 km/h) Teal One may be the fastest ride you can find on an all-purpose camera drone. Racing drones go from 70 to 100 mph, with the Teal Sport achieving 80 mph, but the Mavic Pro tops out at 40 mph and the Bebop 2 at 37 mph.
All these are maximum speeds with no wind, but for the record, the Teal One also claims to provide 40 mph wind resistance. Flight time is a modest 15 minutes, compared to up to 25 minutes on the Bebop 2 and 30 or more on some higher end models, although it should be noted that most claimed flight times are exaggerated. In any case, you can buy a second battery for $99.
Teal One rear view (left) and kit
(click images to enlarge)
Nvidia’s Linux-driven, 87 x 50mm Jetson TX1 module features 4x Arm Cortex-A57 cores, as well as a 256-core Maxwell GPU with support for CUDA libraries for machine learning. The module has been followed by a more powerful, pin-compatible
module, so assuming the Teal One finds a place in the crowded drone market, a TX2-based Teal Two is quite possible.
Linux is likely running on the Teal One’s Ambarella Camera Processor, which controls its 12-megapixel camera. Considering that the camera supports up to [email protected] video, this is likely the quad -A53 Ambarella CV2 SoC, which like the earlier Ambarella S2Lm, runs Linux.
The 12-megapixel camera has an HDR sensor and f/2.5 lens with a 123 x 90-degree field of view. Video resolution drops down from [email protected] (portrait mode) to [email protected] for a stabilized landscape view. The New Atlas story that alerted us to the Teal One release notes that the camera uses electronic stabilization instead of a gimbal. “So it appears the Teal will use the additional resolution at the top and bottom of the frame to compensate for the tilt you get when you move a drone in the air,” says the story.
The Teal One also features a PX4 compatible flight controller supported with PX4 communications protocols in the SDK. No details were provided, but on the Linux-on-TX2 driven Gumstix Aerocore 2 for Nvidia Jetson drone controller board, the APM-based PX4 firmware runs on top of NuttX on a Cortex-M4 MCU. With PX4, you get app compatibility with PX4-compatible projects such as QGroundControl and MAVLink.
You can communicate with the drone via 802.11b/g/n (WiFi 4) with a 600 foot (183 meters) range, providing you with a 720p live stream. The Teal One is equipped with a GPS chip, naturally, as well as 2x IMUs. Other sensors include altimeter, magnetometer, rangefinder, current, voltage, RPM, and temperature. An SD slot and card loaded with firmware is also onboard.
Standard features include 3x black pin, clockwise propellers, 3x silver pin, counterclockwise propellers, 2x black button arms, and 2x silver button arms. The arms are easily swappable and claimed to be easy to repair, but you can also buy backups. There’s also a battery charger and cable.
TealFlight app
(click image to enlarge)
The Teal One ships with an Android or iOS TealFlight app that offers one- or two-handed controller views, as well as multi-touch and voice control modes. The Teal One is also compatible with the
extension for smartphones.
Further information
The Teal One quadcopter is available now for $1,199. More information may be found on the Teal One product and shopping pages.
New MakuluLinux Deserves a Spot in the Majors | Reviews
By Jack M. Germain
Sep 27, 2018 5:00 AM PT
The
MakuluLinux distro is now something brand new and very inviting.
MakuluLinux developer Jacque Montague Raymer on Thursday announced the first major release of this year. It is a whole lot more than a mere upgrade of distro packages. MakuluLinux Series 15 offers much more than new artwork and freshly repainted themes and desktop styles.
If you crave a Linux OS that is fresh and independent, MakuluLinux is a must-try Linux solution. The distro itself has been around for a few years and has grown considerably along the way. When it arrived on the Linux scene in 2015, its different approach to implementing Linux OS features disrupted the status quo.
I have reviewed six MakuluLinux releases since 2015. Each one involved a different desktop option. Each one introduced new features and improvements that gave MakuluLinux the potential to challenge long-time major Linux distro communities. Series 15 makes it clear that this South Vietnam-based Linux developer is no longer a small player in the Linux distro game.
MakuluLinux Series 15 is not an update of last year’s editions. It is a complete
rip-and-replace rebuild. Series 15 consists of three separate Linux distros: LinDoz is available now; Flash will be released by the end of October; and Core will debut between the end of November and mid-December.
I do mean three *different* distros — not desktop environments you choose within an edition. The first two offerings, LinDoz and Flash, are not new per se. They are rebuilt reincarnations of previous versions. However, LinDoz and Flash are completely reworked from the ground up to give you several big surprises.
MakuluLinux Core, however, is something entirely new. In fact, Raymer had not divulged Core’s development until reaching out to LinuxInsider to discuss the LinDoz release. His plan is to spotlight each distro as a separate entity.
The centerpiece of MakuluLinux Core’s innovative, homegrown user interface is the spin-wheel style circular menu display.
Makulu Unwrapped
Raymer and his developer team spent the last two years building a new base for MakuluLinux Series 15. Their goal is to surpass the functionality of prime competitors such as Linux Mint, Ubuntu and Manjaro, according to Raymer.
All three of the Series 15 editions feature a redesign of the original Ubuntu-based LinDoz OS. The developers spent a major portion of their time over the last two years applying many changes. First, they tackled revamping the LinDoz Ubuntu foundation.
MakuluLinux’s Series 15 LinDoz Edition blends both Microsoft Windows traits and Linux functionality into one OS.
It is “possibly the fastest and most stable base floating around the net at the moment, not to mention it is near bug-free,” Raymer told LinuxInsider. “All three of the builds going live this year will feature this base.”
The new base gets its primary updates from both Debian and Makulu directly. The new strategy is not to borrow the base from Debian or Ubuntu like other big developers. Makulu’s team chose to build its own base instead.
“This way we don’t inherit any known bugs that plague Debian or Ubuntu builds, and since we built the base we know what’s going on inside it,” said Raymer.
It also allowed the developers to optimize builds for speed and stability, he added.
That planning shows. I have been sampling the almost daily builds for the last few weeks. Each one offers a higher level of performance over the previous releases. Stability and speed were evident throughout the process.
What’s Inside
The new base for MakuluLinux resulted from an intense study of the competition, noted Raymer. The developers were determined to surpass Ubuntu, Linux Mint — which borrows from the Ubuntu base, except for its separate Linux Mint Debian Edition — and Manjara Linux, which is a derivative of Arch Linux.
After daily hands-on exposure to the end results of the base changes, I can vouch for the developer team’s success. Clearly, the team members had their priorities in the correct order. The new base is lightning fast. It is also more secure.
Security in Linux is a relative term. The real issue with Linux OSes is how secure you want to make your system. Some distros have higher levels of security that go beyond the upstream patching and package tweaks.
Raymer built in up-to-date security patches along with a reliable firewall and handy virus scanner out of the box. Typical Linux adopters normally do not think about deploying firewalls and virus scanners. Having those two features built into the OS adds to your feeling of safety and instills confidence.
The new base and system structure support a wide range of hardware out of the box. My test bench is stocked with a few old Windows clunkers and some very new rigs. I did not have to give a thought to installing drivers and fiddling with graphics fixes. The audio gear and varied printers and other connected devices I use every day just worked.
One of Raymer’s big demands was a bug-free release. I give him huge credit. I doubt that software can exist without bugs. MakuluLinux does a damn good job of proving that assessment wrong.
Developers can never test every piece of hardware in the wild. That is where the community of build testers and early adopters comes to the rescue. I’m guessing that this large gang of testers found enough bugs in the mix of builds to get a higher percentage of code fixed than generally happens elsewhere.
LinDoz Primer
I always liked the sarcasm hidden in the LinDoz name for the former MakuluLinux flagship OS. It is an ideal alternative to the actual Microsoft Windows platform. However, It does not try to be the next great Windows clone on Linux.
LinDoz does offer the Windows look and feel, thanks to its similar themes. That helps your comfort zone. Still, we are talking Linux here. LinDoz does what the proprietary giant cannot do. LinDoz is highly configurable beyond the look and feel of the themes.
MakuluLinux LinDoz has vivid backgrounds, a classic bottom panel, and a preconfigured workspace switcher applet with a nice collection of desktop desklets.
For instance, LinDoz has a unique menu. It blends both Windows and Linux functionality into one OS. If you are a transplant from Windows World, you will be comfy in the familiar LinDoz surroundings. The Linux World part of the computing experience is so well integrated that you actually enjoy a new and better computing platform that does not come loaded with frustration and useless software.
LinDoz uses a nicely tweaked version of the Cinnamon desktop. I recently reviewed Linux Mint’s Debian-based release, Linux Mint Debian Edition or LMDE. I felt right at home with LinDoz Series 15. It uses a combination of the Debian repositories and its own in-house Makulu repository. Raymer just missed debuting the new LinDoz on Debian ahead of Linux Mint’s
release by a matter of weeks.
Flashy and Fast and Splashy
If you fancy a more traditional Linux setting, Flash has much going for it to keep you happy. It runs on the Xfce desktop, only you will swear it is something newer thanks to the snappy integration with other MakuluLinux trappings.
MakuluLinux Flash Edition running on the Xfce desktop is so well tweaked it looks and feels like something new. Flash is fast and splashy.
For example, the desktop has transparency that gives it a modern flavor. The Compiz OpenGL compositing manager is built in, for on-the-fly window dressing and fancy animations. With 3D graphics hardware, you can create fast compositing desktop effects like a minimization animation.
The Flash OS has the old style bottom panel with menu buttons on both sides. If you prefer the old Linux layout still around from 30 years ago, this OS is for you. Unlike many aging Linux distros, though, there is nothing old or sluggish about Makulu Flash. It is fast and splashy.
I especially like how I can turn the Compiz effects off or on with a single click. Flash also exhibits a modern flair that takes the Xfce desktop to a higher level of functionality. You can configure the settings to activate the hot corners features to add actions.
New Core Flagship
What could become the most inviting option in the MakuluLinux OS family — when it becomes available — is Makulu Core. Raymer has this third release positioned to be the new “core” Makulu offering.
Unlike the other two MakuluLinux distros in the Series 15 releases, the Core Edition is a dock-based desktop environment. This approach is innovative and attractive. A bottom dock houses the favorite applications. A side dock along the lower right vertical edge of the screen holds system icons and notifications.
For me, the most exciting eye candy that the Core Edition offers is its dynamic animations that put into play a new way to interact with the OS. The developers forked the classic Xfce desktop as a framework for designing the new Core desktop.
The user interface includes a dual menu and dual dock. It is mouse driven with a touchscreen gesture system.
For instance, the main menu appears in a circular design displaying icons for each software category. Fly over any icon in the circular array to have the contents of that category hang in a larger circle layered over the main menu display in the center of the screen.
The main menu is also based on hot corners. You trigger them by mousing into the top left or bottom left corners of the screen.
MakuluLinux Core is ready to grow and adapt. It is a solid platform for traditional Linux hardware. It will support new computing tools, according to Raymer.
For example, Core will work with touchscreens, and with foldable laptops that turn into tablets. Core will incorporate a way for both to work with ease and without the user having to make any changes on his side.
“We also wanted to make the OS feel a little like Linux, macOS and Microsoft Windows all at the same time, yet offer something new and fresh. This is how we came up with the dual menus, dual dock system. It feels comfortable to use, and it looks and feels a little like everything,” Raymer said.
Bottom Line
Since LinDoz is now officially available for download, I will wrap up with a focus on what makes MakuluLinux LinDoz a compelling computing option. I no doubt will follow the Flash and the Core edition releases when those two distros are available in final form.
One of the more compelling attributes that LinDoz offers is its beautiful form. It is appealing to see. Its themes and wallpapers are stunning.
For the first time, you will be able to install the new LinDoz once and forget about it. LinDoz is now a semi-rolling release. It receives patches directly from Debian Testing and MakuluLinux.
Essential patches are pushed to the system as needed.
Caution: The LinDoz ISO is not optimized for virtual machines. I tried it and was disappointed. It loads but is extremely slow and mostly nonresponsive. Hopefully, the developer will optimize the ISO swoon to provide an additional option for testing or using this distro.
However, I burned the ISO to a DVD and had no issues with the performance in live session. I installed LinDoz to a hard drive with very satisfying results.
Want to Suggest a Review?
Is there a Linux software application or distro you’d like to suggest for review? Something you love or would like to get to know?
Please
email your ideas to me, and I’ll consider them for a future Linux Picks and Pans column.
And use the Reader Comments feature below to provide your input!
Jack M. Germain has been an ECT News Network reporter since 2003. His main areas of focus are enterprise IT, Linux and open source technologies. He has written numerous reviews of Linux distros and other open source software.
Email Jack.