APT28


APT28 - Russisches Hackerkollektiv schlägt in Deutschland zu


Eine unbekannte Gruppe von Hackern aus Russland hat in Deutschland offenbar erfolgreich einen Angriff auf die Server der CDU und der Linksfraktion verübt.

Laut Untersuchungen sind die Angriffe auf erfolgreiche Phishing Attacken der Hacker zurück zu führen. Aber was sind überhaupt sogenannte Phising Angriffe? Im Anhang sind die grundsätzlichen Funktionen und Ziele von Phishing einmal genauer erklärt.

Funktion

Grundsätzlich wird bei Phishing über infizierte oder schadhafte Webseiten ein seriöser Internetauftritt vermittelt, um dem Benutzer Sicherheit zu vermitteln. Natürlich sind diese Seiten alles andere als sicher. Der Hacker will zum Beispiel mit nachgeamten Servern dem Kunden vorgaukeln, er sei auf der Webseite eines Internetshops oder seiner Bank gelandet (sog. Man-In-The-Middle Attacke). Beim bezahlen oder anmelden werden dann Kundeninformationen, Passwörter und Kontodaten abgefangen.

Wie kann ich mich schützen??

Grundsätzlich sind die meisten Phishing Angriffe ziemlich einfach zu entlarfen. Bei E-Mails kann man zum Beispiel auf die Anrede achten. Beginnt eine Mail meiner Hausbank mit den Worten "Sehr geehrter Kunde", deutet das auf einen Betrugsversuch hin. Meine Bank würde mich immer persönlich ansprechen. Eine unpersönliche Anrede deutet auf eine SPAM- oder Kettenmail hin. Ein weiterer Hinweis sind Fragen zu Passwörtern oder Kontodaten in E-Mails. Ein seriöses Online-Portal wird Sie NIE um persönliche Informationen bitten in einer E-Mail.

Auf Internetseiten kann man anhand der Adresse eventuelle Man-In-The-Middle Attacken ausloten. Ist der Anfang der Adresse nicht durch ein https:// gekennzeichnet? Dann ist man auf einer ungesicherten Webseite gelandet und hier darf man sich auf keinen Fall mit persönlichen Informationen anmelden. das S im Prefix steht für secure und heißt, dass die Verbindung sicher und verschlüsselt ist.

Haben Sie weitere Fragen zum Thema Phishing oder allgemeiner Sicherheit im Internet?? Schreiben Sie unter info@braun-bissingen.de und es kann Ihnen bei allen Belangen geholfen werden.

Seafile Client Installation


Seafile Client installation

Nachfolgend wird beschrieben, wie auf einem Windows PC der Client für die Seafile Nutzung installiert werden kann.


Zuerst muss die benötigte Software heruntergeladen werden. Diese finden Sie in der Sektion Download. Hier wählen Sie bitte nur Ihr Betriebssystem aus. Nun poppt im Browser ein Fenster auf, ob die Software installiert werden soll. Hier bitte annehmen. Folgen Sie anschließend dem Installationsmenü linear, ohne Änderungen vorzunehmen.

Nach der Installation geben Sie bitte im Client die benötigten Informationen ein. Der Benutzername ist immer die E-Mail Adresse, mit der Sie sich registriert haben. Das Passwort erhalten Sie nach erfolgreicher Registrierung per E-Mail bzw. Sie können das Passwort im Webinterface unter http://file.linux-24.com/ jederzeit ändern.


    Server: http://linux-24.com:8000
    Benutzer: registrierte E-Mail Adresse
    Passwort: per E-Mail erhalten/persönlich geändert

Jetzt können Sie mit Seafile arbeiten. Erstellen und syncronisieren Sie Bibliotheken oder syncronisieren Sie bestehende Ordner Ihres PCs mit der Cloud.

Bei Fragen oder Sonderwünschen kontaktieren Sie mich gern.

Seafile mit Systemctl


Seafile mit systemctl starten

