diff options
author | ahriman <ahriman@falte.red> | 2019-09-02 17:42:06 -0400 |
---|---|---|
committer | ahriman <ahriman@falte.red> | 2019-09-02 17:42:06 -0400 |
commit | 0381bce35845cb387fcd7ce124da60b9c45c611a (patch) | |
tree | a28be6c57f92aa6b183f5ccc453cddfecea3c833 /pages | |
download | wiki-0381bce35845cb387fcd7ce124da60b9c45c611a.tar.gz |
tildewiki
Diffstat (limited to 'pages')
-rw-r--r-- | pages/bchs.md | 67 | ||||
-rw-r--r-- | pages/dcss.md | 43 | ||||
-rw-r--r-- | pages/finger.md | 63 | ||||
-rw-r--r-- | pages/gopher.md | 81 | ||||
-rw-r--r-- | pages/gpgssh.md | 76 | ||||
-rw-r--r-- | pages/irc.md | 72 | ||||
-rw-r--r-- | pages/pass.md | 112 | ||||
-rw-r--r-- | pages/unixtips.md | 36 |
8 files changed, 550 insertions, 0 deletions
diff --git a/pages/bchs.md b/pages/bchs.md new file mode 100644 index 0000000..4d68eac --- /dev/null +++ b/pages/bchs.md @@ -0,0 +1,67 @@ +<!-- +author: ahriman +title: BCHS Guide +description: Introduction to the BCHS stack for web development +date: 2019-04-24 +--> + +# BCHS Guide + +This will be a quick-and-dirty guide to getting started with the BCHS +stack. More information can be found at: + +* [Learn BCHS](https://learnbchs.org) +* [pledge(2)](http://man.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man2/pledge.2) +* [unveil(2)](http://man.openbsd.org/unveil.2) +* [kcgi](https://kristaps.bsd.lv/kcgi/) +* [ksql](https://kristaps.bsd.lv/ksql/) +* [kwebapp](https://kristaps.bsd.lv/kwebapp) + +tilde.institute is set up to process all files with the `.cgi` extension +via `slowcgi(8)`. This allows for a multitude of possibilities - +any compiled language can be used to develop web applications on an +OpenBSD server. It's advised to use `C` because of the `pledge(2)` and +`unveil(2)` system calls available, which allow for restricting privileges +and restricted filesystem access, respectively. + +Keep in mind that if you don't use the previously listed +`kcgi`/`ksql`/`kwebapp` libraries, you will need to work with HTTP's +eccentricities manually. For an example, [here's the Hello World +code](https://tilde.institute/helloworld.c) from the LearnBCHS +site. And [here it is running](https://tilde.institute/helloworld.cgi) +as compiled CGI here at tilde.institute. + +Once you've written your software to be served via CGI, be sure to +statically link the executables. Sure, there's a larger file size, but +the benefits outweigh that in this case - there's no relying on what +I may or may not have installed on tilde.institute. For example: + +``` +$ cc -static -g -W -Wall -o app.cgi app.c +``` + +When you've completed compilation, make sure to set permissions properly +(755) and move it to the public folder in your home directory. `httpd(8)` +is set to use `index.html` as the index file, however this can be changed +to `index.cgi` or what-have-you by contacting the admins. + +~institute user `xvetrd` has written a more detailed example on +`kcgi` than is provided on the library's site. It includes an +example `makefile` as well. The KCGI Starter archive is [available +here](https://tilde.institute/kcgi-starter.tar.gz). Simply +``` +curl -O https://tilde.institute/kcgi-starter.tar.gz +``` +it to your home directory here on ~institute, +``` +$ tar xzf kcgi-starter.tar.gz +$ cd kcgi-starter +$ make +$ make install +``` +to test the compilation. It installs to `~/public_html` with the proper +ownership and permissions. View the `index.c` source and the `makefile` +to see what goes on under the hood! Feel free to adapt it your own projects! + +[back](/) + diff --git a/pages/dcss.md b/pages/dcss.md new file mode 100644 index 0000000..c740768 --- /dev/null +++ b/pages/dcss.md @@ -0,0 +1,43 @@ +<!-- +title: Dungeon Crawl Stone Soup +author: ahriman +description: Connecting to the Tildeverse DCSS instance +--> + +# Dungeon Crawl Stone Soup + +`dcss` is a fun roguelike game that is now available on a tildeverse server +for your enjoyment. There are two ways to play: via `WebTiles` for simple +2d graphics and via `ssh` for a more traditional ascii interface. + +* CTVO: [https://crawl.tildeverse.org](https://crawl.tildeverse.org) + +If you already have an account on tilde.institute, you can play via the +ascii interface by issuing the command `dcss`. This will automatically +connect to the server and present the login/registration menu. + +Some users prefer graphics. For `WebTiles`, it will be necessary to go to +[https://crawl.tildeverse.org](https://crawl.tildeverse.org). Click `PLAY` +to open the `WebTiles` interface. + +## Recorded Games + +All games on CTVO (the tildeverse crawl server) are recorded for later +playback. In order to review a previously recorded game, navigate to [the +ttyrec directory](https://crawl.tildeverse.org/ttyrec), select a username, +and download the `ttyrec` file. You'll need to have the `ttyrec` package +installed in order to review them. Issue: `ttyplay file.ttyrec` and watch +as your terminal automagically transforms into a recorded DCSS game. + +`ttyplay` is installed on tilde.institute, so feel free to download a +game to your home directory and watch it from there. + +## Morgue Files + +Want to see the run-down of a game? Check out the `morgue` +file for it. They're sorted into username directories at: +[https://crawl.tildeverse.org/morgue](https://crawl.tildeverse.org/morgue). +Each `morgue` file contains information such as how you died, your stats, +an account of monsters vanquished, among other stuff. + +[back](/) diff --git a/pages/finger.md b/pages/finger.md new file mode 100644 index 0000000..e1251bb --- /dev/null +++ b/pages/finger.md @@ -0,0 +1,63 @@ +<!-- +title: Finger +author: ahriman +description: Getting started with fingerd +--> + +# Finger + +The finger protocol was created way back in 1977. its purpose was to +display information about the queried user of a system, or all the users +of a system. + +It fell out of use in the 1990s due to various security concerns. the +old finger daemons were buggy and easily exploited, while the +information garnered from a query could be used for social engineering +attacks. nowadays, the finger daemons have been refined and are no longer +so vulnerable. + +In the post-Facebook world, new types of social networks are +popping up. the latest in this movement is a resurgence of the finger +protocol. what follows is a rough guide for getting yourself up to speed +with finger on tilde.institute. + +## Querying + +The standard query for finger is simply + +``` +finger user@host +``` + +which displays login name, home directory, shell, real name, current login +time, idle time, whether or not the user has mail, and the contents of +the user's `~/.plan` file. Here is an example of the output: + +``` +Login: username Name: Bob Bobson XXII +Directory: /home/username Shell: /bin/bash +On since Wed Jan 2 04:04 (EST) on pts/94 from 168.297.83.21 via mosh [6420] + 8 minutes 26 seconds idle +Last login Wed Jan 2 04:33 (EST) on pts/91 from 168.297.83.21 +No mail. +Plan: hey hey hey everybody! +``` + +## .plan + +The `~/.plan` file displayed at the end of the finger query response +allows for some customization. You can put literally any text you want +there. Status updates, summaries, etc. This little file allows us to use +finger as a rudimentary social network. + +For example, say you want to use it as a personal summary, like having +a blurb about what you're working on. Place the statement into `~/.plan` +and you're ready to go! + +For a more traditional social network style format, put dated and timed +status updates as if you're tooting on a mastodon instance. The sky's +the limit! Well, actually, text is the limit. But you get the idea. Right? + +Hope to see you on finger soon! + +[back](/) diff --git a/pages/gopher.md b/pages/gopher.md new file mode 100644 index 0000000..3815505 --- /dev/null +++ b/pages/gopher.md @@ -0,0 +1,81 @@ +<!-- +title: Getting Started With Gopher +description: Using burrow to manage your gopher presence +author: tomasino +--> + +# Getting Started With Gopher + +# Using `burrow` + +To create a gopher hole on tilde.institute, a user can easily get started +by doing the following: + +### Create the gopher directory +``` +$ mkdir public_gopher +``` +### Create a root gophermap +``` +$ burrow gophermap +``` +Gophernicus will interpret any text you add here as information lines unless they begin with one +of gophernicus' special characters or contains a tab. As a general rule, +don't use tabs unless you're intentionally linking something. + +Add a cool header to the file (check out `figlet`!), then somewhere +near the top, paste: +``` +==== Last Updated: February 19th, 2019 ==== +``` +The date doesn't matter, really. Whenever you "phlog" with `burrow` +it will update the date for you. How sweet is that? + +Now lets add a link to your phlog that you're totally going to have: + +``` +1phlog[tab]phlog +``` + +That `[tab]` should be a literal tab, though. Make sure your editor +doesn't convert it to spaces. Now, save and quit the editor. + +### Create a phlog directory +``` +$ mkdir ~/public_gopher/phlog +``` +### Now create a new phlog with burrow +``` +$ burrow phlog +``` + +You'll be prompted for a title. If you hit enter and give no title then +burrow will abort. + +Once you hit enter after giving your title a temporary file will open in +your default `$EDITOR`. Don't like that editor? Be sure to change your +environment var! + +If you quit your phlog file without saving the post is aborted. If you save +and quit, it will create a new phlog entry, add it to your phlog gophermap +that now exists, and update the date on your root gophermap. That's it! + +You have an RSS file sitting in the root of your gopher hole at +`rss.xml`. It will automatically generate when you phlog, like a +winner. You can edit your root `gophermap` at any time by using burrow's +`gophermap` action. If you create other folders and gophermaps in the +future you can use burrow's gophermap function to target them. For +instance, to open the phlog listings you would: +``` +$ burrow gophermap /phlog +``` +Editing gophermaps with `burrow` will ensure they're always +saved and formatted properly! Any other files are just text, so open them +directly with your editor of choice. + +That's it! Happy gophering. + +~tomasino + +[back](/) + diff --git a/pages/gpgssh.md b/pages/gpgssh.md new file mode 100644 index 0000000..96ab7cb --- /dev/null +++ b/pages/gpgssh.md @@ -0,0 +1,76 @@ +<!-- +title: GnuPG for SSH Authentication +Description: Using gpg-agent as an alternative to ssh-agent +author: ahriman +--> + +# Using GPG for SSH Authentication + +It's a fairly simply process to have gpg-agent handle your SSH +authentication. To start off, you'll need to have a private GnuPG key +generated with an appropriate subkey for authentication. Once that's +taken care of, open up `~/.gnupg/gpg-agent.conf` + +``` +$ cat ~/.gnupg/gpg-agent.conf + enable-ssh-support + default-cache-ttl 60 + max-cache-ttl 120 +``` + +Now you'll need to append the following to `~/.bashrc`, or the appropriate +rc file for your shell + +``` +$ cat ~/.bashrc + export GPG_TTY="$(tty)" + export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket) + gpg-connect-agent updatestartuptty /bye > /dev/null +``` + +Once that's done, you'll need to let `gpg-agent` know which GnuPG subkey +to use for SSH authentication. Run the following and copy the keygrip +associated with the subkey you've generated specifically for authentication. +Don't use *my* keygrip, however. The output here is just for an example. `GnuPG` +computes the keygrips from the public key, so nothing here is sensitive +or private. + +``` +$ gpg --with-keygrip -k ben@gbmor.dev + pub rsa4096/0xEAB272409CD12FF0 2018-11-25 [SC] + Key fingerprint = 291A AFF7 A291 7DAB 0E01 6B9C EAB2 7240 9CD1 2FF0 + Keygrip = DE06FAA273017BBD8778F94639611CEF53AB9EBC + uid [ultimate] Ben Morrison <ben@gbmor.dev> + sub rsa4096/0xF9C3B650612249D9 2018-11-25 [E] + Keygrip = 751ADAC109736316B6ABEBB3F2BDF4612F8A630C + sub rsa4096/0x4969E5731CFEB507 2018-11-25 [A] + Keygrip = 44D1BDC0C1931E2E018E7CE49CDE14BFB4EA11E3 + sub rsa4096/0x8F192E4720BB0DAC 2018-11-25 [S] + Keygrip = 240966CBF2791D8C34D0DA646925435FED49F9BF +``` + +Now, open `~/.gnupg/sshcontrol` and paste the keygrip into that file. +It's the keygrip just below the key marked `[A]` for authentication. +Verify that the correct keygrip has been selected by running these two +and comparing the output: +``` +$ ssh-add -L + ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCakJKfXUuX/ZDxJQySdxCeQfxTu0g + KPCESGDyadvFAPDxtcTfOrxfqJLZx8CodkC7hzHT/QEy/xMgN18Q== cardno:000609861127 +``` +``` +$ gpg --export-ssh-key <keyid> + ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCakJKfXUuX/ZDxJQySdxCeQfxTu0g + KPCESGDyadvFAPDxtcTfOrxfqJLZx8CodkC7hzHT/QEy/xMgN18Q== openpgp:0x1CFEB507 +``` +The `ssh` output should match the `gpg` output (except maybe the little +trailing comment, like here). Also, I've removed most of the public key I'm using as +an example for brevity's sake. It should be quite a bit longer than this. +If `ssh` is correct, kill off `gpg-agent` +``` +$ pkill gpg-agent +``` + +Then open up a new terminal and attempt to connect to a server! + +[back](/) diff --git a/pages/irc.md b/pages/irc.md new file mode 100644 index 0000000..1c45daf --- /dev/null +++ b/pages/irc.md @@ -0,0 +1,72 @@ +<!-- +title: IRC +description: Introduction to our IRC network +author: ahriman +--> + +# IRC + +To connect to the [tildeverse IRC network](https://tilde.chat) and begin +chatting while logged on to tilde.institute, simply use the command +`chat`! If you prefer to use a different IRC client than the default, +such as `irssi`, the following server information will apply: + +* institute.tilde.chat +* Port 6697 +* TLS / SSL + +Don't forget to `/join #institute` and `/join #meta` + +## Channels + +There are quite a few channels on tilde.chat, however some have more +activity than others. Here's a few channels that you may be interested in. + +* `#meta` - the general chat channel for all of the [tildeverse](https://tildeverse.org) +* `#institute`- for tilde.institute-related discussion +* `#tilderadio` - the channel for the [tildeverse radio station](https://tilderadio.org) +* `#cosmic` - discussions pertaining to [cosmic voyage](https://cosmic.voyage), a +`tilde` focusing on collaborative science fiction writing +* `#tildetel` - the channel for [tilde.tel](https://tilde.tel), the neighborhood SIP server +* `#security` - computer, software, and network security discussions +* `#uucp` - the [dataforge](https://uucp.dataforge.tk) UUCP-over-SSH project +* `#hamradio` - the channel for hams! +* `#cervezafria` - A place for our Spanish-speaking friends to relax + +You can check the currently available channels any time by issuing `/list` +in your IRC client. + +## Connecting Externally + +Want to hang out on the tildeverse when you aren't connected to +tilde.institute? No problem! Just use these settings in your favorite +IRC client: + +* irc.tilde.chat +* Port 6697 +* TLS/SSL is required + +The DNS round robin will connect you to one of the nodes in the network. + +If you're using `weechat` the following will connect you: + +``` +/server add tilde irc.tilde.chat/6697 -ssl -autoconnect +/connect tilde +``` + +And if you're using `irssi` + +``` +/connect -tls -tls_verify irc.tilde.chat 6697 +``` + +The tildeverse IRC network also runs an instance of `The Lounge`, a +web-based IRC client that allows you to stay connected even when you're +away. It's available at: + +* [https://web.tilde.chat](https://web.tilde.chat) + +Join us on the tildeverse IRC network and socialize with other tilde users! + +[back](/) diff --git a/pages/pass.md b/pages/pass.md new file mode 100644 index 0000000..2259f9e --- /dev/null +++ b/pages/pass.md @@ -0,0 +1,112 @@ +<!-- +title: pass, the CLI Password Manager +author: erxeto +description: Usage guide for pass +--> + +# pass, the CLI Password Manager + +`pass` is a command line utility to manage your passwords. + +It creates a simple file/folder structure under your `$PASSWORD_STORE_DIR` +(by default `~/.password-store`) where every file is encrypted with your +gpg key. + +You can organize that hierarchy as you see fit. For instance something like +`sites/tilde.news/myusername` is a common way of doing it. + +Those files are not limited to contain simply a password, they can contain +anything. But is recommended that the password goes alone in the first +line, so you can benefit from the `-c` option which copies that to the +clipboard directly. + +There is `bash`, `zsh` and `fish` command line completion available and +all can be tracked using `git`. So it's really convenient. + +## Setup + +This is simple, just one command (assuming you have your GnuPG key +ready). GPG-ID is the hex id of your key. + +``` +$ pass init GPG-ID + mkdir: created directory ‘/home/user/.password-store’ + Password store initialized for GPG-ID +``` + +## Basic Usage + +List all passwords "tree" style + +``` +$ pass Password Store +├── sites +│ ├── tilde.zone +│ │ ├── myUserName +│ │ ├── secondAccount ... +``` + +Find a password + +``` +$ pass find tilde.zone +Search Terms: tilde.zone +└── sites + └── tilde.zone + └── myUserName@tilde.zone +``` + +See the content of a file + +``` +$ pass email/tilde.institute/myAccount + supersecret +``` + +Copy the first line to the clipboard. Clear time can be configured with +`$PASSWORD_STORE_CLIP_TIME` + +``` +$ pass -c email/tilde.institute/myAccount + Copied email/tilde.institute/myAccount to clipboard. + Will clear in 45 seconds. +``` + +Insert a new password. It can be multiline with `-m`. Remember to put the +password on the first line if you want to use the clipboard function + +``` +$ pass insert sites/foo.com/blah + Enter password for sites/foo.com/blah: +``` + +Generate a 32 chars random password and store it. You can define the +default length with `$PASSWORD_STORE_GENERATED_LENGTH`. With `-n` the +password will not include symbols, but alphanumeric characters only. With +`-c` it gets copied to the clipboard as usual. +``` +$ pass generate sites/foo.com/abcd 32 + The generated password to sites/foo.com/abcd is: + $(-QF&Q=IN2nFBx) +``` + +take a look at the `--help` option or the complete documentation on +their website. + +## Changing Keys + +If you need to change the key being used for your password files, +simply navigate to the directory and re-issue `pass init`, but with +the ID of the new key to be used. Pass will prompt for the old key's +password, then automatically decrypt all keys and re-encrypt them +with the new key. +``` +$ cd ~/.password-store +$ pass init NEWGPGKEYID +``` + +references: + +* [pass home page](https://passwordstore.org) + +[back](/) diff --git a/pages/unixtips.md b/pages/unixtips.md new file mode 100644 index 0000000..675d644 --- /dev/null +++ b/pages/unixtips.md @@ -0,0 +1,36 @@ +<!-- +title: UNIX ProTips +description: Handy tips for budding power users +author: xvetrd +--> + +# UNIX ProTips + +I realized today I wasn't getting mail notifications, and I hadn't set +them up on this shell. So here are some things I do on my local machine +that work here: + +To get the shell to tell you when you have new mail, after command +executions, add this to your `.profile` or your `.kshrc` files +(or other shell RC file) in your home directory. + +``` +export MAILCHECK=0 +``` + +And, if you want, you can have a persistent notification when +you have un-incorporated mail, or more specifically, when your +`/var/mail/<username>` isn't empty. + +``` +PS1="\$([-s /var/mail/`whoami` ] && echo '* ')$PS1" +``` + +This works in `/bin/ksh`, I can't speak for other shells. + +If anybody else has some quick tips they would like to share, I encorage +them to edit this page. + +Happy Unixing! + +[back](/) |