Respuestas:
No puedo pensar en ningún ajuste específico de Ubuntu, pero aquí hay algunos que se aplican a todas las distribuciones:
Por supuesto, esta lista no está completa, y nunca estarás completamente seguro, pero cubre todas las hazañas que he visto en la vida real.
Además, los exploits que he visto casi siempre estaban relacionados con un código de usuario no seguro, no con una configuración insegura. Las configuraciones predeterminadas en distribuciones mínimas de servidor tienden a ser bastante seguras.
Una cosa rápida que hago al principio es instalar DenyHosts . Regularmente buscará en / var / log / secure, buscando inicios de sesión fallidos y, después de un par de fallas, bloqueará la IP. Lo configuré para que se bloquee después del primer no-tal-usuario, en el segundo intento de root, y después de un par de intentos para usuarios reales (en caso de que se equivoque, pero debería usar una clave pública SSH para iniciar sesión).
Ubuntu se basa en Debian y el Manual de seguridad de Debian me pareció muy útil en las distribuciones basadas en Debian para guiarlo completamente a través de su sistema y verificar cada parte. Básicamente es una respuesta muy, muy completa a su pregunta.
Por lo general, instalo RKHunter, que busca rootkits y realiza verificaciones de integridad de varios binarios importantes del sistema. Está en el repositorio estándar y se ejecutará diariamente desde cron. No es perfecto, por seguridad, pero es un elemento de bajo esfuerzo para agregar, y proporciona una medida de protección.
Instale logcheck, pero modifique para que nunca reciba mensajes de eventos regulares, de lo contrario tendrá la costumbre de ignorar los correos electrónicos.
Compruebe qué procesos están escuchando usando netstat y asegúrese de que no se ejecute nada que no sea necesario. Muchos demonios se pueden configurar solo para escuchar en la IP interna (o localhost) en lugar de todas las interfaces.
Haz lo que Can te sugiera ...
Nmap el host y deshabilite todos los servicios no esenciales. Use iptables si es necesario.
Si va a acercarse a Internet con el servidor, instale un sistema de detección de intrusos como Snort.
Use particiones separadas para varios directorios como /tmp
o /var
y móntelos con nosuid
, nodev
y noexec
si es posible.
Aprenda a usar un firewall y los conceptos de bloquear correctamente una caja. Cambiar los puertos predeterminados es en gran medida una cosa inútil; La aplicación adecuada y la configuración del firewall son mucho más importantes.
Ambos están en los repositorios de Ubuntu:
tiene una excelente documentación y una sintaxis muy fácil de aprender. Pude configurar una puerta de enlace / firewall en veinte minutos. La única razón por la que me he alejado de esto es que no parece mantenerse (última versión hace 2 años). No significa que no funcione, pero ...
Es otro. Más sintaxis tipo iptables, pero el mismo concepto. Se mantiene más comunidad que FireHOL, pero se tarda más en recoger.
es lo que uso actualmente. Su documentación es extensa y su formato de configuración es tabular. Me llevó aproximadamente una hora y media comprender todos los archivos necesarios (6) para ejecutar una configuración de firewall / puerta de enlace en funcionamiento. Es bastante poderoso CONSEJO: ¡Las páginas de manual para los diferentes archivos de configuración son REALMENTE útiles!
Todas estas configuraciones de firewall de carga desde un archivo de configuración. Muy eficaz, más fácil de usar que iptables directamente y (en mi opinión) más fácil de usar y administrar que ufw.
Secundo las recomendaciones para el uso de la clave SSH.
Configurar un IDS.
Aprenda sobre AppArmor. Restringe el acceso a los archivos ejecutables solo a directorios y archivos específicos que necesita. Similar a SELinux en el mundo RHEL. Está instalado y habilitado con 'perfiles' preconfigurados para muchos programas bien utilizados.
Además de otras sugerencias aquí, mencionaré tres que son obvias pero que quizás valga la pena mencionar para completar: