Taggat med: FreeBSD

Tarsnap – Backup i molnet för den som är paranoid

Tarsnap är en backuptjänst i molnet för den som är paranoid. Kryptering genomförs på klientsidan innan datan skickas upp till Amazon S3-tjänst. Tarsnap är utvecklat av Colin Percival som är övermänsklig, han har bl.a. utvecklat scrypt och är har varit säkerhetschef för FreeBSD. Givetvis är även tarsnap öppen källkod tillgänglig källkod och mer tekniska detaljer finnes här.

Tarsnap har inget inbyggt grafiskt gränssnitt och stödjer operativsystem såsom Mac OS X, Ubuntu, FreeBSD osv. Stöd till Windows finnes via Cygwin, även så finns det tredjepartskod med GUI.

Så kommer du igång med Tarsnap

Först och främst laddar du hem tarsnap till din server eller klient:

$ wget https://www.tarsnap.com/download/tarsnap-autoconf-1.0.37.tgz

Och verifierar sedan nedladdningen:

$ sha256sum tarsnap-autoconf-1.0.37.tgz
SHA256 (tarsnap-autoconf-1.0.35.tgz) = fa999413651b3bd994547a10ffe3127b4a85a88b1b9a253f2de798888718dbfa

Sedan installerar du eventuella beroenden som kan behövas.

Detta är för Ubuntu:

$ sudo apt-get install libssl-dev zlib1g-dev e2fslibs-dev make

Vi extraherar tarsnap och bygger koden:

$ tar xvfz tarsnap-autoconf-1.0.37.tgz
$ cd tarsnap-autoconf-1.0.37/
$ ./configure && make
$ sudo make install

Och förhoppningsvis gick allt bra och tarsnap är installerat. Om du inte har något konto på tarsnap.com så är det läge att skapa det nu. Det är gratis att skapa ett konto, men du måste sätta in pengar för att betala för lagring och överföring. Du kan betala med Bitcoin, kort eller Paypal.

Nu skapar vi en nyckel för denna server och anger våra login-uppgifter som vi använde när vi skapade kontot på tarsnap.com:

$ tarsnap-keygen --keyfile /root/domän-tarsnap.key --machine domän.se --user [email protected]
$ chmod 600 /root/domän-tarsnap.key

Viktigt här är att du sparar undan nyckelfilen domän-tarsnap.key på ett annat system än det du gör backup på. För förlorar du denna fil så kan du ej återskapa data från servern samt ser till att enbart användaren som gör backup får läsa denna nyckelfil.

Så gör du backup med Tarsnap

Även så fungerar tarsnap precis som tar men med lite extra argument. Jag brukar skapa en fil vid namn backup.sh som även dumpar ut MySQL-databas så den följer med i backupen.

Så här ser min backup.sh ut som körs via cronjobb varje natt av root. Se även till att obehöriga inte kan läsa filen backup.sh då den innehåller lösenord.

mysqldump -u root -plösenord https > /var/www/domän.se/backup/`date +"%Y%m%d"`.sql
tarsnap --keyfile /root/domän-tarsnap.key --cachedir /usr/local/tarsnap-cache -c -f domän.se-`date +%F` /var/www/domän.se/docs/ /var/www/domän.se/backup/ /etc/nginx/sites-enabled/default-ssl /etc/nginx/sites-enabled/default

Du kan även behöva skapa katalogen /usr/local/tarsnap-cache/. Vill du även ta bort äldre backup-filer så kan du göra det med följande rad. Observera att det kan även vara bra med en kontroll att backupen lyckas innan du tar bort äldre backup-filer:

tarsnap --cachedir /usr/local/tarsnap-cache --keyfile /root/domän-tarsnap.key -d -f domän.se-`date -d "2 days ago" +%F`

Glöm inte att testa återställning också vid regelbundna intervaller, det är viktigt.

Kolla även in denna gist som underlättar installationen.

Kryptobugg i FreeBSD

freebsdDet har uppmärksammats av slumptalsgeneratorn i FreeBSD-CURRENT varit trasig under flertalet månader. Felet som introducerades var att den vitala funktionen randomdev_init_reader togs bort. Eftersom det bara är CURRENT-versionen så är omfattningen tämligen begränsad men samtliga nycklar som skapats på dessa system bör bytas (ssl-certifikat, ssh osv).

