I’ve been summoned? 
Geht mir ähnlich, aber mit moderater Paranoia 
Es gilt wie immer, dass man eine Balance aus Sicherheit auf der einen Seite und Bequemlichkeit & Komplexität auf der anderen Seite finden muss, der für die persönliche Situation passend ist. Natürlich gibt es Dinge, die man objektiv auf keinen Fall machen sollte (Demosystem mit User demo
, Passwort demo
, und aktiviertem SSH direkt öffentlich erreichbar? Keine gute Idee). Alles andere ist relativ.
Jeder Proxyserver, der verwendet wird, erhöht die Komplexität eines Systems, erfordert aktive Maintenance, und erfordert separate Sicherung. Was bringt es, einen Proxy zu verwenden, den man nie aktualisiert und der z.B. gegen die OpenSSL-Schwachstelle Heartbleed anfällig ist? Richtig, er höhlt die Sicherheit eher aus. Weiterhin muss man sich klarmachen, dass mit jeder weiteren Linux-Distribution, die man einsetzt, weiteres Wissen über Wartung, Sicherheit, Eigenheiten nötig ist.
Bei LINET und bei unseren Kunden stelle ich UCS-Systeme generell nicht direkt ins Internet und verwende für das allermeiste in der Tat Proxyserver, aus Gewohnheit sind das alles Ubuntu-Maschinen. Alle Webdienste hängen entweder hinter Apache oder nginx. Diese Proxysysteme habe ich deutlich stärker abgeschottet und halte sie deutlich aktueller, als unsere internen UCS-Systeme. Zugriff auf gewisse Anwendungen lasse ich von beliebigen IP-Adressen aus zu, auf andere, rein interne Systeme entweder über VPN oder über 2FA mit TOTP (hier greift zuerst ein Check auf Quell-IP-Adressen; wenn LINET intern oder VPN-Adressen, dann wird keine 2FA benutzt; andernfalls greift 2FA mit PrivacyIdea). Daher verwende ich hier explizit keine Client-Zertifikate. Ich habe nichts gegen Client-Zertifikate, die sind ebenfalls eine gute Form von 2FA.
Da diverse Dienste direkt im Internet erreichbar sind, habe ich zusätzlich die allermeisten Dienste so eingeschränkt, dass sie nur von gewissen Benutzern genutzt werden können (sprich über LDAP-Filter, teilweise über Gruppenmitgliedschaften, teilweise über eigene Attribute). Das z.B. schützt davor, dass der nur für kurzes Testen angelegte User test
mit Passwort test
gleich für die nächste Mail-Spam-Kampagne über das authentifizierende Mail-Relay genutzt wird.
SMTP ist insofern bei uns gerpoxiet, als dass unser MX auf eine Mail-Appliance zeigt, die Anti-Spam/Anti-Virus erledigt. Sie liefert erst anschließend an unseren internen Mailserver.
Der eine Dienst, der gar nicht geproxiet ist, ist IMAP — auch wenn wir hierfür nginx nehmen könnten, so sehe ich an dieser Stelle keinen deutlichen Gewinn an Sicherheit und erspare mir lieber die Komplexität.
Es gibt beim Thema Sicherheit kein absolutes »genau so musst du es machen«. Du als Admin musst allem voran verstehen, was du da machst; wie du deine Systeme absicherst; wie du sie aktuell hälst. Mit wachsendem Wissen solltest du dann regelmäßig überprüfen, ob die vorhandenen Sicherheitsmaßnahmen noch zeitgemäß sind und sie ggf. erweitern.
Gruß
mosu