/dev/blog/ID10T

Advertisement

Debian: Aus der Quelle kompilierte Programme löschen

• Linux • Comments

Wenn man Programme aus der Quelle kompiliert, ist es oft schwierig, diese wieder zu deinstallieren. Wenn der Ersteller der Sources nicht ein make uninstall eingebaut hat, ist ein es mühevolles Durchklauben der einzelnen Verzeichnisse.
Die Lösung für dieses Problems hört auf den Namen checkinstall. Dieses kleine Helferlein erstellt aus den vorher vorbereiteten und kompilierten Dateien ein .deb-Paket (bzw. bei RedHat, Fedora, CentOS ein rpm) und installiert es dann. Dadurch kann man es einfach mit dpkg (bzw. rpm) wieder deinstallieren. Weiterer Vorteil: Man kann das erstellte Paket auch sichern oder mit anderen teilen.
Ein Kompilierungsvorgang mit checkinstall sieht dann so aus:

./configure #hier koennen natuerlich auch Optionen angegeben werden
make
sudo checkinstall --type=debian --install=yes

Nachdem checkinstall fertig ist, könnt ihr die Installation leicht prüfen. Für die Backupsoftware Amanda, über die ihr in Bälde hier vermutlich auch noch etwas lesen werdet, sähe das so aus:

[email protected]:/usr/local/src/amanda-3.3.4# dpkg --get-selections |grep amanda
amanda                                          install
[email protected]:/usr/local/src/amanda-3.3.4# 

Die Deinstallation ginge dann dementsprechend mit dpkg -r oder -P. Checkinstall ist in den Debian Repositories in der neusten Version verfügbar, für CentOS muss es selbst kompiliert werden.

OT: Armutszeugnis für Google Docs

• Rants • Comments

Diese Bild kann man eigentlich unkommentiert stehen lassen.
2013-09-10-gdocs-odt
Für alle, die doch etwas Kontext brauchen: Google Docs kann zwar die proprietären doc,docx,usw. Formate von Microsoft anzeigen, aber das offene Open Document Format ist nicht verfügbar. Das finde ich ziemlich erbärmlich.

 

Update 20150212: Wie in den Kommentaren richtig erwähnt, unterstützt Google Docs inzwischen ODF (seit Dezember 2014). Auch Gmail kann solche Dokumente nun direkt öffnen.

Linux: Kurztipps für Rsyslog

• Linux • Comments

Hier zwei kleine Konfigurationseinstellungen für Rsyslog, die ich immer wieder vergesse und dann zeitaufwändig im Netz oder auf Referenzmaschinen suchen muss.

Um in Debian/Raspbian sämtliche cron-Einträge aus dem syslog zu tilgen, folgendes in eine Datei eurer Wahl (beispielsweise 00-cron) unter /etc/rsyslog.d/ schreiben:

cron.none -/var/log/syslog
:msg, contains, "/var/www/cron.php" ~

Um in CentOS sämtliche Einträge des sshd bzw. spezifischer der Log Facility AUTH in die /var/log/auth.log umzuleiten, brauchen wir wieder eine Datei unter /etc/rsyslog.d/. Meine 00-sshd.conf enthält dann folgendes:

auth.none       -/var/log/messages
auth.* /var/log/auth.log

Nach solchen Änderungen muss Rsyslog nochmals neu gestartet werden.

service rsyslog restart

Ich hoffe, dass ich das nächste Mal, wenn ich diese Tweaks brauche, mich auch an diesen Eintrag erinnere. :-D

Linux: SSH-Server sichern

• Linux • Comments

Da ich meinen vServer ja komplett neu aufsetzen muss, nutze ich die Gelegenheit, um hier meine Konfiguration der /etc/ssh/sshd_config zur Sicherung des SSH-Servers aufzuführen. Dazu poste ich hier einfach eine beispielhafte sshd_config mit (englischen) Kommentaren.