Denna bugg går under smeknamnet YARNBUG som står för ”Yet Another Random Number Bug”, för det är ju viktigt att alla sårbarheter nuförtiden har fräsiga namn (och logotyper).

Så här skriver FreeBSD själva:

If you are running a current kernel r273872 or later, please upgrade your kernel to r278907 or later immediately and regenerate keys.

I discovered an issue where the new framework code was not calling randomdev_init_reader, which means that read_random(9) was not returning good random data. read_random(9) is used by arc4random(9) which is the primary method that arc4random(3) is seeded from.

Man kan tycka att det är anmärkningsvärt att denna typ av buggar uppkommer år 2015. Dock så bör inte CURRENT-versioner användas i produktion. Dock så använder FreeBSD /dev/u?random Yarrow som slumptalsalgoritm och bör således ej vara drabbad av denna bugg.

John the Ripper 1.7.7

Nu har den populära knäckningsprogrammvaran John the Ripper släppts i en ny version, nämligen 1.7.7.

Ändringar är enligt följande (på engelska):

* Added Intel AVX and AMD XOP instruction sets support for bitslice DES (with C compiler intrinsics). New make targets: linux-x86-64-avx, linux-x86-64-xop, linux-x86-avx, and linux-x86-xop (these require recent versions of GCC and GNU binutils).
* A ”dummy” ”format” is now supported (plaintext passwords encoded in hexadecimal and prefixed with ”$dummy$”) – for faster testing and tuning of custom wordlists, rule sets, .chr files, and external modes on already known or artificial passwords, as well as for testing of future and modified versions of John itself.
* Apache ”$apr1$” MD5-based password hashes are now supported along with the FreeBSD-style MD5-based crypt(3) hashes that were supported previously. Hashes of both of these types may be loaded for cracking simultaneously.
* The ”–salts” option threshold is now applied before removal of previously cracked hashes for consistent behavior with interrupted and continued sessions.
* The ”Idle = Y” setting (which is the default) is now ignored for OpenMP-enabled hash types when the actual number of threads is greater than 1. (Unfortunately, it did not work right at least with GNU libgomp on Linux.)
* When a cracking session terminates or is interrupted, John will now warn the user if the cracked passwords printed to the terminal while cracking are potentially incomplete. It will advise the user to use the ”–show” option to see the complete set of cracked passwords with proper post-processing.
* When loading hashes specified on a line on their own (feature introduced in 1.7.6), the loader will now ignore leading and trailing whitespace.
* Unless a hash type is forced from the command line, the loader will now print warnings about additional hash types seen in the input files (beyond the hash type autodetected initially).
* For use primarily by the jumbo patch (and later by future enhancements to the official versions as well), the loader now includes logic to warn the user of ambiguous hash encodings (e.g. LM vs. NTLM vs. raw-MD5, all of which may be represented as 32 hexadecimal characters) and of excessive partial hash collisions, which it works around (these are typically caused by an incomplete implementation of a new hash type).
* The ”unique” and ”unshadow” programs have been made significantly faster.
* ”DateTime”, ”Repeats”, ”Subsets”, ”AtLeast1-Simple”, ”AtLeast1-Generic”, and ”Policy” external mode samples have been added to the default john.conf.
* The self-tests have been enhanced to detect more kinds of program bugs.
* A few minor bug fixes and enhancements were made.

John the Ripper 1.7.7 kan ladda hem här:

FreeBSD krypterar direkt i processorn

Med nya versionen av FreeBSD 8.2 så stödjs AESNI vilket är ett antal nya instruktioner för att genomföra AES kryptoberäkningar direkt i processorn:

The FreeBSD crypto(4) framework (opencrypto) now supports XTS-AES (XEX-TCB-CTS, or XEX-based Tweaked Code Book mode with CipherText Stealing), which is defined in IEEE Std. 1619-2007.[r214254]

De nya instruktionerna är:

AESENC Perform one round of an AES encryption flow
AESENCLAST Perform the last round of an AES encryption flow
AESDEC Perform one round of an AES decryption flow
AESDECLAST Perform the last round of an AES decryption flow
AESKEYGENASSIST Assist in AES round key generation
AESIMC Assist in AES Inverse Mix Columns
PCLMULQDQ Carryless multiply (CLMUL). [2

Prestandan med dessa nya instruktioner kan beskrivas enligt följande: ”28.0 cycles per byte to 3.5 cycles per byte” vilket blir ungefär nio gånger bättre prestanda. Se källa

Vi skrev även om detta 2008: