Install and configure ssh
(suggest PermitRootLogin No in /etc/ssh/sshd_config
, PermitEmptyPasswords No; note other suggestions in text also)
Disable or remove in.telnetd
, if installed
Generally, disable gratuitous services in /etc/inetd.conf
using update-inetd --disable
(or disable inetd
altogether, or use a replacement such as xinetd
or rlinetd
)
Disable other gratuitous network services; ftp, DNS, WWW etc should not be running if you do not need them and monitor them regularly. In most cases mail should be running but configured for local delivery only.
For those services which you do need, do not just use the most common programs, look for more secure versions shipped with Debian (or from other sources). Whatever you end up running, make sure you understand the risks.
Set up chroot
jails for outside users and daemons.
Configure firewall and tcpwrappers (i.e. hosts_access(5)); note trick for /etc/hosts.deny
in text.
If you run ftp, set up your ftpd server to always run chroot
'ed to the user's home directory
If you run X, disable xhost authentication and go with ssh
instead; better yet, disable remote X if you can (add -nolisten tcp to the X command line and turn off XDMCP in /etc/X11/xdm/xdm-config
by setting the requestPort to 0)
Disable remote access to printers
Tunnel any IMAP or POP sessions through SSL or ssh
; install stunnel if you want to provide this service to remote mail users
Set up a log host and configure other machines to send logs to this host (/etc/syslog.conf
)
Secure BIND, Sendmail, and other complex daemons (run in a chroot
jail; run as a non-root pseudo-user)
Install tiger or a similar network intrusion detection tool.
Install snort or a similar network intrusion detection tool.v
Do without NIS and RPC if you can (disable portmap).