nachfolgend habe ich beschrieben, wie man mit zwei kleinen Scripten das Starten des Seafile und Seahub Servers vereinfachen kann. Standardmäßig muss man den Server immer im seafile-server-latest Verzeichnis mit ./seafile.sh start und ./seahub.sh start starten. Mit der folgenden Konfiguration lässt sich das umgehen und der Seafile Server wird unter CentOS 7 "standardmäßig" mit systemctl start/stop/restart seafile.service bedient.


/usr/lib/systemd/scripts/seafile-server

    #!/bin/bash
    #
    # description: start seafile-server

    user=seafile
    script_path=/srv/seafile/b9i/seafile-server-latest

    start() {
        sudo -u ${user} ${script_path}/seafile.sh start > /tmp/seafile.init.log 2>&1
sudo -u ${user} ${script_path}/seahub.sh start > /tmp/seahub.init.log 2>&1

return $RETVAL
    }


    stop() {
       sudo -u ${user} ${script_path}/seafile.sh stop
       sudo -u ${user} ${script_path}/seahub.sh stop
    }

    # See how we were called.
    case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart|force-reload)
        stop
        start
        ;;
    *)
        echo $"Usage: $0 {start|stop|restart|force-reload}"
        exit 2
    esac

Zusätlich folgende Datei erstellen mit Inhalt

/usr/lib/systemd/system/seafile.service

    [Unit]
    Description=Seafile Server Startup

    [Service]
    Type=forking
    ExecStart=/usr/lib/systemd/scripts/seafile-server start
    ExecStop=/usr/lib/systemd/scripts/seafile-server stop

    [Install]
    WantedBy=multi-user.target

Mit dieser Konfiguration kann Seafile nun mit systemctl start seafile.service gestartet und mit systemctl stop steafile.service gestoppt werden. Es gilt aber noch zu beachten, dass nun bestimmte Dateien nur noch als user Seafile gesteuert werden können. Das hat den Vorteil, dass bei "feindlicher Übernahme" des Seafile Servers der Eindringling nicht als root agieren kann. Dafür müssen aber die Rechte passen. mit chown -R seafile:seafile * im Ordner /home/seafile kann der Server und seine Konfiguration nur noch auf den User Seafile reagieren. VORSICHT! Leider nicht immer. Wenn der Server anderst konfiguriert ist, kann der Ordner seafile-server-latest auch in einem anderen Verzeichnis liegen.

Getestet wurde diese Einstellung nur unter CentOS 7 bzw. CentOS 7.1 unter Apache mit den Seafile Serverversionen 3, 4 und 5

Seafile mit virtual.conf und Apache


Einstellungen der Virtual Hosts

Mithilfe einer virtual.conf Datei kann man das Problem von mehreren Domains oder Subdomains auf einem Server sehr gut abdecken ohne komplizierte Firewall rules oder das ansprechen unterschiedlicher directories über die Records der Domain. In meinem Beispiel habe ich die HTTP Weiterleitungen meiner Domains nur auf die IP Adresse an sich gelegt und den Rest der Zuweisung übernimmt der Server selbst.

Nachfolgend habe ich beschrieben, wie man mit dieser Datei den Seafile Server einrichtet, um nur noch über den Standardport 80 zu surfen und nicht mehr wie normalerweise über Port 8000. Bei den Standardeinstellungen muss man in der Firewall nämlich immer Port 8000, 8080, 8082, 10001 und 12001 öffnen. Die Datei mit den Einstellungen zu den Virtual Hosts findet man unter /etc/httpd/conf.d/virtual.conf

die Include Liste im Ordner /etc/httpd/conf.d/sites-enabled/ deckt noch mehr virtuelle Hosts ab.


Seafile

Seafile wird durch die Eintragung des ProxyPass nur noch über Port 80 angesteuert. In der Firewall muss auch nicht mehr geöffnet werden. Folgende Eintragungen sind dafür nötig:

<VirtualHost _default_:80>
DocumentRoot /var/www/html
    </VirtualHost>

    include /etc/httpd/conf.d/sites-enabled

<VirtualHost *:80>
ServerName file.linux-24.com
DocumentRoot /var/web
Alias /media /home/seafile/seafile-server-latest/seahub/media
RewriteEngine On

