Liegt schon eine Installation vor, so sind alle packages zu entfernen, die für den Betrieb des Servers nicht benötigt werden.
In /etc/hostname.<interface> darf nur der Hostname des Rechners eingetragen sein.
In /etc/inet/hosts enthält die Einträge:
127.0.0.1 localhost
<IP address> <hostname>
<IP address> loghost
/etc/inet/netmasks enthält:
<Network Number> <Subnet Mask>
Installation Secure Shell (SSH)
Entfernen der nicht benötigten Remote Command Tools
rm /usr/bin/rcp
rm /usr/bin/rdate
rm /usr/bin/rdist
rm /usr/bin/remsh
rm /usr/bin/rlogin
rm /usr/bin/rpcinfo
rm /usr/bin/rsh
rm /usr/bin/rksh
rm /usr/bin/rup
rm /usr/bin/ruptime
rm /usr/bin/rusers
rm /bin/rwho
Die Bootoptionen im Eprom sind so zu setzen, dass niemand den Rechner über ein anderes Medium booten kann.
User "root" hardening:
root sollte eine umask 077 oder 027 haben
Der Suchpfad sollte möglichst klein gehalten werden, z.B. /usr/bin:/sbin:/usr/sbin
Das Passwort von root sollte cryptisch und lang genug sein
Unnötige Standarduser:
"sys", "uucp", "nuucp" und "listen", am besten deaktiveren/locken.
Über die Datei ftpusers ist der Zugriff von Usern auf ftp zu limitieren.
Statt ftp ist zum sicheren Filetransfer das Kommando scp zu benutzen, welches mit dem ssh package installiert wird.
rlogin und rsh benutzen die .rhosts nicht, wenn in die pam.config entsprechend konfiguriert ist. Besser ist es ssh zu verwenden.
Überprüfung, welche Dateien/Verzeichnisse für wen (über-)schreibbar sind:
find / -local ! -type l -perm -4000 -ls > /var/log/suid-files
find / -local ! -type l -perm -2000 -ls > /var/log/sgid-files
find / -local ! -type l -perm -0020 -ls > /var/log/group-writeable-files
find / -local ! -type l -perm -0002 -ls > /var/log/writeable-files
find / -local ! -type l -perm -0001 -ls > /var/log/executable-files
Anhand der Logfiles sind dann alle kritische Dateien zu ermitteln (insbesondere executable-files),
die von potentiellen Angreifern überschrieben werden könnten.
Die Dateien und Verzeichnisse sind dann geeignet zu schützen.
Das Tool sendmail ist zu deaktivieren
rm /etc/rc2.d/S88sendmail
oder durch sicherere Tools, wie z.B. postfix oder smrsh zu ersetzen, bzw. per crontab Eintrag die Mail Queue z.B. stündlich abarbeiten:
0 * * * * /usr/lib/sendmail -q
Das System Logging ist zu erhöhen bzw. geeignet anzupassen. In der Datei /etc/syslog.conf sollte am Ende stehen:
kern.debug /var/log/all/kern.log
user.debug /var/log/all/user.log
mail.debug /var/log/all/mail.log
daemon.debug /var/log/all/daemon.log
auth.debug /var/log/all/auth.log
syslog.debug /var/log/all/syslog.log
lpr.debug /var/log/all/lpr.log
news.debug /var/log/all/news.log
uucp.debug /var/log/all/uucp.log
cron.debug /var/log/all/cron.log
local0.debug /var/log/all/local0.log
local1.debug /var/log/all/local1.log
local2.debug /var/log/all/local2.log
local3.debug /var/log/all/local3.log
local4.debug /var/log/all/local4.log
local5.debug /var/log/all/local5.log
local6.debug /var/log/all/local6.log
local7.debug /var/log/all/local7.log
NFS deaktivieren:
rm /etc/rc2.d/{S73nfs.client,K28nfs.server} /etc/rc3.d/S15nfs.server /etc/dfs/dfstab
RPC deaktivieren:
Sehr empfehlenswert, aber mache Programme, wie CDE oder Disksuite funktionieren dann nicht mehr..
Wenn RPC nicht deaktiviert werden kann, dann ist zumindest ein Paketfilter ein absolutes Muss.
rm /etc/rc2.d/S71rpc
Drucken deaktivieren (Es sei denn, ein lokaler Drucker ist unabdingbar)
rm /etc/rc2.d/{S80lp,S80spc}
nscd (Naming Services Caching Daemon) deaktivieren:
mv /etc/rc2.d/S76nscd /etc/rc2.d/.S76nscd
CDE deaktivieren: Es sei denn eine graphische Console ist unabdingbar.
rm /etc/rc2.d/S99dtlogin
NTP (Network Time Protocol) deaktivieren.
rm /etc/rc2.d/S74xntpd
SNMP deaktivieren, es sei denn Applikationen, wie Backup benötigen diesen Daemon.
Falls der Daemon aktiviert bleiben soll, dann sollte nur ein Leserecht auf den "community string" gegeben werden.
rm /etc/rc2.d/K07snmpdx /etc/rc3.d/S76snmpdx
Weitere Services deaktivieren (automounter, power mgt., serial protocols, caching fs, etc.)
rm /etc/rc2.d/{S74autofs,S30sysid.net,S71sysid.sys,S72autoinstall}
rm /etc/rc2.d/{S93cacheos.finish,S73cachefs.daemon,S80PRESERVE}
rm /etc/rc2.d/{S85power,K07dmi}
rm /etc/rc3.d/S77dmi
Falls Server/Developer Packages installiert worden sind:
rm /etc/rc2.d/{S47asppp,S89bdconfig,S70uucp}
IP forwarding, source routing (falls mehr als eine Netzwerkschnittstelle existiert), und "echo broadcasts" verhindern.
Dazu folgende Zeilen an die /etc/init.d/inetinit hinzufügen:
## hardening
ndd -set /dev/ip ip_forward_directed_broadcasts 0
ndd -set /dev/ip ip_forward_src_routed 0
ndd -set /dev/ip ip_forwarding 0
ndd -set /dev/ip ip_respond_to_echo_broadcast 0
ndd -set /dev/ip ip_strict_dst_multihoming 1
Um IP Spoofing/Prediction zu verhindern, in der /etc/default/inetinit folgende Zeile einfügen:
TCP_STRONG_ISS=2
Buffer Overflows verhindern, damit kein nichtauthorisierter Code ausgeführt werden kann. In /etc/system folgendes setzen:
set noexec_user_stack=1
set noexec_user_stack_log=1
dynamisches Routing verhindern:
Die IP Adresse des Routers ist in die /etc/defaultrouter einzufügen und die Datei /etc/notrouter per "touch /etc/notrouter" anlegen
Multicasting deaktivieren: In der /etc/init.d/inetsvc alle Zeilen um "route add 224.0.0.0" auskommentieren.
Zusätzlich das Logging für alle INETD Verbindungen einschalten:
In der Zeile zum Starten des Daemons die Option "-t" hinzufügen ("/usr/sbin/inetd -s -t ")
In der /etc/hosts alle kritischen Server eintragen, die nicht per DNS aufgelöst werden sollen
Nach Möglichkeit in der /etc/inetd.conf. alles nicht unbedingt Notwendige ausschalten.
Das Anmelden von Usern protokollieren:
Dazu folgende Kommandos absetzen
touch /var/adm/loginlog
chmod 600 /var/adm/loginlog
chgrp sys /var/adm/loginlog