Archiv der Kategorie: linux

ssh Benutzer im Ordner einsperren

Seit der openssh Version 5 ist es möglich einen Benutzer der sich per ssh anmelden in einem Ordner einzusperren.

So bin ich vorgegangen:

Als erstes habe ich eine Gruppe angelegt namens sftponly. Den Benutzer bzw die Benutzerin lieschen habe ich der Gruppe hinzugefügt.

groupadd sftponly
useradd lieschen
usermod -aG sftponly lieschen

Die /etc/ssh/sshd_config habe ich wie folgt angepasst:

Subsystem sftp internal-sftp

Match Group sftponly
ChrootDirectory /srv/transfer
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no

Im Anschluss der Anpassung den sshd Dienst neu starten.

Als letztes müssen noch die Ordner erstellt werden:

mkdir -p /srv/transfer
chown root:sftponly /srv/transfer
chmod 755 /srv/transfer
mkdir -p /srv/transfer/lieschen
chown lieschen:sftponly /srv/transfer/lieschen
chmod 700 /srv/transfer/lieschen

Ein Benutzer der in der Gruppe sftponly ist, darf sich nur per sftp mit dem Server verbinden. Bei der Anmeldung landet er im Ordner /srv/transfer. Dort sieht er zwar alle Ordner, kann jedoch nur auf seinen zugreifen.

Ich bin nach dieser Anleitung vorgegangen: http://meshfields.de/sftp-chroot-centos/

[gerrit] kein push/pull möglich

In der Gerrit Version 2.3.1 kann es vorkommen das sich der interne sshd Dienst aufhängt, dann kann nicht mehr auf die Repositorys zugegriffen werden. Das Problem scheint aufzutreten, wenn ein oder mehrere Jenkins Server auf das gerrit zugreifen.
Greift ein Benutzer auf das gerrit zu, kommen in den sshd logs die login, aktion und logout Meldungen. Meldet sich jedoch der im jenkins hinterlegte Benutzer an, gibt es hauptsächlich nur login Meldungen. Irgendwann folgt dann die Meldung das die Verbindung gekilled wurde.
Über netstat -an | grep 29418 sieht man auch, das die Jenkins Server viele Verbindungen öffnen und nicht wieder schließen.

In der error Log Datei kommt dann folgende Meldung:

[2012-09-25 01:11:01,557] WARN org.apache.sshd.server.session.ServerSession : Exception caught
java.io.IOException: Connection reset by peer
at sun.nio.ch.FileDispatcherImpl.read0(Native Method)
at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)
at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:218)
at sun.nio.ch.IOUtil.read(IOUtil.java:191)
at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:359)
at org.apache.mina.transport.socket.nio.NioProcessor.read(NioProcessor.java:214)
at org.apache.mina.transport.socket.nio.NioProcessor.read(NioProcessor.java:42)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:673)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:646)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:635)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$400(AbstractPollingIoProcessor.java:67)
at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:1079)
at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
[2012-09-25 01:16:01,279] WARN org.apache.sshd.server.session.ServerSession : Exception caught
java.io.IOException: Connection reset by peer
at sun.nio.ch.FileDispatcherImpl.read0(Native Method)
at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)
at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:218)
at sun.nio.ch.IOUtil.read(IOUtil.java:191)
at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:359)
at org.apache.mina.transport.socket.nio.NioProcessor.read(NioProcessor.java:214)
at org.apache.mina.transport.socket.nio.NioProcessor.read(NioProcessor.java:42)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:673)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:646)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:635)
at org.apache.mina.core.polling.AbstractPollingIoProcessor.access$400(AbstractPollingIoProcessor.java:67)
at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:1079)
at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)

Ein Update auf 2.4.1 behebt das Problem.

Kleine Howto für ein gerrit update:https://www.itbasic.de/gerrit-update/

Centos Version ermitteln

Dieser Artikel ist im Endeffekt eine kleine Notiz für mich. Aus irgendeinem Grund kann ich mir nicht merken wie ich die Version von centos ermittle, die gerade installiert ist.
Dabei reicht ein einfaches

cat /etc/redhat-release

[typo3] Lock file could not be created

Neulich musste ich ein Typo3 von einem Webhoster zum anderen umziehen. Der Umzug war relativ simple Dateien kopieren, mysql Daten exportieren und in die neue mysql Datenbank importieren. In der Datei typo3conf/localconf.php die neuen Zugangsdaten für dei mysql Datenbank hinterlegen und fertig.

Der erste Aufruf der Seite dauerte sehr lange, nach einiger Zeit kam dann die Fehlermeldung

Lock file could not be created

In den Log Dateien fand ich leider nichts woran ich festmachen konnte was das Problem ist. Nach einer kurzen Suche im Internet fand ich heraus, das die Rechte auf den Ordner typo3temp falsch gesetzt waren. Nachdem ich die Rechte neu gesetzt hatte, konnte die Seite aufgerufen werden.