#
# seafile httpserver
#
  ProxyPass /seafhttp http://127.0.0.1:8082 retry=0
  ProxyPassReverse /seafhttp http://127.0.0.1:8082
  RewriteRule ^/seafhttp - [QSA,L]


#
# seafile webdav
#
  ProxyPassReverse /seafdav http://127.0.0.1:8080

#
# seahub
#
  ProxyPass / http://127.0.0.1:8000/
  ProxyPassReverse / http://127.0.0.1:8000
  RewriteRule ^/(media.*)$ /$1 [QSA,L,PT]

</VirtualHost>

install SOGo with LDAP on Dovecot+Postfix


Auf Centos 7.1 folgendes repo hinterlegen:

[SOGo]
name=Inverse SOGo Repository
baseurl=http://inverse.ca/downloads/SOGo/RHEL7/$basearch
gpgcheck=0

dazu beachten, dass das EPEL repo vorhanden ist.

SOGo installieren mit Abängigkeiten:

yum install sogo sope49-gdl1-mysql sope49-ldap sogo-activesync libwbxml sogo-ealarms-notify sogo-tool

in /etc/postfix/aliases folgendes eingeben, damit Benachrichtigungen für cron Jobs an den Administrator geschickt werden.

sogo: root

dazu noch folgendes ausführen, um die "alias Datenbank" zu aktualisieren.

postalias /etc/postfix/aliases

SOGo Datenbank erstellen und Rechte vergeben

mysql -u root -p
mysql* CREATE DATABASE sogo CHARSET='UTF8';
mysql* GRANT ALL ON sogo.* TO sogo@localhost IDENTIFIED BY 'password';

SOGo erstellt alle Tabellen und Infos automatisch, wenn die Rechte passen.

SOGo konfigurieren

config file in /etc/sogo/sogo.conf ändern wie folgt:

{
// Official SOGo documents:
//  - http://www.sogo.nu/english/support/documentation.html
//  - http://wiki.sogo.nu
//
// Mailing list:
//  - http://www.sogo.nu/english/support/community.html

// Enable verbose logging. Reference:
// http://www.sogo.nu/nc/support/faq/article/how-to-enable-more-verbose-logging-in-sogo.html
//ImapDebugEnabled = YES;
//LDAPDebugEnabled = YES;
//MySQL4DebugEnabled = YES;
//PGDebugEnabled = YES;

// Daemon address and port
WOPort = 127.0.0.1:20000;

// PID file
//WOPidFile = /var/run/sogo/sogo.log;

// Log file
//WOLogFile = /var/log/sogo/sogo.log;

// IMAP connection pool.
// Your performance will slightly increase, as you won't open a new
// connection for every access to your IMAP server.
// But you will get a lot of simultaneous open connections to your IMAP
// server, so make sure he can handle them.
// For debugging it is reasonable to turn pooling off.
//NGImap4DisableIMAP4Pooling = NO;

SOGoProfileURL = "mysql://sogo:password@127.0.0.1:3306/sogo/sogo_user_profile";
OCSFolderInfoURL = "mysql://sogo:password@127.0.0.1:3306/sogo/sogo_folder_info";
OCSSessionsFolderURL = "mysql://sogo:password@127.0.0.1:3306/sogo/sogo_sessions_folder";

// Default language in the web interface
SOGoLanguage = English;

// Specify which module to show after login: Calendar, Mail, Contacts.
SOGoLoginModule = Mail;

// Must login with full email address
SOGoForceExternalLoginWithEmail = YES;

// Allow user to change full name and email address.
SOGoMailCustomFromEnabled = YES;

// Enable email-based alarms on events and tasks.
SOGoEnableEMailAlarms = YES;
OCSEMailAlarmsFolderURL = "mysql://sogo:password@127.0.0.1:3306/sogo/sogo_alarms_folder";

// IMAP server
//SOGoIMAPServer = "imaps://127.0.0.1:143/?tls=YES";
// Local connection is considered as secure by Dovecot.
SOGoIMAPServer = "imap://127.0.0.1:143/";

// SMTP server
SOGoMailingMechanism = smtp;
SOGoSMTPServer = 127.0.0.1;
//SOGoSMTPAuthenticationType = PLAIN;

// Enable managesieve service
//
// WARNING: Sieve scripts generated by SOGo is not compatible with Roundcube
//          webmail, don't use sieve service in both webmails, otherwise
//          it will be messy.
//
//SOGoSieveServer = sieve://127.0.0.1:4190;
//SOGoSieveScriptsEnabled = YES;
//SOGoVacationEnabled = YES;
//SOGoForwardEnabled = YES;

// Memcached
SOGoMemcachedHost = 127.0.0.1;
SxVMEMLimit = 4096;
SOGoTimeZone = "Europe/Berlin";

SOGoFirstDayOfWeek = 1;

SOGoRefreshViewCheck = every_5_minutes;
SOGoMailReplyPlacement = below;

SOGoAppointmentSendEMailNotifications = YES;
SOGoFoldersSendEMailNotifications = YES;
SOGoACLsSendEMailNotifications = YES;

// PostgreSQL cannot update view
SOGoPasswordChangeEnabled = YES;

// Authentication using LDAP
SOGoUserSources = (
    {
        type = ldap;
        hostname = "ldap://127.0.0.1:389";
        baseDN = "o=domains,dc=example,dc=com";
        //bindAsCurrentUser = YES;
        bindDN = "cn=vmailadmin,dc=example,dc=com";
        bindPassword = "hashpassword";
        filter = "objectClass=mailUser AND accountStatus=active AND enabledService=mail";
        scope = SUB;

        // The algorithm used for password encryption when changing
        // passwords without Password Policies enabled.
        // Possible values are: plain, crypt, md5-crypt, ssha.
        userPasswordAlgorithm = ssha;

        IDFieldName = mail;
        bindFields = (mail);
        CNFieldName = cn;
        // value of UID field must be unique on whole server.
        UIDFieldName = mail;
        IMAPLoginFieldName = mail;
        SearchFieldNames = (cn, sn, displayName, telephoneNumber, mail, shadowAddress);
        canAuthenticate = YES;
        displayName = "Global Address Book";
        id = ldap_auth;
        isAddressBook = YES;
    }
);
}

