Zuerst wissen Sie das wahrscheinlich, aber wenn Sie über eine dynamische IP verfügen, benötigen Sie ein dynamisches DNS wie DynDNS oder DNSexit .
Ich denke, das Sichern von Port 80 für eingehende Verbindungen iptables
(oder eine Firewall-GUI wie Firestarter, wenn Sie es vorziehen) ist für einen Home-Server ausreichend, wenn Sie nicht den SSH-Port (Port 22) oder FTP (21) öffnen müssen ) und Sie installieren keinen Mailserver.
Wenn Ihre Site über eine Anmeldeseite verfügt oder wenn Sie ssh, ftp oder smtp öffnen müssen, würde ich empfehlen, zumindest etwas wie fail2ban zu installieren, um IP zu verbieten, die Verbindungen ohne Erfolg versuchen, damit sie nicht ewig versuchen.
Eine wichtige Sache, die Sie beachten sollten, ist, dass Sie sich Ihre Protokolle ansehen müssen, um sie leicht im Auge zu behalten logwatch
(sollte sich in Ihren Standard-Repositorys unter Debian und Ubuntu befinden), um Sie täglich oder wöchentlich per E-Mail zu benachrichtigen. Sie werden schnell herausfinden, was falsch ist, indem Sie sie häufig lesen.
Wenn Sie von außen eine Verbindung herstellen müssen, um den Server zu verwalten, verwenden Sie ein VPN, und halten Sie das Betriebssystem stets auf dem neuesten Stand!
Update: Für SSH und SFTP denke ich, dass fail2ban + nur ssh-Schlüssel (oder Schlüssel + Kennwort, aber nicht nur Kennwort) das Minimum ist, das Sie benötigen (und keinen Root-Zugriff zulassen).
Wenn die Maschinen, die Sie zum Verbinden verwenden, feste IP-Adressen haben, öffnen Sie die Firewall nur für diese eingehenden IP-Adressen.
Ein verschlüsseltes VPN (ich verwende openvpn ) hilft auch sehr, Ihren Zugang zu sichern.
Schauen Sie sich hier das 'schnelle' offizielle Tutorial an . In 15 bis 30 Minuten haben Sie einen funktionierenden VPN-Server für einen Client - einen Server. Für ein besseres Setup mit der Client-Zertifikatsauthentifizierung und einer Zertifizierungsstelle (Ihrer kostenlosen eigenen Zertifizierungsstelle ) müssen Sie einige Minuten warten: D
Wenn Ihre Sites MySQL benötigen oder aus anderen Gründen Sie MySQL (oder eine andere Datenbank) über das Internet verwalten müssen, wenn Sie kein VPN verwenden, verwenden Sie einen SSH-Tunnel, um eine Verbindung zu einem lokalen Port auf Ihrem Computer herzustellen und den Tunnel zu verschlüsseln die Verbindung zum Server, damit Sie den Datenbankport nicht öffnen müssen, schauen Sie sich die Argumente -L
und -D
an man ssh
.
Ich würde phpmyadmin nicht installieren, um auf eine öffentliche IP-Adresse zu hören, da dadurch Ihre Datenbank für die Welt geöffnet wird. Wenn Sie möchten, kann ich hier ein Beispielskript für einen Tunnel einfügen.