1. Cześć Gość. Przeglądasz forum dzięki firmie QNAP oraz zespołowi QNAP Club Polska.

How-To TrueCrypt - instalacja na Synology DS212j

Dyskusja w 'Cichociemni' rozpoczęta przez użytkownika lisek84, 20 Styczeń 2016.

Ładowanie...
?
  1. Tak (załeżało by mi na nim)

    6 głos(ów)
    75,0%
  2. Nie - (wystarcza mi wbudowane szyfrowanie katalogów luksem/nie potrzebuję z innego powodu)

    2 głos(ów)
    25,0%
  1. lisek84
    Offline

    lisek84 Passing Basics Beginner

    Dołączył:
    22 Październik 2012
    Wiadomości:
    25
    Miejscowość:
    Warszawa
    Best Answers:
    0
    Local Time:
    23:17
    Oceny:
    +2 / 0 / -0
    Followers:
    0
    QNAP:
    null
    Synology:
    DS212j
    Ethernet:
    1 GbE
    null 1 GbE
    Jako, że nigdzie u nas nie znalazłem sensownego opisu jak uruchomić TrueCrypta na Synology postanowiłem opisać to zadanie.
    Niestety, sam napotkałem na problem z którym sobie jeszcze nie poradziłem - i liczę na pomoc bardziej doświadczonych kolegów z urządzeniami Synology i ich systemem.

    Oczywiscie kompiluję tutaj wersję z samym CLI bez interfejsu graficznego, bo ten raczej na niewiele się zda.

    Dzięki Truecryptowi na Synology możemy tworzyć i ubsługiwać kontenery TC.

    Prosze nie zadawać pytań po co to komu - nie interesuje Cie - nie czytaj dalej. Jeśli z jakiegoś powodu potrzebujesz obsługiwać kontenery TC na Synology
    to ten opis jest dla Ciebie.

    Jako,że oficjalnie projekt TC został zamknięty, a oficjalna wersja 7.2 Nie pozwala tworzyć kontenerów, zainstalujemy tutaj wersję 7.1a.
    Oczywiście wiem - że istnieje VeraCrypt - czyli nowy fork TrueCrypta dalej rozwijany którego sam używam. Opis robiłem jednak jeszcze zanim ten się pojawił, a dopiero go publikuję. - Obiecuję, że kiedyś i VeraCrypta ugryzę, jak uda się w pełni uruchomić to co mamy tutaj.

    Uruchamiam TC na DS212j, ale można go przygotować dla innych systemów. W Większości opisów które linkuje poniżej jest kompilowana wesja dla procesorów intela - jeśli więc potrzebujesz zainstalować go właśnie na takim synku - zachęcam do przejrzenia artykułów podlinkowanych poniżej.



    Proces ten jest podzielony na dwie części. Jedna to kompilacja samego TrueCrypta. Druga część to kompilacja modułu kernela, umożliwiającego montowanie szyfrowanych kontenerów.

    Opis jest bazowany na tych materiałach:

    Informany Blackhole: Truecrypt 7 on Synology
    Informany Blackhole: DM-Crypt on Synology with Truecrypt 7
    Informany Blackhole: Macintosh filesystem support on Synology
    How to compile Truecrypt from source
    Upgrade Synology, install TrueCrypt - Borlet - Confluence
    http://hallard.me/how-to-install-kernel-modules-on-synology-ds1010-dsm-4-1/
    Synology Forum • View topic - [pre-HOWTO] Getting dmcrypt work on CS-406
    Service et support - Serveur de stockage sur réseau (NAS) Synology

    Do zainstalowania TC potrzebujemy:


    Musimy mieć zainstalowany bootstrap i mieć możliwość instalacji narzędzi przez ipkg

    Jeśli nie masz: http://pronas.pl/post547.html#p547

    Wszystko robię jako użytkownik root. Można ew robić na innym koncie, ale chociażby podczas make install będą potrzebne Ci prawa do zapisu w różnych miejscach.
    Jak chcesz - możesz używać sudo przed poleceniami jeśli nie chcesz pracowac jako root.


    Musimy pobrać wymagane elementy:

    Najpierw łatwizna
    Kod (Text):
    1.  
    2. ipkg update
    3. ipkg install gcc
    4. ipkg install optware-devel
    5. ipkg install make
    6.  

    Kompiluje tutaj wszystko dla DS212j. Jeśli masz innego synka - musisz pobierać odpowiednie źródła, i modyfikować niektóre rzeczy samemu

    Wszystko instaluje do /opt/local/
    Bacznie zwracajcie uwagę na katalogi do których kopiuję pliki - mogłem coś popsuć, mogłem zjeść jednego cd w którym gdzieś wchodzę, - wszelkie błędy jakie wyłapię ja lub wy poprawię, ale odpowiednie myślenie powinno zaowocować dobrym wynikiem :)


    Teraz jedziemy po kolei:

    TrueCrypt:

    Kod (Text):
    1.  
    2. wget https://www.grc.com/misc/truecrypt/TrueCrypt%207.1a%20Source.tar.gz --no-check-certificate
    3. tar xzvf TrueCrypt\ 7.1a\ Source.tar.gz
    4.  
    I na razie tyle. Jeszcze tu wrócimy.


    NASM:

    Pobieramy plik ze źródłami (tar.gz) z The Netwide Assembler - Browse /nasm sources/2.07 at SourceForge.net
    lub nowszy z The Netwide Assembler - Browse /nasm sources at SourceForge.net

    Kod (Text):
    1.  
    2. wget http://downloads.sourceforge.net/project/nasm/nasm%20sources/2.07/nasm-2.07.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fnasm%2Ffiles%2Fnasm%2520sources%2F2.07%2F&ts=1422449029&use_mirror=kent
    3. tar xzvf nasm-2.07.tar.gz
    4. cd nasm-2.07
    5. ./configure --prefix=/opt/local CC=gcc
    6. make
    7. make install
    8.  
    FUSE:

    Zapomnij o najnowszym fuse. Nie ruszy. Pobierz wersję 2.8.5

    Kod (Text):
    1.  
    2. wget http://downloads.sourceforge.net/project/fuse/fuse-2.X/2.8.5/fuse-2.8.5.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Ffuse%2Ffiles%2Ffuse-2.X%2F2.8.5%2F&ts=1422449411&use_mirror=kent
    3. tar xzvf fuse-2.8.5.tar.gz
    4. cd fuse-2.8.5
    5. ./configure --prefix=/opt/local
    6. make
    7. make install
    8.  
    9.  
    10. cd include
    11.  
    12.  cp *.h ../../truecrypt-7.1a-source/
    13.  
    (Z katalogu include, pliki *.h do głównego katalogu z wypakowanymi na początku źródłami TC - jesli gdzies indziej wypakowałeś TC - pewnie musisz skopiować dane gdzie indziej.
    Kod (Text):
    1.  
    2. cd ..
    3. make install-pkgconfigDATA
    4. export PKG_CONFIG_PATH=/opt/local/lib/pkgconfig
    5. cd ..
    6.  

    wxWidgets

    Pobieramy wxWidgets w wersji 2.8.12 - nie nowszą!
    Kod (Text):
    1.  
    2. wget http://downloads.sourceforge.net/project/wxwindows/2.8.12/wxWidgets-2.8.12.tar.gz?r=http%3A%2F%2Fwww.wxwidgets.org%2Fdownloads%2F&ts=1422350001&use_mirror=heanet
    3. tar xzvf wxWidgets-2.8.12.tar.gz
    4.  


    Teraz nagłówki PKCS
    Kod (Text):
    1.  
    2.     mkdir /tmp/pkcs
    3.     cd /tmp/pkcs
    4.  
    5.     wget ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-20/pkcs11.h
    6.     wget ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-20/pkcs11f.h
    7.     wget ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-20/pkcs11t.h
    8.  
    9.     export PKCS11_INC=/tmp/pkcs
    10.  

    Teraz ruszamy dalej z kopyta.

    wracamy do katalogu z naszymi plikami
    i tam wchodzimy do katalogu ze źródłami TC

    cd truecrypt-7.1a-source/
    i budujemy wxWidgets

    Potrwa to długo! Pamiętaj o zawieszeniu tego na screenie
    Kod (Text):
    1.  
    2. (sudo) make NOGUI=1 WX_ROOT=/sciezka/do/zrodel/wxWidgets-2.8.12 wxbuild CC=gcc
    3.  
    Osoby z innymi prockami muszą dodawać czasem inne parametry do konfiguracji. Przejrzyjcie dokładnie oryginalne tematy które są podpięte na początku tego tematu.
    np. -march=i686

    i na koniec dajemy:

    Kod (Text):
    1.  
    2. export LD_LIBRARY_PATH='/opt/lib:/opt/local/lib'
    3. make NOGUI=1 WXSTATIC=1 PKCS11_INC=/tmp/pkcs PKG_CONFIG_PATH=/opt/local/lib/pkgconfig CC=gcc AS=/opt/local/bin/nasm
    4.  
    Koniec
    Kod (Text):
    1.  
    2. cp Main/truecrypt /opt/local/bin
    3.  
    I tyle z pierwszej czesci.
    Kod (Text):
    1.  
    2. /opt/bin/truecrypt
    3.  
    TADAM


    Teraz jednak potrzebujemy modułu kernela aby mapować kontenery TC

    To robimy na PC

    Ja uruchomiłem ubuntu na Virtualboxie

    Potrzebujemy Do Ubuntu pobrać odpowiedni toolchain dla naszego synology.
    Jak to zrobić jest opisane w wielu miejscach, dlatego chyba nie ma sensu, abym to tutaj powtarzał.
    Generalnie w skrócie - rozpoznajemy jaki mamy procesor w synology, i pobieramy odpowiedni toolchain oraz kody źródłowe dla naszej wersji DSM.
    Tutaj ładny opis, choć może trochę nieaktualny:
    http://hallard.me/how-to-install-kernel-modules-on-synology-ds1010-dsm-4-1/

    Odpalamy
    Kod (Text):
    1.  
    2. sudo apt-get install virtualbox-guest-dkms virtualbox-guest-utils virtualbox-guest-x11 libncurses5-dev
    3.  
    Co zainstaluje nam troche potrzebnych lub przydatnych rzeczy - bo jak widzicie część rzeczy to tylko moduły współpracy z Virtualboxem którego akurat ja użyłem.

    Tutaj bardzo zachęcam do skorzystania z podlinkowanego artykułu.
    Są tam linki do toolchainów, sourceów, informacje jak i gdzie je rozpakować
    oraz jak przygotować plik .config dla naszego modelu.

    po make menuconfig i make modules

    Wybieramy przy użyciu menu:

    Device Drivers
    Multiple Devices drivers support
    Zaznaczamy (spacją)
    Device Mapper support, a pod nim crypt

    Cryptographic API
    Zaznaczamy XTS i LRW

    Wychodzimy do głównego menu i zapisujemy konfigurację

    Gotowe, mamy potrzebne moduły - crypto (dm-crypto), xts i lrw

    Znajdują się w katalogu

    ./crypto/lrw.ko
    ./crypto/xfs.ko
    ./drivers/md/dm-crypt.ko
    ./crypto/gf128mul.ko

    kopiujemy je na synology (scp, rsync czy czym tam wolicie i wam pasuje)

    Teraz na synology:

    Kod (Text):
    1.  
    2. mkdir /opt/modules
    3. mv *.ko /opt/modules/ (będąc w katalogu do którego skopiowaliście pliki z PC)
    4.     insmod /opt/modules/dm-crypt.ko
    5.     insmod /opt/modules/gf128mul.ko
    6.     insmod /opt/modules/lrw.ko
    7.     insmod /opt/modules/xts.ko
    8.  

    Teraz tworzymy mały plik startowy, który będzie startował z synology i wczytywał te moduły przy każdym restarcie. Ale możecie tę część na razie pominąć. Na końcu wyjaśnię dlaczego.

    vi /opt/etc/init.d/S20modules


    Kod (Text):
    1.  
    2. #!/volume1/@optware/bin/bash
    3.  
    4. start_modules(){
    5.         echo "Loading modules"
    6.     insmod /opt/modules/dm-crypt.ko
    7.     insmod /opt/modules/gf128mul.ko
    8.     insmod /opt/modules/lrw.ko
    9.     insmod /opt/modules/xts.ko
    10.         done
    11.  
    12.  }
    13.  
    14. stop_modules(){
    15.         echo "Unloading modules"
    16.     rmmod /opt/modules/dm-crypt.ko
    17.     rmmod /opt/modules/gf128mul.ko
    18.     rmmod /opt/modules/lrw.ko
    19.     rmmod /opt/modules/xts.ko
    20. }
    21.  
    22. case "$1" in
    23. start)
    24.         start_modules
    25.         ;;
    26. stop)
    27.         stop_modules
    28.         ;;
    29. *)
    30.         echo "usage: $0 { start | stop }" >&2
    31.         exit 1
    32.         ;;
    33. esac
    34.  
    Ustawiamy mu prawa do zapisu
    chmod ug+x /opt/etc/init.d/S10modules



    I tutaj można by obwieścić sukces. Ale tak nie jest.

    1. TrueCrypt działa prawidłowo - można stworzyć nim nowy kontener, czy jakoś obsłuzyć inny (zmienić hasło itd)
    2. Mapowanie w DSM nie działa niestety zupełnie -przynajmniej u mnie. Moduły kernela niby są, ale próba podmontowania kontenera TC u mnie kończy się bardzo długą zwiechą i wywaleniem błędu.
    3. Skrypt do wczytywania w obecnych wersja DSM jest troche już nieaktualny, wiec raczej nie ma co liczyć na to, że system go sam wczyta. Teraz jakoś inaczej się to wczytuje - jak rozgryzę gdzie to zmodyfikuję opis.

    I tutaj potrzebuję pomocy bardziej doświadczonych z DSM osób -
    Czy może wiecie gdzie jest jakiś błąd?
    Może jakiegoś modułu zapomniałem dodać? Może jednak coś jeszcze jest potrzebne?
    Może na DSM trzeba cuś przestawić, ustawić jakoś inaczej jakąś zmienną, parametr gdzieś przy boocie, aby dało się montować te kontenery od TC ?
    Gdzie najlepiej było by umieścić skrypt startowy teraz?

    Mam nadzieję, że z waszą pomocą uda się ten temat rozgryźć do końca.
     
    • Lubię to! Lubię to! x 1
    • Wygrany! Wygrany! x 1
  2. Fixer
    Offline

    Fixer Systems Admin... Q's Expert

    Dołączył:
    2 Luty 2013
    Wiadomości:
    287
    Miejscowość:
    TG
    Best Answers:
    0
    Local Time:
    23:17
    Oceny:
    +5 / 0 / -0
    Followers:
    1
    QNAP:
    null
    Synology:
    DS1515+
    Ethernet:
    10 Mbps
    null 10 Mbps
    Bardzo ciekawy wątek... czekam na jego rozwinięcie!