Bookmark and Share

Set up an IRC server using ngircd

This is a lightweight IRC server without the extra features. From the developers: "Next generation IRC Server ngircd is a IRC Daemon for small or private networks. It does not contain all the functions like the professional ones, e.g services. It is written from scratch and is not based upon the original IRCd like many others."

Install ngircd - on debian based systems: apt-get install ngircd

Edit the configuration file, on debian based systems it's: /etc/ngircd/ngircd.conf

Here's an example:

# Server name in the IRC network, must contain at least one dot
# (".") and be unique in the IRC network. Required!
Name = GNU/Linux IRC Server

# Info text of the server. This will be shown by WHOIS and
# LINKS requests for example.
Info =

# Global password for all users needed to connect to the server
Password =

# Information about the server and the administrator, used by the
# ADMIN command. Not required by server but by RFC!
AdminInfo1 =
AdminInfo2 =
AdminEMail =

# Ports on which the server should listen. There may be more than
# one port, separated with ",". (Default: 6667)
Ports = 6667

# IP address on which the server should listen. (Default: empty,
# so the server listens on all IP addresses of the system)
Listen =

# Text file with the "message of the day" (MOTD). This message will
# be shown to all users connecting to the server:
MotdFile = /etc/ngircd/ngircd.motd

# A simple Phrase (<256 motdphrase = "Hello. This is the Debian default MOTD sentence" serveruid =" 65534" servergid =" 65534" pidfile =" /var/run/ngircd/ngircd.pid"> seconds of inactivity the server will send a
# PING to the peer to test whether it is alive or not.
PingTimeout = 120

# If a client fails to answer a PING with a PONG within
# seconds, it will be disconnected by the server.
PongTimeout = 20

# The server tries every seconds to establish a link
# to not yet (or no longer) connected servers.
ConnectRetry = 60

# Should IRC Operators be allowed to use the MODE command even if
# they are not(!) channel-operators?
OperCanUseMode = yes

# Maximum number of simultaneous connection the server is allowed
# to accept (<=0: unlimited):
MaxConnections = 250

# Maximum number of simultaneous connections from a single IP address
# the server will accept (<=0: unlimited):
MaxConnectionsIP = 50

# Maximum number of channels a user can be member of (<=0: no limit):
MaxJoins = 50

[Operator]
# [Operator] sections are used to define IRC Operators. There may be
# more than one [Operator] block, one for each local operator.

# ID of the operator (may be different of the nick name)
Name =

# Password of the IRC operator
Password =

[Server]
# Other servers are configured in [Server] sections. If you
# configure a port for the connection, then this ngircd tries to
# connect to to the other server on the given port; if not it waits
# for the other server to connect.
# There may be more than one server block.
#
# Server Groups:
# The ngIRCd allows "server groups": You can assign an "ID" to every
# server with which you want this ngIRCd to link. If a server of a
# group won't answer, the ngIRCd tries to connect to the next server
# in the given group. But the ngircd never tries to connect to two
# servers with the same group ID.

# IRC name of the server
;Name = irc2.debian.org

# Internet host name of the peer
;Host = connect-to-host.the.net

# Port of the server to which the ngIRCd should connect. If you
# assign no port the ngIRCd waits for incoming connections.
;Port = 6666

# Own password for the connection. This password has to be configured
# as "PeerPassword" on the other server.
;MyPassword = MySecret

# Foreign password for this connection. This password has to be
# configured as "MyPassword" on the other server.
;PeerPassword = PeerSecret

# Group of this server (optional)
;Group = 123

[Channel]
# Pre-defined channels can be configured in [Channel] sections.
# Such channels are created by the server when starting up and even
# persist when there are no more members left.
# Persistent channels are marked with the mode 'P', which can be set
# and unset by IRC operators like other modes on the fly.
# There may be more than one [Channel] block.

# Name of the channel
Name =

# Topic for this channel
Topic =

# Initial channel modes
;Modes = tn

# -eof-

To make the server accessible outside your LAN open port 6667 on your firewall/router. I highly encourage setting a strong global server password if you choose to do this. Requires a static IP or dynamic dns.

mutt with gmail, gpg encryption, and a signature

First step to setting up mutt with your gmail - make sure imap access is enabled in your gmail settings. Now let's configure the ~/.muttrc file. Here's an example basic setup (taken from shreevatsa.wordpress.com):

set smtp_url = "smtp://accountname@smtp.gmail.com:587/"
set smtp_pass = "XXX"
set from = "accountname@gmail.com"
set realname = "Your Name"

set folder = "imaps://imap.gmail.com:993"
set spoolfile = "+INBOX"
set postponed="+[Gmail]/Drafts"

set header_cache=~/.mutt/cache/headers
set message_cachedir=~/.mutt/cache/bodies
set certificate_file=~/.mutt/certificates

set move = no
set sort = 'threads'
set sort_aux = 'last-date-received'
set imap_check_subscribed

ignore "Authentication-Results:"
ignore "DomainKey-Signature:"
ignore "DKIM-Signature:"
hdr_order Date From To Cc

Next let's add gpg support, encryption is good... Add this to your ~/.muttrc file (be sure to replace my key ID with your own):

