Doc /

OpenSUSE small server basics (third edition)

<-Back

Starting Point

Hardware

I own a hosted server on the kimsufi.com site, part of the ovh.com hosting service (one of the biggest french one). As of 2013 I got a new server with 24Gb ram and 2Tb disk, I7 processor, so I Have plenty of excess power.

I already manage elsewhere a VirtualBox server on a single core cpu with 2Gb ram, the old one.

I manage now my server in a virtual machine, 4 cpu (on 8 total) and 8 Gb ram (on 24 total).

Get a Domain Name

I know you can use a dynamic system, but having your own domain name is very handy and very cheap. I use http://gandi.net and pay only €12 a year for my dodin.org domain name (I own also the dodin.net one, but this is an other story). I always had fixed IP, including at home, so I don't know much about a server on a variable IP system.

I buy recently yet an other domain name (dodin.org) to makes it easier to make migrations. I can build the new server on a real domain name and only switch when it's ok. ovh.com is very cheap, around €7 only for a domain name (a year!).

Know what you want

The first task is to take a paper and a pencil and write down exactly what you want. Of course, when working, you will understand better your needs and change accordingly, but any change can give painfull results.

As an example, gandi.net allows you to have a full mail server with no administration and unlimited e-mails for as low as €1 (one!) a month and if you want only the myname@mydomain e-mail, better use it. I wanted to learn mail administration, so I decided to go the hard way and install my own one.

What I wanted was:

  • an http server for me and my family (I have two daughters working as singer and actress, so they need also web site);
  • a mail server. I want to be able to manage all my mails from this server, to be able to read them (and the archives) from any computer on the world, without having to bring one with me;
  • a ftp server to store files as needed and allow customers to do also;
  • of course ssh access;
  • rsync daemon to use my server as backup server;

Basic config

Update

It's mandatory to make an immediate update. Using "zypper up" is probably the best way, at this step if there is a failure it's easy to install again.

Also configure the automatic updates, unless you are ready to log every day on your server.

Langage

The langage was not utf8.So I had to change it. Better use YaST/system/language. After that you should have (for me french UTF8), in /etc/sysconfig/language

 RC_LANG="fr_FR.UTF-8"

Setup repositories and YaST

Install basic stuff

Depending of your initial install you will probably have to install a lot of things. My provider installed a very minimal system. I had to install nearly all by hand. Begin to install all the meaningfull YaST modules (search for yast in software install). I had yast (mandatory!), but not yast2 (no gui) when using "ssh -X -C" to connect then yast2 is much friendlier. Notice that ssh -X seems to need a minimal X install. I use ti install xfce4 (but not to run it at boot).

I didn't write down all what I installed. A short list is probably: mc, w3m, yast2-gtk and qt, vsftpd (ftp), dovecot (mail imap/pop3), mrtg (http statistics), inn (news server), mailman (list server), spamassassin (spam fighter), apache2, ntp (time sync), tightVNC (remote admin). X and xfce may be usefull some day.

Don't forget to activate the necessary services in YaST, system, services (run levels).

Using patterns is friendly, but for example I ended with libreoffice and Gimp, not really necessary on a web server :-) (don't forget to remove them :-).

Automatic updates

You should have a YaST module to manage automatic security updates? If you don't have, you didn't install the relevant module. Do and configure the update. The module name (13.1) is "yast2-online-update-configuration". It's available from software management/config, but only in qt version (not ncurse) with install on the go. With ncurse (xterm) version, install it yourself. after that it's available in the control centrer menu as Online Update Config.

Firewall

Default openSUSE firewall is SuSEFirewall2. Most options are setup with the YaST2 module.

The main error to avoid is to launch the firewall before having setup the ssh opening - doing so you will lose the connection to the server...

Test the firewall: http://www.auditmypc.com/firewall-test.asp (but from the tested computer). To be able to use this easily look at Doc.TunnelSshEtFirefox.

Add:

  • dovecot
  • smtp (postfix)
  • http (apache)
  • https
  • VNC
  • vsftp

Runlevels

Do verify all your daemons are running and launched at start.

Specially:

  • inn if you want a newsgroup server (not yet for me)
  • mailman for mailing lists (not yet for me, but I will need it soon)
  • rsyncd (do not seems to be mandatory)
  • spamd (not yet)
  • vsftpd

In YaSR was "running levels", is now "service manager" (13.1)

X11Forwarding

To allow X11 forwarding to work on modern distributions, you have to add

X11Forwarding yes
#X11UseLocalhost no
AddressFamily inet

to "/etc/ssh/sshd_config".

then log in with "ssh -X -C [-p <port>] url

Notice: I keep the "X11UseLocalhost no" in the list (but not activated thanks to #) because it's often given as a working solution. But I was said that the problem is an obscure IPV6 problem and that "AddressFamily inet" instruct ssh to use IPV4 and is much more secure, so better use it.