+-----------------------------------------+
| Server: Part 1 |
+-----------------------------------------+-------+
| |
| Date: 20181124-13:15 |
| Author: Sloum |
| Soundtrack: Black Metalic by Catherine Wheel |
| |
+-------------------------------------------------+-------------------------+
As mentioned earlier, I am trying to set up a small ssh/gopher/code portal.
I have decided to document the setup process here. I am setting this up with
a Raspberry Pi Zero W. Here is what has been done so far:
Step 1: Get the Pi up and running
----------------------------------
This step is pretty basic. Inserted the SD card into a computer/laptop and
use Etcher[0] to flash Rasbian Lite onto the SD card. Then unmounted the card
and put it into the Pi. After that plug the Pi into a monitor and keyboard (I
used a terrible cheap keybaord my wife had meant to throw away). Boot up and
log into the Pi. Default user is "pi" and default password is "raspberry".
At this point I recommend changing the password for the "pi" user. I did this
via the "passwd" command, but it can also be done with "raspi-config", which
will be used for other things in the next step anyway.
Step 2: Configure WIFI & SSH
----------------------------------
In "raspi-config" changed the hostname to what you want it to be. Then update
the time zone and locale. I am running wireless (via WIFI) rather than using
ethernet. Getting the WIFI on the Pi to work was a really big pain. It tookctr
quite a lot of time to get going. First you will want to set the WIFI country
in the "raspi-config" tool. While in the tool activate SSH.
While it is possible that your Pi may just work on WIFI at this point, it
seems unlikely. Here are some things to try:
- Running "sudo iwlist wlan0 scan" will show you available WIFI networks.
- Edit "/etc/wpa_supplicant/wpa_supplicant.conf" as administrator as follows:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
# Use your country code
country=US
network={
# use quotes around the ssid & psk
# replace networkname with your access point name
# replace networkpassword with your access key
# key_mgmt gets set as what you use e.g. NONE or WPA-PSK
ssid="networkname"
psk="networkpassword"
key_mgmt=WPA-PSK
}
- Edit "/etc/network/interfaces" as administrator to be similar to:
source-directory /etc/network/interfaces.d
auto lo
iface lo inet loopback
allow-hotplug wlan0
iface wlan0 inet static
#your local IP here
address x.x.x.x
#your netmask here
netmask x.x.x.x
# your gateway here
gateway x.x.x.x
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
- Run "sudo systemctl disable dhpcd && sudo systemctl enable networking"
- Backup sshd_config file:
"sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.factory-defaults"
- Edit sshd config as desired (lots of settings options available)
I sandbox all users except root to force chrooted SFTP access
- Update the "/etc/skel" directory so that new users get set up the same way
- Log into ssh locally: "ssh username@host.local"
This will use passwords unless you already set up using
authorized keys during the sshd_config editing phase.
I set mine up to use authorized keys and organized a file
structure for storing those keys based on username as part
of my sshd_config.
-------------------------------------------------------------------
That is basically where I am at. I, of course, also updated and upgraded
via apt. Installed vim, updated vimrc, updated bash_aliases, etc.
I am looking into gopher server software options. It seems like gophernicus
is likely the best call, but it would be fun to support a less mature
project if I can find something that will work well.
I am going to start coding a custom shell in Python soon and will likely
document that process in the coming updates.
I am still thinking about doing version control hosting as well. I am
trying to decide between Bazaar[1] and Git. Bazaar has some cool stuff
going for it... meh. I'll keep thinking on it while I get gopher set up
on the pi.
Lastly, I need to get dynamic DNS set up. I got a static IP assigned by
my router and port forwarding set up for SSH and Gopher. Do any of you
have advice for dynamic DNS providers, gopher server software/daemon,
custom shell styles, etc? Feel free to respond via your gopher or email
me: sloum@sdf.org
I hope those of you that celebrate it had a lovely thanksgiving! I had
a great time with family and have been enjoying the long weekend.
[0] https://www.balena.io/etcher/
[1] https://bazaar.canonical.com/en/