umgeher's changelog


OpenBSD - client OpenVPN

OpenVPN is a free and open-source virtual private network (VPN).


Let’s install the openvpn client.

pkg_add openvpn


Config file

Assuming that you have an openvpn settings file, calling here as setup.ovpn.

cat setup.ovpn

proto tcp-client
remote 1194
dev tun
resolv-retry infinite
remote-cert-tls server
verify-x509-name server_lBklUYL2BA98l9B3 name
auth SHA256
cipher AES-128-GCM
tls-version-min 1.2
ignore-unknown-option block-outside-dns
setenv opt block-outside-dns # Prevent Windows 10 DNS leak
verb 3
# 2048 bit OpenVPN static key
-----BEGIN OpenVPN Static key V1-----
-----END OpenVPN Static key V1-----


Let’s create a directory to ours opvn files, as root:

mkdir -p /etc/openvpn

Store your opvn files in /etc/openvpn.


To connect use:

/usr/local/sbin/openvpn --config /etc/openvpn/setup.ovpn

If you need to provide a password, use --askpass flag.

/usr/local/sbin/openvpn --askpass --config /etc/openvpn/setup.ovpn


Create a hostname file to your new network interface.

touch /etc/hostname.tun0

Edit the hostname.tun0 file.

!/usr/local/sbin/openvpn --daemon --config /etc/openvpn/setup.ovpn

Now you can setup your interface.

ifconfig tun0 up

git - how?


Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

“Talk is cheap. Show me the code.”

– Linus Torvalds


On 3 April 2005, Linus Torvalds began the development of git, after many Linux kernel developers gave up access to BitKeeper. Just 3 days after, on 6 April, Torvalds announced the project. And the next day, it became self-hosting.

On 26 July 2005, Linus Torvalds turned over git’s project maintenance to Junio Hamano. Hamano is the project’s core maintainer since.


The basic/usual git workflow is the following:

  • Create/clone a git repository, all your work is done in this Working Directory.
  • Once your work reaches your goal, your changes are added to the Staging Area.
  • Now your Staging Area contains everything you want to commit, you can save changes to the git repository.


working directorycreate, edit and delete files
staging areachanges that you made in working directory
git repositorywhere all changes are storaged


Before you use git, you need to setup your name and email.

Setting up name and email

git config --global "Liz Umgeher"
git config --global ""

Create a repository

git init

Clone a repository

git clone [url/path]

Add a file

git add file

Remove a file

git rm file

Checking status

git status

Commit changes

git commit 

Resume: basic commands

git addadd files to the staging area
git diffshow the difference between the working directory and the staging area
git initcreate a repository
git logdisplay a list of all previus commits
git statusshow contents of the staging area

sfeed-news v1.1.0


  • using $BROWSER env variable
  • news is reading $1 argument as a filter, example: news "r\/openbsd"
git clone



Years using newsboat without any issue at all, but in the past two OpenBSD’s releases I saw some errors and ui lag. I want something fast and simple and I found! Sfeed!

Sfeed is an Atom/RSS parser. Has a simple (but useful) TUI1, a fetch solution to update yours feeds and a group of data transformation utils. You can choose your output as HTML, plain text, gopher, mbox and others.

The Sfeed’s webpage has an useful example to integrate it to dmenu.


You need to populate your feed’s urls in sfeedrc file, so create the sfeed’s directory in yours $HOME.

mkdir -p ~/.sfeed

Create the sfeedrc in that directory. You can use my sfeedrc as example:

feeds() {
    feed "xkcd" "" ""
    feed "unixporn" ""
    feed "openbsd" ""
    feed "plan9" ""
    feed "monero" ""
    feed "erlang" ""
    feed "luke's videos" ""
    feed "luke's blog" ""
    feed "drew devault" ""
    feed "lucas moreira" ""
    feed "solene" ""
    feed "christine" ""
    feed "openbsd zine" ""

In a nutshell, it’s a function called feeds, in this function you need to set each feed as:

feed <name> <feedurl>

Where and are the feed’s name and rss/atom url respectively.

Now you can run sfeed_update in your shell. And done, you have yours feeds downloaded and ready to read.

Want to use the curse solution? Sure, just type:

sfeed_curses ~/.sfeed/feeds/*

Maybe, you want to try the sfeed’s official example:

url=$(sfeed_plain "$HOME/.sfeed/feeds/"* | dmenu -l 35 -i | \
	sed -n 's@^.* \([a-zA-Z]*://\)\(.*\)$@\1\2@p')
test -n "${url}" && $BROWSER "${url}"

Or if you want to use in my way…


I created two small scripts to manage what I already read and what is unread yet.

You can clone the repository with:

git clone

There are two scripts in that repository, news and news-update. I use news-update to update my feeds and news to show them. Ah, I use rofi, not dmenu.

Here a screen-shot of the final result:

sfeed and rofi

  1. TUI: text-based user interface ↩︎

OpenBSD - Encrypt Thumbdrive

Para criar um thumbdrive com crypto no OpenBSD.

Primeiro coloque o seu drive no seu pc. Use o dmesg para pegar o id do device que voce acabou de colocar, deve ser as ultimas linhas, logo:

dmesg | tail

No meu caso retornou:

sd2 at scsibus4 targ 1 lun 0: <Kingston, DataTraveler 3.0, PMAP> removable serial.09511666E3A08995038B
sd2: 59148MB, 512 bytes/sector, 121135104 sectors

OK, agora eu sei que o device que coloquei esta’ como sd2. Vamos limpar de fato o nosso device.

dd if=/dev/urandom of=/dev/rsd2c bs=1m

Isso vai escrever por todo device random bytes, limpando o que estiver la’ dentro. Isso pode/vai demorar um pouco.

Depois de zerar nosso device, vamos criar o registro MBR nele.

fdisk -iy sd2

Agora podemos criar uma particao com o formato RAID usando o disklabel.

disklabel -E sd2

Agora que criamos nossa particao a do tipo RAID. Vamos criar, um device raidsoft0 usando crypto.

bioctl -c C -l sd2a softraid0

Ele vai te perguntar o passphrase que voce deseja usar.

No final do processo ele vai te indicar o device id que foi gerado. No meu caso foi sd5. Agora podemos organizar o device e criar nossa particao e filesystem.

dd if=/dev/zero of=/dev/rsd5c bs=1m count=1
fdisk -iy sd5
disklabel -E sd5

O processo de criacao da particao e’ o mesmo que o anterior, porem agora vamos deixar o FS type padrao.

Por fim, criando o filesystem…

newfs sd5a

Seu device esta’ pronto para mount e uso.

Lembre-se de utilizar o bioctl depois de usar seu device.

bioctl -d sd5