рдбреЗрдмрд┐рдпрди: рд╕рд┐рд╕реНрдЯрдо рдХреА рдПрдХ рд╕рдВрдХреАрд░реНрдг рд╢реНрд░реЗрдгреА рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЬ рдмрдирд╛рдирд╛

рдЗрд╕ рдкреЛрд╕реНрдЯ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдПрдХ рдЫреЛрдЯреА рдмреИрд╕рд╛рдЦреА рд╡рд┐рдзрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдореИрдВрдиреЗ рдРрд╕реЗ рдбрд┐рдм рдкреИрдХреЗрдЬ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдерд╛ рдЬреЛ рдХреЗрд╡рд▓ рд╕рд░реНрд╡рд░реЛрдВ рдХреА рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реВрдЪреА рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рдереЗред рд╕рдорд╛рдзрд╛рди рдЙрди рд╕рднреА рдбреЗрдЯрд╛ рдХреЗ рд░рд┐рд╕рд╛рд╡ рдХреЗ рдбрд░ рдХреЗ рдмрд┐рдирд╛, рдЕрдиреНрдп рд╕рднреА рд╡рд┐рдзрд╛рдирд╕рднрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдХреЗрдВрджреНрд░реАрдп рднрдВрдбрд╛рд░ рдореЗрдВ рдЗрди рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдореМрдЬреВрджрд╛ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдХреЛрдб рдХреЗ рдЯреБрдХрдбрд╝реЛрдВ рдХреЛ рдлрд╛рдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ, рдореИрдВрдиреЗ рдкреЛрд╕реНрдЯ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдЫреЛрдЯреЗ HOWTO рдХреЗ рд░реВрдк рдореЗрдВ рдбрд┐рдЬрд╛рдЗрди рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЬрд┐рд╕рдореЗрдВ рдореИрдВ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдбреЗрдЯрд╛ рд╡рд╛рд▓реЗ рдПрдХ рд╕рд╛рд░ рдкреИрдХреЗрдЬ рдХреЛ рдЦрд░реЛрдВрдЪрдиреЗ рд╕реЗ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реВрдВрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЙрд░рдкреЛрд░реЗрдЯ рд╡рд┐рддрд░рдг рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓рд╛, рдЕрдкрдиреЗ рдкрд╕рдВрджреАрджрд╛ рдЙрдкрдирд╛рдореЛрдВ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ, рдПрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рдкреИрдХреЗрдЬ рд╕реЗ рдПрдХ рдирдИ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдбрд┐рдмрдЧ рдХрд░рддрд╛ рд╣реИ: //example.com/myrepoред

рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдЖрдк рдкреЛрд╕реНрдЯрд╕реНрдЯреАрди рдореЗрдВ рдУрдкрдирд╕реЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕ рдкрд░ рдПрдХ рдкреЛрд╕реНрдЯред

рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдмрдпрд╛рди

рдПрдХ рдХрд╛рд▓реНрдкрдирд┐рдХ рдлрд╝реЛрдХрдкреИрдХ рдкреИрдХреЗрдЬ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдЬреЛ рдПрдХ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рддреАрди рдлрд╛рдЗрд▓реЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ:

рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдпрд╣ foopkg.deb рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдЖрдВрддрд░рд┐рдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ, рдФрд░ apt-get install foopkg рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рд╕реА рднреА рд╕рд░реНрд╡рд░ рдкрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдо рдЖрд▓рд╕реА рд╣реИрдВ (рдпрд╣), рдФрд░ рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдПрдХ рддрд░рдл, рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╕рдм рдХреБрдЫ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдХреЗрд╡рд▓ рдПрдкреНрдЯреАрдЯреНрдпреВрдб рдЕрдкрдбреЗрдЯ && рдПрдкреНрдЯреАрдЯреНрдпреВрдб рд╕реБрд░рдХреНрд╖рд┐рдд-рдЕрдкрдЧреНрд░реЗрдб рдХрд░реЗрдВ , рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣рд╛рде рд╕реЗ рдХреБрдЫ рднреА рд╢рд╛рд╕рди рди рдХрд░реЗрдВред рджреВрд╕рд░реА рдУрд░, рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдо рдереЛрдбрд╝реЗ рдкрд╛рдЧрд▓ рд╣реИрдВ (рдпрд╣ рд╣реИ), рдФрд░ рд╣рдо рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рдХрд┐ рдХреЛрдИ рдФрд░ рд╣рдорд╛рд░реЗ рдЕрд▓рд╛рд╡рд╛ рд╣рдорд╛рд░реА рдЧреБрдкреНрдд рд╕реЗрдЯрд┐рдВрдЧреНрд╕ / рдХреЙрдиреНрдлрд┐рдЧреНрд╕ рд╕реЗрдЯ рдХрд░реЗред рдмреЗрд╢рдХ, рд╣рдо рдХрдардкреБрддрд▓реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдЬрд╛рдирддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдЪреИрдирд▓ рдЦреЛрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ рдЬрдм рд╕рдм рдХреБрдЫ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╣реИ (рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдкреЛрд╕реНрдЯ рдЪрдХреНрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╖рдп рд╣реИ) рдЬрд┐рд╕ рд░реВрдк рдореЗрдВ рд╣рдореЗрдВ рдЬрд╝рд░реВрд░рдд рд╣реИ?

