Thursday, November 18, 2010

For the Linux community




Listen to the good sounds of that one. I'll write up a guide on RAID in Linux when I'm less busy with school, and then put a disk in failure by ripping it out of my computer like I had in the past. Linux handled it well, not even a pause or slow down. I put it back in and rebuilt the array all without powering down my machine.


Peace bitches!



Friday, November 12, 2010

GNU Screen With Byobu

Byobu is manager for GNU Screen hidden within Ubuntu 10.10 Maverick. It's also available through the Debian repos. If you are running Ubuntu 10.10, I'll show you how to unhide it and use it. First right click "Applications" and click "Edit Menus" as shown in the picture.


With "Accessories" selected in the left pane, you will see "Byobu Window Manager" in the left pane. You need to tick (check it) to have it appear in your menu.


Now it should appear in your menu like the picture below.


To make the Terminal better for using it, I suggest creating a new profile based on the default profile and changing it up a bit.


Also I set this new terminal profile to be the one used when launching a new terminal.


Because using Screen with Byobu will display a lot of information that you configure it for at the bottom of the terminal, I suggest changing the default width of the terminal. I changed mine to 132 pixels.


Here you can optionally set a semi-transparent/translucent background.

 

If you followed my previous guide to using Zsh and screen with a .screenrc configuration file, your terminal should appear like this. I did have to make 2 changes to my .screenrc file. I commented out the hardstatus lines because Byobu configures that and that can be further configured through a menu system in ncurses by hitting F9.


I have Byobu configure to show my system uptime, cpu temp, disk and network I/O, IP as well as some other information. To get some default screens you can switch between, you can set this in ~/.screenrc. Here is mine.

#hardstatus alwayslastline
#hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{=kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B}%Y-%m-%d %{W}%c %{g}]'

# Default screens

chdir ~/
screen -t bash    0 /bin/bash
chdir ~/Coding/CS2213
screen -t zsh    1 # will run zsh by default
chdir ~/Hax0r
screen -t zsh     2
chdir ~/
screen -t zsh     3
chdir ~/
screen -t zsh     4 

If you do not have Zsh installed, here is one you can use with bash being your only shell. Only uncomment the hardstatus lines when using GNU Screen without Byobu.

#hardstatus alwayslastline
#hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{=kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B}%Y-%m-%d %{W}%c %{g}]'

# Default screens

screen -t bash1    0 
screen -t bash2    1
screen -t bash3    2
screen -t bash4    3
screen -t bash5    4

To switch between these screen windows in the terminal, there are some commands/key bindings you can use. All of them begin with hitting Control and a followed by another key. I'll give you a few. You can always type Control a then ? for a list of all of them if you forget. Where ever you see "^", that is referring to the Control key. They assume you know to push Control and a (^a) first before using these keybindings. Here are a few commonly used ones.

^a n (Means go to the Next screen window)
^a p (Means go to the Previous screen window)
^a c (Means Create a new screen window)
^a " (Will give you a full list of screen windows to choose from)
^a [ (Will allow you to use the arrow keys to scroll and also if you want, highlight a selection to copy)
^a ] (Will paste whatever you copied to the buffer with the previous command)

Now that you have Screen/Byobu running, open a new terminal window.

Type into the terminal

screen -ls

You should see one screen session running. If that is your only screen session running, then type this next one.

screen -x

That will connect you to that running screen session, so now you see the exact same thing in both terminal windows. Try typing something and see if it appears in both terminals in real time as it's typed. I'll show you how this is useful.

You can leave the screen session running and disconnect from it with "^a d" and then later connect to it again with the screen -x command. This is very useful if you are helping a friend. You can ssh into the friends computer and both be connected to the same screen session, so that you each see the same thing and are both able to type. That requires you to both be logged in as the same user unless you have set the suid bit on the screen excutable and allowed multiuser in the to the screen session, but I will not go into that now for this guide.

You may be bored with that stupid default prompt you get by your distro. Optionally you can change it to what you like. If you are using bash, you can change it by adding the following to the bottom of your ~/.bashrc


export LIGHTCYAN='\e[1;36m'
export LIGHTRED='\e[1;31m'
PS1="\[$LIGHTCYAN\]$(lsb_release -s -c)\[$LIGHTRED\] >> \[$LIGHTCYAN\]"

After doing that, you will need to have the .bashrc re-read. You can do this by opening a new terminal window or typing this command.

source ~/.bashrc 

Thursday, November 11, 2010

My Grandmother Uses 4096 Bits Of Encryption

Introduction to GNU Privacy Guard