Webserver konfigurieren

SOGo hat ein eigenes Apache config file unter /etc/httpd/conf.d/SOGo.conf da müssen wir den Proxy für das Active Sync eintragen

ProxyPass /Microsoft-Server-ActiveSync \
http://127.0.0.1:20000/SOGo/Microsoft-Server-ActiveSync \
 retry=60 connectiontimeout=5 timeout=360

In der selben Datei die Variable yourhostname mit dem eigenen FQDN ersetzen.

SOGo und Abhängigkeiten starten:

service httpd start
service memcached start
service sogod start

Cron jobs hinzufügen:

# iRedMail: SOGo email reminder, should be run every minute.
*   *   *   *   *   /usr/sbin/sogo-ealarms-notify

# iRedMail: SOGo session cleanup, should be run every minute.
# Ajust the [X]Minutes parameter to suit your needs
# Example: Sessions without activity since 30 minutes will be dropped:
*   *   *   *   *   /usr/sbin/sogo-tool expire-sessions 30

# iRedMail: SOGo vacation messages expiration
# The credentials file should contain the sieve admin credentials (username:passwd)
0   0   *   *   *   /usr/sbin/sogo-tool expire-autoreply -p /etc/sogo/sieve.cred

Die Datei /var/www/html wie folgt anpassen, damit die "standard" URL direkt auf SOGo umgeleitet wird:

<html>
 <head>
<meta HTTP-EQUIV="REFRESH" content="0; url=/SOGo/">
</head>
</html>

SOGo über den Webbrowser öffnen:

im Webbrowser die URL: example.com eingeben und öffnen

Falls die direkte Weiterleitung auf die Standard URL nicht gewünscht ist, kann die Eintragung in /var/www/html auch ausgelassen werden. Dann öffnen wir SOGo über die URL example.com/SOGo

ACHTUNG! die URL ist case-sensitive. Dies bedeutet, dass bei SOGo auf Groß- und Kleinschreibung geachtet werden muss.