Quantcast
Channel: ProNAS - forum serwerów plików NAS i dysków sieciowych
Viewing all articles
Browse latest Browse all 817

TrueCrypt - instalacja na Synology DS212j

$
0
0
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.

Viewing all articles
Browse latest Browse all 817