рдирд┐рд░реНрдгрдп


рдЖрдЗрдП рдЗрд╕ HOWTO рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдкрд░реЗ рдореБрджреНрджреЛрдВ рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреИрдХреЗрдЬ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВ, рдФрд░ рд╣рдо рдкреИрдХреЗрдЬ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдХреНрд╡рд┐рд╡рд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред

рдмрд┐рд▓реНрдб рд╡рд╛рддрд╛рд╡рд░рдг рддреИрдпрд╛рд░ рдХрд░рдирд╛:
mkdir -p foobuild/root_dir/opt/foopkg && cd foobuild touch {clear.txt,sensitive.config,topsecret} echo 'Package: foopkg' > control echo 'Pre-Depends: openssl' >> control # minimal control file, see man equivs-control echo -n 'ThisIsOurDeploymentMegaPassphrase' > pass 


рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рд╡рд┐рдХрд▓реНрдк рдкреВрд░реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рдирд╛ рд╣реИ:
 openssl aes-256-cbc -e -kfile ./pass -a -A -in $infile -out $outfile 

-рдПрдХ рдзреНрд╡рдЬ рдореЗрдВ рдереЛрдбрд╝реА рд╕реВрдХреНрд╖реНрдорддрд╛: рдЗрд╕рдХреЗ рд╕рд╛рде, рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдЖрдЙрдЯрдкреБрдЯ 64 рд╡рд░реНрдгреЛрдВ рдХреЗ рдмреНрд▓реЙрдХ рдореЗрдВ рд╣рд░рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ #! / рдмрд┐рди / рдбреИрд╢, рдереЛрдбрд╝рд╛ рдЖрд╕рд╛рди рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдкреЛрд╕реНрдЯрд╕реНрдЯрд╛рдЗрди рдореЗрдВ рдбрд┐рдХреНрд░рд┐рдкреНрд╢рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдХрднреА-рдХрднреА рдкреВрд░реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдареАрдХ рд╣реИ, рдлрд┐рд░ рд╣рдо рд╕рдмрд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдкрд╣рд▓реЗ рдЙрди рдорд╛рд░реНрдХрд░реЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдирдХреЗ рджреНрд╡рд╛рд░рд╛ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рд╕реАрдорд╛рдУрдВ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ '___ рдПрдирдХреНрд░рд┐рдкреНтАНрд╢рди {' рдФрд░ '} ___' рдлреЙрд░реНрдо рдХреЗ рдЯреЛрдХрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди YMMV, рдХреЛрдИ рднреА рдорд╛рд░реНрдХрд░ рдЬреЛ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░реВрдк рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЙрдкрдпреБрдХреНрдд рд╣реИред

рддрджрдиреБрд╕рд╛рд░, рдкрд░реАрдХреНрд╖рдг рдлрд╛рдЗрд▓реЗрдВ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВ, рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИрдВ:

clear.txt:
 This is clear text, free to view, nothing special. 

sensitive.config:
 clear_param=foo secret_param=___encrypt{bar}___ 

TopSecret:
 ___encrypt{this is multiline and 42}___ 


рдФрд░ рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реНрд╡рдпрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣:
 #!/usr/bin/python import re import subprocess pass_file='./pass' def _encrypt(string): encre = re.compile('___encrypt{(.*?)}___', re.S) # non-greedy enc_string = string for el in encre.findall(string): # use openssl for encryption pipe = subprocess.Popen( ['openssl', 'aes-256-cbc', '-e', '-kfile', pass_file, '-a', '-A'], stdout = subprocess.PIPE, stdin = subprocess.PIPE, stderr = subprocess.PIPE, ) enc_el = pipe.communicate(input='%s' %el)[0] # Note: -A # add decryption markers enc_string = enc_string.replace('___encrypt{%s}___'%el, '___encrypted{%s}___'%enc_el) return enc_string # just for wrapper import sys print _encrypt( open(sys.argv[1], 'r').read() ) 

рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдЬрдЧрд░ рдореЗрдВ рдХрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдзрд┐рдХ рджреГрд╢реНрдп рдФрд░ рддреЗрдЬ рд╣реИ (рд╢ рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдпрд╛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реИ - рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдордЬрдмреВрдд-рдЗрдЪреНрдЫрд╛рд╢рдХреНрддрд┐ рдФрд░ рдЬрд┐рджреНрджреА рдкреБрд░реБрд╖реЛрдВ рдХреЗ рд▓рд┐рдП)ред рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╣реИ: рд╣рдо рдлрд╝рд╛рдЗрд▓ рдХреЛ рдПрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ рдкрдврд╝рддреЗ рд╣реИрдВ, рджреЗрдЦреЛ (рд▓рд╛рд▓рдЪ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХреИрдкреНрдЪрд░ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИ) рдкреНрд░рд╛рд░рдВрдн рдФрд░ рдЕрдВрдд рдорд╛рд░реНрдХрд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рднреА рд╕рдмрд╕реНрдЯреНрд░рд┐рдВрдЧ, рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ (рд╕рд░рд▓рддрд╛ рдХреЗ рд▓рд┐рдП рдУрдкрдирд╕реЗрд▓ рдХреЙрд▓рд┐рдВрдЧ), рдФрд░ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдкреЗрд╕реНрдЯ рдХрд░реЗрдВ, рдкреНрд░рд╛рд░рдВрдн рдорд╛рд░реНрдХрд░ рдХреЛ рдПрдХ рдорд╛рд░реНрдХрд░ рдХреЗ рд╕рд╛рде рдмрджрд▓ рджреЗрдВ рдЬреЛ рдХрд┐ рдбрд┐рдХреЛрдбрд░ рд╕рдордЭрддрд╛ рд╣реИред
рдЕрдВрддрд┐рдо рджреЛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдк рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕реВрдЪреА рд╕реЗ рдЧреБрдЬрд░ рд╕рдХреЗрдВ рдЬреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рддреИрдпрд╛рд░ рдХрд░реЗрдЧрд╛ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкреИрдХреЗрдЬ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝ рджреЗрдЧрд╛:
 echo -n "Files: " >> control for file in clear.txt sensitive.config topsecret ; do ./encrypt.py $file > root_dir/opt/foopkg/$file; echo " root_dir/opt/foopkg/$file /opt/foopkg" >> control #note space! done 

рд▓рд╛рдЗрдиреЛрдВ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рди рдХреЗрд╡рд▓ рдЕрдЬрдЧрд░ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдбреЗрдм рдкреИрдХреЗрдЬреЛрдВ рдХреА рдирд┐рдпрдВрддреНрд░рдг рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рднреА рд╣реИрдВ, рд╣рд╛рдБред

рдФрд░ рдЕрдВрдд рдореЗрдВ, рдЕрдВрддрд┐рдо рднрд╛рдЧ, рдЧреНрд░рд╛рд╣рдХ рдкрдХреНрд╖ рдкрд░ рдбрд┐рдХреНрд░рд┐рдкреНрд╢рди, рдЬреЛ рдЗрд╕ рдкреИрдХреЗрдЬ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдкреЛрд╕реНрдЯрд╕реНрдЯреЗрди рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ рдЬрд┐рд╕рдореЗрдВ:
 #!/bin/sh -e set -e PKG=foopkg ELIST="/opt/foopkg/topsecret /opt/foopkg/sensitive.config" warning() { echo "*************************************************" echo "*** WARNING! This is a protected package, ***" echo "*** please contact the maintainer, blah blah. ***" echo "*************************************************" } decrypt() { file="${1}" keyfile="${2}" for line in `grep -o -z -P '___encrypted{(.*?)}___' "${file}"`; do l=`echo $line | sed 's/___encrypted{\(.*\)}___/\1/'` d=`echo $l | openssl aes-256-cbc -d -kfile ${keyfile} -a -A` sed -i.encbackup "s@___encrypted{${l}}___@`echo "${d}"|awk '{printf("%s\\\\n", $0);}'|sed -e 's/\\\n$//'`@g" "${file}" done } # common key source PASSFILE='/root/deployment-password' if [ "$1" = configure ]; then # decrypt all encrypted stuff if [ ! -f ${PASSFILE} ]; then warning exit 1 fi for file in ${ELIST}; do decrypt "${file}" "${PASSFILE}" done fi #DEBHELPER# exit 0 