Almost every flavor/distro of Linux comes with a certain set of tools, one of them is a powerful tool for encryption called the GNU Privacy Guard or GPG. GPG can encrypt files, text, emails. Each user using GPG has both a private key and a public key, key-pair. The public key is meant to be shared to friends and everyone. One way this is done is by putting it on one of the key servers, so people searching for your key can find it and import it into his or her keyring. Once someone has your key, that allows them to encrypt data to you as a recipient, so that you can decrypt it. You may be the only recipient of some encrypted data. In that case, not even the person who encrypted the data to you can decrypt it! GPG also has the ability to generate a signature that nobody else could generate without your private key and password (I hope you give it a long random secure password). If you have signed the key because you trust the key was really created by the person who it's supposed to belong to, then it's a safe bet that when you see a GPG signature such as in an email, the email was really sent and written by that person, not a spoofed email. 

To begin, invoke " gpg --gen-key " at the command line. I'm going to create an example key and highlight the input I suggest you use or replace with your own information.

Note, that once you get to the part generating entropy, gpg is gathering random information to use in generating your key, so you will need to do some tasks that involve heavy disk usage, number crunching, etc. One nice way to do this is to hit alt f2 and run baobab. Tell it to scan the entire filesystem. To check the progress of entropy being generated, open another terminal window and type cat /dev/random. The more random bits of information that you see appearing is what you want and is what gpg is waiting for.


➜  ~  gpg --gen-key
gpg (GnuPG) 1.4.10; Copyright (C) 2008 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Please select what kind of key you want:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (sign only)
   (4) RSA (sign only)
Your selection? 1
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048) 4096
Requested keysize is 4096 bits
Please specify how long the key should be valid.
         0 = key does not expire
        = key expires in n days
      w = key expires in n weeks
      m = key expires in n months
      y = key expires in n years
Key is valid for? (0) 0
Key does not expire at all
Is this correct? (y/N) y

You need a user ID to identify your key; the software constructs the user ID
from the Real Name, Comment and Email Address in this form:
    "Heinrich Heine (Der Dichter) "

Real name: Bill Clinton
Email address: billc@whitehouse.gov
Comment:
You selected this USER-ID:
    "Bill Clinton "

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
You need a Passphrase to protect your secret key.

gpg: gpg-agent is not available in this session
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.

Not enough random bytes available.  Please do some other work to give
the OS a chance to collect more entropy! (Need 278 more bytes)
...........+++++

Not enough random bytes available.  Please do some other work to give
the OS a chance to collect more entropy! (Need 152 more bytes)
.+++++
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
Not enough random bytes available.  Please do some other work to give
the OS a chance to collect more entropy! (Need 256 more bytes)
...................+++++

Not enough random bytes available.  Please do some other work to give
the OS a chance to collect more entropy! (Need 248 more bytes)
............+++++
gpg: key D342A8FB marked as ultimately trusted
public and secret key created and signed.

gpg: checking the trustdb
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 1u
pub   4096R/D342A8FB 2010-11-11
      Key fingerprint = 5FF8 D873 6687 5C94 126C  4DF7 A6D3 D9E7 D342 A8FB
uid                  Bill Clinton
sub   4096R/99E1C606 2010-11-11

➜  ~  # w00t!



Now you should be able to see your key with the following command. My example shows other keys I have imported into my keyring as well as my own and newly generated one I used as an example for this guide.

➜  ~  gpg --list-keys 
/home/chris/.gnupg/pubring.gpg
------------------------------
pub   1024D/76B28DA0 2009-04-13
uid                  Aerol 
sub   2048g/E3DA59F1 2009-04-13

pub   1024D/E13B0909 2007-06-22
uid                  Christopher Lemire 
sub   4096g/E992CE7A 2007-06-22

pub   4096R/7B044117 2010-10-31
uid                  Ryan Phillips 
sub   4096R/4F847095 2010-10-31

pub   4096R/D342A8FB 2010-11-11
uid                  Bill Clinton 
sub   4096R/99E1C606 2010-11-11

➜  ~

Now you'll want to put that key up on keyservers, so others may find and import your public key.


To do this, use the Key ID (for my example, it is the last thing I marked in red) for the following command.

➜ ~ gpg --keyserver hkp://keys.gnupg.net --send-keys D342A8FB
gpg: sending key D342A8FB to hkp server keys.gnupg.net
➜ ~

You may omit specifying the keyserver if you have some listed in your ~/gnupg/gpg.conf

➜  ~  gpg --keyserver hkp://keys.gnupg.net --recv-keys D342A8FB
gpg: requesting key D342A8FB from hkp server keys.gnupg.net
gpg: key D342A8FB: "Bill Clinton " not changed
gpg: Total number processed: 1
gpg:              unchanged: 1
➜  ~ 

In the same way, have your friends share their keys and you receive them into your keyring.