set pgp_decode_command="gpg %?p?--passphrase-fd 0? --no-verbose --batch --output - %f"
set pgp_verify_command="gpg --no-verbose --batch --output - --verify %s %f"
set pgp_decrypt_command="gpg --passphrase-fd 0 --no-verbose --batch --output - %f"
set pgp_sign_command="gpg --no-verbose --batch --output - --passphrase-fd 0 --armor --detach-sign --textmode %?a?-u %a? %f"
set pgp_clearsign_command="gpg --no-verbose --batch --output - --passphrase-fd 0 --armor --textmode --clearsign %?a?-u %a? %f"
set pgp_encrypt_only_command="pgpewrap gpg --batch --quiet --no-verbose --output - --encrypt --textmode --armor --always-trust --encrypt-to 0x7890D0B4 -- -r %r -- %f"
set pgp_encrypt_sign_command="pgpewrap gpg --passphrase-fd 0 --batch --quiet --no-verbose --textmode --output - --encrypt --sign %?a?-u %a? --armor --always-trust --encrypt-to 0x7890D0B4 -- -r %r -- %f"
set pgp_import_command="gpg --no-verbose --import -v %f"
set pgp_export_command="gpg --no-verbose --export --armor %r"
set pgp_verify_key_command="gpg --no-verbose --batch --fingerprint --check-sigs %r"
set pgp_list_pubring_command="gpg --no-verbose --batch --with-colons --list-keys %r"
set pgp_list_secring_command="gpg --no-verbose --batch --with-colons --list-secret-keys %r"
set pgp_autosign=yes
set pgp_sign_as=0x7890D0B4
set pgp_replyencrypt=yes
set pgp_timeout=1800
set pgp_good_sign="^gpg: Good signature from"

Here's some info on encrypting email.

And finally, let's add a custom signature. Create a file to store the signature in. I used ~/.signature

The text in this file will be your sig. Add a line referencing the file in your ~/.muttrc file:

set signature="~/.signature"

Enjoy using gmail in your terminal!

Encrypt IM's

Users of Debian based systems can apt-get install pidgin pidgin-otr libpurple-dev

First a good multi-protocol client. Pidgin is a chat client that can connect to Google Talk, MSN, Yahoo, Aol, facebook, myspace, and even now - twitter.

http://www.pidgin.im/

Using the off-the-record messaging add on, we can encrypt instant messages

http://www.cypherpunks.ca/otr/

and now with the new libpurple-twitter-protocol - we can chat with twitter friends

http://code.google.com/p/libpurple-twitter-protocol/

The OTR encryption plugin works with included protocols - but not with the facebook and twitter ad-ons. The Twitter ad-on does offer SSL, and the ability to direct through a standard proxy. Facebook im's can be directed through a standard proxy also.

Encrypt and sign your emails

using gpnupg public key cryptography to encrypt and sign email

The way public key cryptography works is you generate a key and upload it to a public key server. Someone wishing to send you an encrypted email or verify your email signature downloads your public key from the key server. To send someone an encrypted email, you'll need their public key.

This example uses my public key, replace with your own after generating it in step one. On Debian based systems:

Generate a gpg key:

gpg --gen-key

Enter your email address, and a password. System defaults will work for other options.

To list all keys:

gpg --list-keys

Add your key to bashrc by opening ~/.bashrc in a text editor and adding the line:

export GPGKEY=7890D0B4

Upload your public key to public keyservers:

gpg --send-keys --keyserver keyserver.ubuntu.com 7890D0B4

gpg --send-keys --keyserver wwwkeys.eu.pgp.net 7890D0B4

Another user can retrieve your key with the command:

gpg --keyserver keyserver.ubuntu.com --recv 7890D0B4

For browser webmail based encryption try the firegpg firefox extension. For Thunderbird/Iceweasel - apt-get install enigmail. A more detailed gnupg guide is here.

Quick and dirty postqresql commands

Want to make use of a postqresql database, say for speeding up Amarok? Here's a few quick and dirty commands.

Set the password for the postgres user (replace password with your password):



Add a system user (replace user with your system user name):

sudo -u postgres createuser -D -A -P user

Create a database (replace user with your user name and database with your desired database name):

sudo -u postgres createdb -O user database

Remove a database (replace database with the name of the database you wish to remove):

sudo -u postgres dropdb database

SSH server

Want an SSH server running on your machine for remote access or proxy? (like breaking out of your corporate firewall to listen to net radio).

Setting up an SSH server for remote access or proxy is easy. Install the server:

apt-get install openssh-server

edit the conf file - /etc/ssh/sshd_config - if you want to change any default options, such as port settings.

Restart the SSH server after editing:

/etc/init.d/ssh restart

log in via: ssh username@domain - to use as a proxy log in via dynamic port: ssh -D 9999 username@domain then point your browser/app to socks 5 proxy, localhost port 9999

If you do not have a static IP on your home machine, you'll need dynamic dns - a service which providers you a domain, for example: mydomain.twilightparadox.com and then using your router software or a software client for your machine updates your ip address as it changes. One such free service can be found here

Security can be added via the hosts files, and using denyhosts. Denyhosts adds an entry to /etc/hosts.deny after a variable number of failed login attempts. You'll first want to add localhost and any other ips which frequently log in via SSH to /etc/hosts.allow with an entry like so:

sshd: 127.0.0.1

You can add ranges also:

sshd: 192.168.0.1/24

Ninvaders - Linux terminal space invaders clone

ncurses based spaced invaders clone for your linux terminal. Fun! Debian users can apt-get install ninvaders. Others see here: http://ninvaders.sourceforge.net/

The cray-cyber.org Computer Museum

"Occasionally I feel nostalgic and want to log into an old supercomputer. The guys at cray-cyber.org have a great collection of older machines that they keep powered up for the general public to explore. Not all machines are kept powered up 24/7 but its a rare chance to get access to very uncommon machines.

Among their collection is a Cray Y-MP EL, a SGI Origin 2000, a Sun Enterprise 10,000 and a number of other Control Data Cyber, NEC and Cray supercomputers. In addition to their extensive collection of working older machines connected directly to the internet is a wealth of documentation and photographs of these historic machines..."

Taken from: robertbchase.blogspot.com