Zabezpieczamy transmisję plików, czyli sFTP oraz QNAP

Zabezpieczamy transmisję plików, czyli sFTP oraz QNAP

Domyślnie z SSH/sFTP na serwerach QNAP mogą korzystać konta z uprawnieniami administracyjnymi.

Oczywiście chcemy dać możliwość sFTP dla innych kont oraz nie podnosić uprawnienia do poziomu administratora. Tutaj z pomocą przychodzą nam kontenery. W tym przypadku musimy posiada oczywiście model zgodny z aplikacją Container Station oraz mieć zainstalowaną samą aplikację CS.

Całą operację najprościej wykonać z poziomu SSH. Uprzednio zrobimy sobie nowego usera, u mnie to będzie LAB

Teraz logujemy się do konsoli via SSH, i sprawdzamy UID naszego użytkownika, nie jest to wymagane ale dzięki temu gdy taki sam UID podamy jako parametr qw kontenerze to będzie zgodność uprawnień. Niestety kontener ten nie używa haseł z QNAP, tutaj będzie odseparowane środowisko

[admin@qnap bin]: cat /etc/passwd
admin:x:0:0:administrator,g@8px.pl,,:/share/homes/admin:/bin/bash
guest:x:65534:65534:guest:/tmp:/bin/sh
httpdusr:x:99:0:Apache httpd user:/tmp:/bin/sh
TimeMachine:x:100:65534:TM Backup User:/share/homes/TimeMachine:/bin/sh
[appuser]:x:97:0:App user:/tmp:/bin/sh
zabbix:x:1001:1001::/share/homes/zabbix:
qnap:x:1003:100:Linux User,,,:/share/homes/qnap:/bin/sh
[sshd]:x:110:65534:SSHD Privilege Separation:/var/empty:/bin/sh
postgres:x:1004:1004:Linux User,,,:/home/postgres:/bin/sh
nginx:x:1005:1005:Linux User,,,:/home/nginx:/bin/sh
lab:x:1006:100:Linux User,,,:/share/homes/lab:/bin/sh

User LAB ma UID 1006, teraz przechodzimy do katalogu gdzie mamy dockera i wykonujemy polecenie:

[admin@qnap bin]: cd /share/CACHEDEV1_DATA/.qpkg/container-station/bin
[admin@qnap bin]: ./docker run -v /share/Public:/home/lab/public -p9022:22 --name lab_sftp -d atmoz/sftp lab:pass:1006

To nam utworzy dockera na porcie 9022, user to lab i hasło to pass, użytkownik będzie widział katalog Public z QNAP w kontenerze w katalogu domowym, name podajemy nazwę przyjazną dla nas, aby nie była losowa

Po wgraniu pliku będzie widać poprawnego właściciela z poziomu QNAP

[admin@qnap bin]: ll /share/Public/plik.tar.gz
-rw-r--r-- 1 lab everyone 2.5M 2018-03-18 12:28 /share/Public/plik.tar.gz

Można też tworzyć jeden kontener dla wielu użytkowników, dokładny opis dostępny jest na git autora: https://github.com/atmoz/sftp