Here's another way to share your key.

➜  Desktop  gpg --export --armor christopher.lemire@gmail.com 
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.10 (GNU/Linux)

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
Am7Dyhg=
=eJr+
-----END PGP PUBLIC KEY BLOCK-----
➜  Desktop 

With that, you can do one of two things.


1. Save everything from BEGIN GPG PUBLIC KEY BLOCK to END GPG PUBLIC KEY BLOCK into a file. Then run gpg --import key.asc on that file assuming that is the name you gave it.


2. Type gpg at the command prompt. Now copy all from BEGIN line to END line and paste it into the command line. When done, hit control + d. 

MORE USES OF GPG

Encrypt a string of text to Bill Clinton.

➜  ~  echo "Meet me at IHOP 5PM" | gpg --encrypt --armor --recipient billc@whitehouse.gov
-----BEGIN PGP MESSAGE-----
Version: GnuPG v1.4.10 (GNU/Linux)

hQIMA3R3UFaZ4cYGAQ/+JPIwZSbFue8i1o5RY/AuWimA2LvHSLzBsh0J6GDRDnrU
+a/k90XDX9+SX4C4Nyc7PDfli1Ux8QH9FmONH9B3Jpij7GSbKyLqwqzI55ruCE2q
cM8KKCc/FqNoFORB7lpRDVSPXIj2KjSt5WIG1SowH+ErZeXLmSDYNINf1dYmbL8b
tAVe1Zyc7Zz3ag/k6VcXDueIbvQyX2ou+hP82i29qF2NJXyLYyY+eRtjgxP0ICwu
AuzTAkXz8cSanIm9kM9jeS6v9/0trL5PBsFrYLaBRgUFpN51Fh415z4hZ5bNksz7
ocoZa4CA6nEgIcmzN7scENi57o1h+NuWONgVbfLPq4sRnrZbw2VWmnl46K8/XhCT
pIpEVjRbpIO/MIKZGpevI+Xnpfm05j55u8HGxZSQ2RP/KfzYfuUJhvr7FeX4lrxT
QDbkktnWr48UZQQ+vuoD1YZDrFq5VSGYkyZKHYhyr39mQI182+dyURzm2AF3lFW6
/AQJ+Vx36TFseHZ/OMwH7lawH/aBaSFMd5KNWbgSqdt7KHBUglTkOCmSpwGRDndE
0TwhRnmT8qLUt/+kraGhBHFJK/cReVi+Ysb/lCJ8+/Piy+wGUw9pQw/Qy+Lu0WuT
842/mUEaeEJLJ1ylR3LIma3kk1fVXMMREnzfWFU/iptJwCCmj/jvqB/N0LoNWxfS
TwEfZ6mYJZU4Uv7kiYJF7YhmqytrA8zCGVMu2Ge6ETHf0/FhsHduwHDo+5IvlZTH
+EH6XMv7+eKJUg9DStV7gCq/rKFRVN6z1qUrB9ix6Ds=
=BhvL
-----END PGP MESSAGE-----
➜  ~  

Encrypt a small JPG as text and send it to your friend over instant messenger or email. I'll use the image from here as an example

➜  ~  cat Desktop/indoapuen.jpg | gpg --encrypt --armor --recipient billc@whitehouse.gov
-----BEGIN PGP MESSAGE-----
Version: GnuPG v1.4.10 (GNU/Linux)

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
=KwNj
-----END PGP MESSAGE-----
➜  ~  

Software Using GNU GPG

Psi+ (It's made by Russian Monkeys with Wrenches!)


Install libqca2-plugin-gnupg and go to "Account Setup", Details tab, and select your key to use this feature in Psi+.


Seahorse (Included by default in Ubuntu but somehow failed to be added to the menu this time in the 10.10 Maverick release, so type seahorse from the CLI. It's now under the System menu with the icon of keys.


FireGPG Firefox Extension http://getfiregpg.org



Alot of *nix users like to check their email with Thunderbird, Evolution, KMail or the best, Mutt. They all have built-in support for GPG except that Thunderbird needs Enigmail. A guide to using Mutt, the best way to check your mail, will take another blog post to do.

A complete list of software using GPG resides at http://www.gnupg.org/related_software/frontends.html 

Now that you have gone nuts with encryption, Listen to the sounds of Evoken!

Activate Middle Mouse Click In Firefox


Doing this will activate the middle mouse click and drag scrolling in Firefox. First, type in the address bar "about:config". Once you are there, ignore the silly message about voiding the warranty. Firefox does not come with a warranty. Do a search for general.autoScroll. Once you find that, right click it and choose "Toggle" to change its value from false to true.

Now you can close that tab for about:config and test your new settings.