рдпрд╣рд╛рдБ рднреА, рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИред рдкреИрдХреЗрдЬ рдмрдирд╛рдиреЗ рдХреЗ рдЪрд░рдг рдореЗрдВ, рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реА рдлрд╛рдЗрд▓реЗрдВ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдЧрдИ рд╣реИрдВ рдФрд░ рдХреМрди рд╕реА рдирд╣реАрдВ рд╣реИрдВ - рдЙрдиреНрд╣реЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ, рдЬрд┐рд╕рд╕реЗ рдЙрдирдХреЗ рд▓рд┐рдП рдЬреАрд╡рди рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рдПред рдбрд┐рдХреНрд░рд┐рдкреНрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╕рдорд╛рди рд╣реИ: рд╣рдо рдорд╛рд░реНрдХрд░ рджреНрд╡рд╛рд░рд╛ рд╕рднреА рд▓рд╛рдЗрдиреЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░рддреЗ рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП ( -рдПрдХ рдХреБрдВрдЬреА рдпрд╛рдж рд░рдЦреЗрдВ; рдпрд╣рд╛рдВ рдпрд╣ рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдФрд░ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реЛрдЧрд╛) рд╣рдо рд╕рд┐рдлрд░ рдХреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рддреЗ рд╣реИрдВ рдФрд░ рдУрдкрдирд╕реЗрд▓ рдХреЛ рдЦрд┐рд▓рд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╣рдо рд▓рд╛рдЗрди рдХреЛ рдЙрдирдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдореЗрдВ рдмрджрд▓ рджреЗрддреЗ рд╣реИрдВ ( \ n ) рддреЛ рд╕реАрдб рдХрд╕рдо рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИ , рдПрдХ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд░реЗрдВ, рдФрд░ рдкреБрдирд░реНрд╕реНрдерд╛рдкрдирд╛ рдХрд░реЗрдВ (рдлрд╝рд╛рдЗрд▓ рд╕рд╣рд┐рдд рдЕрдВрдд рдХреЗ рдЕрд▓рд╛рд╡рд╛) рд▓рд╛рдЗрди рдЯреВрдЯ рдЬрд╛рддреА рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╣рдо рдЕрдм рдпрд╣рд╛рдВ рдЕрдЬрдЧрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рд╕рдорд╛рдзрд╛рди рднреА рдиреНрдпреВрдирддрдо рдкреНрд░рддрд┐рд╖реНрдард╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬрд╣рд╛рдВ рдХреЛрдИ рдЕрдЬрдЧрд░ рдирд╣реАрдВ рд╣реИ рдпрд╛ рдЕрднреА рддрдХ рдирд╣реАрдВ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╢реБрджреНрдз рд╕реНрдерд╛рдкрдирд╛)ред рдореИрдВрдиреЗ рдкреГрд╖реНрда рдкрд░ рдбрд┐рдХреНрд░рд┐рдкреНрд╢рди рдХреЛрдб рдирд╣реАрдВ рдЦреЛрд▓рд╛ рд╣реИ, рдореИрдВ рдорд╛рдлреА рдорд╛рдВрдЧрддрд╛ рд╣реВрдВ рдЕрдЧрд░ рдпрд╣ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЕрдкрдардиреАрдп рд▓рдЧрддрд╛ рд╣реИред
рдмреИрдХрдЕрдк рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдирд╛ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИ рдФрд░ рд╣рдореЗрд╢рд╛ рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдореИрдВрдиреЗ рдЗрд╕реЗ рдбрд┐рдХреНрд░рд┐рдкреНрд╢рди рдХреНрд╖рдг рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛрдбрд╝рд╛ рд╣реИред

рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд▓рд┐рдП рдкреЛрд╕реНрдЯрдЗрди рдЬреЛрдбрд╝реЗрдВ:
 echo "File: postinst 755" >> control # inline postinst file header cat postinst | sed 's/^$/./;s/^/ /;' >> control # inline postinst file body 


рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕реИрдб рджреЛ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ:
  1. s / / ^ / / / /; : рдбреЙрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдЦрд╛рд▓реА рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдмрджрд▓рдирд╛ рддрд╛рдХрд┐ рдирд┐рдпрдВрддреНрд░рдг рдлрд╝рд╛рдЗрд▓ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкрд╛рд░реНрд╕ рдХрд░реЗ, рдФрд░
  2. s / ^ / /; : рдПрдХ рд╣реА рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдПрдХ рд╕реНрдерд╛рди рдЬреЛрдбрд╝рдирд╛ред


