pesich
@pesich

Server Log Encryption — Как зашифровать логи сервера?

Доброго времени суток, уважаемые.

Встала задача сделать локальное шифрование лог файлов на Линукс серверах. Проверив данную тему в поисковиках, ничего дельного не нашел.

Задача такова:
Сделать `автоматическую систему \ скрипт`, который на `лету / после` архивирования будет зашифровывать контент лог файла.
Желательно, чтобы расшифровка была так же довольно легким процессом.

Спасибо за помощь.
  • Вопрос задан
  • 2935 просмотров
Пригласить эксперта
Ответы на вопрос 3
leahch
@leahch Куратор тега Linux
3D специалист. Dолго, Dорого, Dерьмово.
Так, если я правильно понял, то нужно шифровать не текущие логи (что немного нонсенс!), а только при архивировании (ротации)? Так просто нужно добавить команду по шифрации в logrotate конфигурацию (или что у вас за ротацию логов отвечает).
Ответ написан
egor_nullptr
@egor_nullptr Куратор тега Linux
Можно взять подходящую шифрующую ФС (например www.truecrypt.org), монтировать в нужное место и писать логи прямо на неё (или копировать после ротации).
Ответ написан
pesich
@pesich Автор вопроса
Может будет полезно для кого нибудь ,накатал черновую версию скриптика.Буду рад замечаниям и поправкам.
#!/bin/bash
#Encrytion Script for Log Files
#Copytight Denis P. 2014

set -x

while true; do
#rm FILE_LIST1 # Rotation of file list changes
#Lets find files that we should to encrypt . Files after rotation proccess
find /var/log/ -type f ! -name '*.ss' -printf "%f\n" | grep  "^[a-zA-Z]*\.[0-9]" | grep -v gz >| FILE_LIST # Grep files into log direcotory matching patter file.0 etc.
find /var/log/ -type f ! -name '*.ss' -printf "%f\n" | grep  .gz >> FILE_LIST # matching .gz ext.
find /var/log/ -type f ! -name '*.ss' -printf "%f\n" | grep  [0-9]$ >> FILE_LIST #grep file with file.1 || file1 pattern
        for FILE_NAME in $(cat FILE_LIST) # run on all founded files
                do
                find /var/log/ -type f ! -name '*.ss' | grep $FILE_NAME >| FULL_PATH_FILE_LIST # get full path to the file founded
                        for  FULL_PATH_FILE_NAME in $(cat FULL_PATH_FILE_LIST)
                                do
                                openssl des3 -salt -in $FULL_PATH_FILE_NAME -out $FULL_PATH_FILE_NAME.ss -pass file:/root/secret # encryption operation
                                rm $FULL_PATH_FILE_NAME
                                done
                done
rm FILE_LIST
sleep 5
done
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы