массовое шифрование файлов не работает с openssl

У меня есть куча файлов журналов, которые я пытаюсь зашифровать с помощью открытого / закрытого ключа с помощью openssl и сохранить на моем NAS, но это не удается. .

Мои файлы журнала находятся по следующему пути:

/var/SYSLOGS/hosts/archive

Мой открытый ключ и закрытый ключ находятся в / etc / log-enc /

[root@NAG01 log-enc]# ls -l
total 8
-rw-r--r-- 1 root root 891 Jul 11 15:58 syslog_privalye_key.pem
-rw-r--r-- 1 root root 272 Jul 11 15:59 syslog_public_key.pem

Теперь я пытаюсь выполнить следующую команду Если я выполняю одну и ту же команду одну за другой, проблем нет.

for file in `find /var/SYSLOGS/hosts/archive/`
do  
FILE_BASE=$(basename $file)
echo "$file=>/NFS/Nag01/syslogs/hosts/$FILE_BASE.enc"
openssl rsautl -encrypt -inkey  /etc/log-enc/syslog_public_key.pem -pubin -in $file -out /NFS/Nag01/syslogs/hosts/$FILE_BASE.enc
done

Вот журналы ошибок.

RSA operation error
140628568049480:error:0406D06E:rsa routines:RSA_padding_add_PKCS1_type_2:data too large for key size:rsa_pk1.c:151:
/var/SYSLOGS/hosts/archive/192.168.33.5.log-20160131.gz=>/NFS/Nag01/syslogs/hosts/192.168.33.5.log-20160131.gz.enc
RSA operation error
140123978278728:error:0406D06E:rsa routines:RSA_padding_add_PKCS1_type_2:data too large for key size:rsa_pk1.c:151:
/var/SYSLOGS/hosts/archive/app02.log-20160306.gz=>/NFS/Nag01/syslogs/hosts/app02.log-20160306.gz.enc
/var/SYSLOGS/hosts/archive/192.168.34.8.log-20160227.gz=>/NFS/Nag01/syslogs/hosts/192.168.34.8.log-20160227.gz.enc
RSA operation error
139777258493768:error:0406D06E:rsa routines:RSA_padding_add_PKCS1_type_2:data too large for key size:rsa_pk1.c:151:
/var/SYSLOGS/hosts/archive/192.168.31.3.log-20160511.gz=>/NFS/Nag01/syslogs/hosts/192.168.31.3.log-20160511.gz.enc

Вот необработанные файлы.

[root@NAG01 log-enc]# ls -l /var/SYSLOGS/hosts/archive/192.168.33.5.log-20160131.gz
-rw-------. 1 root root 3569 Jan 31 04:16 /var/SYSLOGS/hosts/archive/192.168.33.5.log-20160131.gz
[root@NAG01 log-enc]# ls -l /var/SYSLOGS/hosts/archive/192.168.34.8.log-20160227.gz
-rw-------. 1 root root 2142 Feb 27 03:11 /var/SYSLOGS/hosts/archive/192.168.34.8.log-20160227.gz
0
11.07.2016, 14:28
2 ответа

У меня это сработало.

Сначала создайте ключи

openssl req -x509 -nodes -newkey rsa:2048 -keyout private-key.pem -out public-key.pem

, затем тот же цикл

for file in `find /var/SYSLOGS/hosts/archive/`
do 
FILE_BASE=$(basename $file)
echo "$file=>/NFS/Nag01/syslogs/hosts/$FILE_BASE.enc"
openssl smime -encrypt -binary -aes-256-cbc -in  $file -out /NFS/Nag01/syslogs/hosts/$FILE_BASE.enc -outform DER public-key.pem

done
0
28.01.2020, 04:50

Не используйте openssl для шифрования файлов. Он не предназначен для этого. ( openssl на самом деле не предназначен ни для чего.) Вы просто возитесь в темноте. В клетке тигра.

GnuPG предназначен именно для шифрования файлов. Установите его из своего дистрибутива. Используйте gpg --gen-key , чтобы сгенерировать новый ключ.Ключи хранятся в ~ / .gnupg . Используйте gpg --export для экспорта открытого ключа из учетной записи, gpg --export-secret-keys для экспорта секретного ключа и gpg --import , чтобы импортировать его на другой аккаунт.

Чтобы зашифровать файл, используйте gpg -e / путь / к / файлу . Для расшифровки используйте gpg /path/to/file.gpg.


Не анализируйте вывод find , используйте find… -exec… . И всегда используйте двойные кавычки для замены переменных и команд. Возможно, в ваших файлах сейчас нет специальных символов, но использование двойных кавычек не может причинить никакого вреда и однажды спасет вас от нарушения безопасности.

Ваш сценарий также поврежден и другими способами, например, при попытке зашифровать каталоги, вызывая ложные ошибки. Судя по вашему сценарию, похоже, что вы не ожидаете найти подкаталоги в / var / SYSLOGS / hosts / archive / , и в этом случае вам не нужно find .

cd /var/SYSLOGS/hosts/archive/ &&
for x in *; do
  gpg -e -o "/NFS/Nag01/syslogs/hosts/$x.gpg" "$x"
done

Если есть подкаталоги:

cd /var/SYSLOGS/hosts/archive/ &&
find . -type f -exec sh -c '
  mkdir -p "${0%/*}" &&
  gpg -e -o "/NFS/Nag01/syslogs/hosts/$0.gpg" "$0"
'
0
28.01.2020, 04:50

Теги

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