рд╣рдо рдкреИрдХреЗрдЬ рдХреЛ рдЗрдХреНрд╡рд┐рд╡рд┐рдЬрд╝-рдмрд┐рд▓реНрдб рдХрдВрдЯреНрд░реЛрд▓ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдЗрдХрдЯреНрдард╛ рдХрд░рддреЗ рд╣реИрдВ, рд╣рдо рдЕрдкрдиреЗ рдлреВрдкреЛрдкрд┐рдХ_1.0_all.deb рдХреЛ рд╡рд░реНрдХрд┐рдВрдЧ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА (рдЕрдВрдд рдореЗрдВ, рд╣рд╛рдБ?) рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред

рд╣рдо рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ (рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░реЛрдВ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рдЕрдкрдиреЗ рдкрд╕рдВрджреАрджрд╛ рддрд░реАрдХреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ):
 dpkg -i foopkg_1.0_all.deb Selecting previously unselected package foopkg. (Reading database ... 32032154537392375672 files and directories currently installed.) Unpacking foopkg (from .../foopkg/foopkg_1.0_all.deb) ... Setting up foopkg (1.0) ... ************************************************* *** WARNING! This is a protected package, *** *** please contact the maintainer, blah blah. *** ************************************************* dpkg: error processing foopkg (--install): subprocess installed post-installation script returned error exit status 1 Errors were encountered while processing: foopkg grep '' /opt/foopkg/* # package now in unconfigured state, lets see what installed /opt/foopkg/clear.txt:This is clear text, free to view, nothing special. /opt/foopkg/clear.txt: /opt/foopkg/sensitive.config:clear_param=foo /opt/foopkg/sensitive.config:secret_param=___encrypted{U2FsdGVkX19P9SiUFkMBPmoe9JKkngTi24rcwWCJ9gs=}___ /opt/foopkg/sensitive.config: /opt/foopkg/topsecret:___encrypted{U2FsdGVkX18wjp/ArVbp5v7yHazykiX3C2VDM9xavGrECXduajGmSmTipNpSRhZ5}___ /opt/foopkg/topsecret: echo -n 'ThisIsOurDeploymentMegaPassphrase' > /root/deployment-password # ok, lets enable decryption dpkg --configure -a # retry install Setting up foopkg (1.0) ... grep '' /opt/foopkg/* # lets see again -- yep, backups and decrypted files are in place. /opt/foopkg/clear.txt:This is clear text, free to view, nothing special. /opt/foopkg/clear.txt: /opt/foopkg/sensitive.config:clear_param=foo /opt/foopkg/sensitive.config:secret_param=bar /opt/foopkg/sensitive.config: /opt/foopkg/sensitive.config.encbackup:clear_param=foo /opt/foopkg/sensitive.config.encbackup:secret_param=___encrypted{U2FsdGVkX19P9SiUFkMBPmoe9JKkngTi24rcwWCJ9gs=}___ /opt/foopkg/sensitive.config.encbackup: /opt/foopkg/topsecret:this /opt/foopkg/topsecret:is /opt/foopkg/topsecret:multiline /opt/foopkg/topsecret:and /opt/foopkg/topsecret:42 /opt/foopkg/topsecret: /opt/foopkg/topsecret.encbackup:___encrypted{U2FsdGVkX18wjp/ArVbp5v7yHazykiX3C2VDM9xavGrECXduajGmSmTipNpSRhZ5}___ /opt/foopkg/topsecret.encbackup: 


рдЕрдм рд╣рдо рдЕрдкрдиреЗ рдкреИрдХреЗрдЬ рдХреЛ рдЯреЛрд░реЗрдВрдЯ рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдбрд░ рдХреЗ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд╕рд╛рдЗрдЯреЛрдВ рдкрд░ рдлрд╝рд╛рдЗрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рдПрдЧреА рдЬрд╣рд╛рдБ рдЗрд╕рдХрд╛ рдЗрд░рд╛рджрд╛ рдирд╣реАрдВ рдерд╛ (рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдПрдХ рдкрд░реНрдпрд╛рдкреНрдд рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд╝рд┐рдХ рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд╕рд╛рде)ред

рд╕рдВрднрд╛рд╡рд┐рдд рд▓рд╛рдн рдФрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ



рдЕрдВрдд рддрдХ рдкрдврд╝рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдЖрдПрдЧрд╛ред рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдбреЛрдореЗрди рдореЗрдВ рд╕рдм рдХреБрдЫ, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИред

Source: https://habr.com/ru/post/In195150/


All Articles