나는 모든 쉘 활동을 기록하는데 사용 script
하지만 이 로그 파일에 꽤 많은 비밀번호와 기타 비밀 정보가 있다는 점이 걱정됩니다.
암호화된 방식으로 쉘 세션을 기록하는 방법을 아는 사람이 있습니까? script
GPG와 통합된 유사한 유틸리티가 있습니까 ?
답변1
개별 파일을 암호화하는 대신 로그 파일을 암호화된 저장소에 넣을 수 있습니다.
아니면 script
fifo에 쓰고 gpg로 해당 fifo를 읽은 다음 gpg에서 암호화하여 파일에 쓰도록 할 수도 있습니다.
답변2
를 사용하는 경우 bash
스크립트를 사용하여 ~/.bash_logout
gpg 등을 사용하여 로그 파일을 암호화할 수 있습니다.script
.bash_logout
로그의 파일 이름이 무엇인지 알아야 합니다. 예를 들어, 단지 run 이 아니라 script filename
run myscript
을 실행 하십시오 .bashrc
.
function myscript() {
# Very primitive option handling. This really needs to pass any script
# command-line options on to script.
# Left as an exercise for the reader and the getopts documentation :)
if [ -n "$1" ] ; then
SCRIPT_FILENAME="$1"
else
SCRIPT_FILENAME="$USER-$(tty)-$(date +%s)"
fi
readonly SCRIPT_FILENAME
export SCRIPT_FILENAME
script "$SCRIPT_FILENAME"
}
그런 다음 .bash_logout 파일에서:
if [ -n "$SCRIPT_FILENAME" ] && [ -e "$SCRIPT_FILENAME" ] ; then
gpg --batch --yes -r 'YOUR-EMAIL-OR-ID' -e "$SCRIPT_FILENAME"
shred "$SCRIPT_FILENAME" # or any other file secure-erase tool.
rm -f ""$SCRIPT_FILENAME"
fi
안전 경고: 이로 인해 시스템이 쉘 환경(예: 소스 스크립트)에서 SCRIPT_FILENAME 변수를 설정할 수 있는 모든 것에 취약해집니다. 공격자는 이를 귀하의 사용자 ID에 쓰기 액세스 권한이 있는 모든 파일로 설정할 수 있습니다. (물론 공격자가 가능한 모든 것을 실행할 수 있다면 파일 자체를 덮어쓸 수 있습니다)
it 대신 함수에서 읽기 전용으로 설정하면 $SCRIPT_FILENAME
이를 방지 할 수 있습니다. 이렇게 하면 myscript 함수가 다른 파일 이름을 사용하는 것을 방지할 수 있습니다.~/.bashrc
myscript
또는 모든 TypeScript를 하나의 디렉터리(예 /home/username/typescripts/
: )에 저장할 수 있습니다. 그러면 .bash_logout 스크립트는 다음을 확인할 수 있습니다.
- 파일 이름은 디렉터리의 절대 경로로 시작됩니다.
- 파일 이름이 다음으로 끝나지 않습니다.
.gpg
../
파일 이름에 s가 없습니다.- 파일 이름은 심볼릭 링크가 아닙니다
- 파일 이름 inode 수 = 1
- 등
암호화, 파쇄, 삭제 전.
또 다른 보안 경고:
경계하십시오. 위험을 감수하더라도 코드 예제를 사용하지 마십시오. 내 예는 참고용일 뿐입니다.
일부는 개별적으로 테스트되었지만 완전한 기능 시스템으로 테스트되지는 않았습니다. 정답은아니요완벽한 솔루션을 제공하도록 설계되었습니다. 스스로 탐색하고 구현할 수 있는 아이디어를 제공하도록 설계되었습니다.