# sshd_config by m3adow, created 2013-09-06
# Tested for:
# OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010

# Restrict to IPv4. Change to inet6 for IPv6 only. Comment it out or use "any" for no restriction.
AddressFamily inet

# Set AuthorizedKeysFile to standard for visibility.
#AuthorizedKeysFile .ssh/authorized_keys

# Disable ALL authentication methods
# We'll enable those for our loginuser.
ChallengeResponseAuthentication no
GSSAPIAuthentication no
HostbasedAuthentication no
KerberosAuthentication no
PasswordAuthentication no
PubKeyAuthentication no
RSAAuthentication no
UsePAM no

# Reduce LoginGraceTime to 60 seconds
LoginGraceTime 60

# Reduce MaxAuthTries to make manual bruteforcing more difficult
MaxSessions 4
# Enable random early drops for unauthenticated connections
MaxStartups 4:60:8

# Configure Logging
LogLevel INFO
SyslogFacility AUTH

# Empty Passwords are bad, mkay? Use Pubkeys for this.
PermitEmptyPasswords no

# Root Login via SSH is bad too.
# If you really want this, use "without-password" to enable root Login with Pubkey only.
PermitRootLogin no

# Change the SSH-Port to prevent a lot of automated Login Tries which clutter up your logfiles.
Port 4711

# Print the last Login.
PrintLastLog yes

# Only use the secure SSH-Protocol 2
Protocol 2

# Enable StrictMode
StrictModes yes

# Since I don't think X11 belongs to a server, there's no use for Forwarding.
X11Forwarding no

# Only use Ciphers and MACs which are declared safe by the German BSI
Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256
MACs hmac-sha1,[email protected],hmac-ripemd160

# No we set up our loginuser "foo" which is the only user allowed to access the server.
Match User foo
        # We only want Public Key Authentication since it's the most secure way.
        PubKeyAuthentication yes

Die Datei kann natürlich gerne auf anderen Servern genutzt werden. :-)
Ich denke, dass diese config-Datei selbst erklärend ist. Falls ihr aber trotzdem noch Fragen habt, nur zu.

CentOS 6.4: tmux installieren

• Linux • Comments

Wie schon in meinem letzten Post angekündigt, kommen jetzt tröpfchenweise neue Anleitungen für CentOS, die neue Distribution auf meinem (leider) frisch installiertem Server. Heute eine kurze Anleitung, wie man unter CentOS den Terminal Multiplexer tmux kompiliert.

Als erstes installieren wir die von tmux benötigten Libraries. Das wäre zum einen ncurses und die ncurses Developement files (ncurses-devel), die wir einfach mit yum installieren.

yum install ncurses ncurses-devel

Außerdem benötigen wir noch die libevent-library, deren Version im Repository allerdings zu alt ist. Also kompilieren wir aus der Quelle. Ich persönlich präferiere für solche Tarballs das Verzeichnis /usr/local/src, aber das bleibt euch überlassen.

wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
tar xzvf libevent-2.0.21-stable.tar.gz && cd libevent-2.0.21-stable
./configure && make
make install

Nun schnappen wir uns tmux aus den Quellen und installieren auch dieses.

wget -O tmux-1.8.tar.gz http://sourceforge.net/projects/tmux/files/tmux/tmux-1.8/tmux-1.8.tar.gz/download
tar xzvf tmux-1.8.tar.gz && cd tmux-1.8
./configure && make
make install

Anschließend solltet ihr tmux bereits nutzen können.

Solltet ihr die Fehlermeldung

tmux: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory

bekommen, liegt das vermutlich daran, dass ihr entweder vergessen habt ldconfig auszuführen oder dass eure Environment Variable LD_LIBRARY_PATH für ldconfig nicht den Ordner für lokal kompilierte libraries enthält. Dann empfehle ich folgendes:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"/usr/local/lib"
echo export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:\"/usr/local/lib\" >> /etc/bashrc

Viel Spaß mit tmux.

Advertisement