ssty -echo를 통해 Session Manager 로그에 안보이게 하기

Twoeyes·2023년 9월 10일
0

Intro

Session Manager는 세션 설정에 따라, 입력한 명령어와, 그 출력을 기록한다고 한다.
그 와중에, 패스워드나 보여져서는 안되는 데이터들이 기록되기도 하는데, 로그에 기록되지 않게 하려면 다음과 같은 명령어를 사용하자.

stty -echo; read passwd; stty echo;

stty -echo: 이 부분은 "stty" 명령어를 사용하여 터미널 (입력 및 출력 장치) 설정을 변경하는 명령어입니다. 여기서 "-echo" 옵션은 입력한 문자를 화면에 출력하지 않도록 설정합니다. 즉, 사용자가 키보드로 입력하는 모든 문자는 화면에 나타나지 않게 됩니다. 이것은 비밀번호나 다른 민감한 정보를 입력할 때 유용합니다.

read passwd: 이 부분은 "read" 명령어를 사용하여 사용자로부터 입력을 받는 부분입니다. "passwd"는 변수 이름으로, 사용자가 입력한 문자열은 이 변수에 저장됩니다. 사용자가 엔터 키를 누르면 입력이 완료되고 변수 "passwd"에 저장됩니다.

stty echo: 마지막으로, "stty" 명령어를 다시 사용하여 터미널 설정을 원래 상태로 되돌립니다. 이것은 "echo" 옵션을 허용하여 사용자가 입력한 문자를 다시 화면에 출력하도록 설정합니다. 이 명령을 실행하면 다시 일반적인 터미널 동작으로 돌아갑니다.

여기까지 이해한 바로는, 패스워드를 입력해야할 때마다, stty -echo를 통해 echo를 빼주는 것 같다.

실습으로 확인해보자

  • 준비물 : Ec2 1개, system manager에서 구성을 배포한다.

상세 설정은 기본값으로 진행하였다.

접속 성공!

이제 로그가 어떻게 남는지 확인해 보자.
로그는 Cloud Watch와, S3에 저장하는 것으로 설정할 수 있는 것 같다

< S3 >

라이브로 저장되지는 않고, 세션이 끊기면 다음 이미지와 같이 저장된다.
물론 연결된 Ec2의 권한이 S3에 파일 저장할 수 있는 권한도 같이 넣어줘야한다.

< Cloud Watch >

Watch에 넣으려면 '로그그룹' 생성도 해야하는데, 로그 그룹을 생성할 때, 암호화를 해야하는 옵션은 빼주도록 하자. 체크한다면, KMS 거쳐서 권한 설정까지 해주고 연결해야한다.

위 이미지처럼 테일링을 시작하면 라이브로 로그를 볼 수 있다.

이제 테스트를 위한 계정을 만들고 su - test를 해보자

< 테스트 >

stty 설정을 따로 해주지 않았음에도, 패스워드는 노출되지 않는다.
(echo 되지 않았기 때문)
무조건 stty -echo를 하라는건 아니고, 혹여나 사용하는 명령에 password같은 노출되면 안될 정보가 들어간다면, 사용하라는 얘기인 것 같다.

  • 마지막으로 stty -echo를 사용해보자.

저 명령어를 통해 eett라는 문자열을 입력했고, 세션 로그에는 입력값이 나오지 않았으며, 변수값을 echo로 호출했을 때, 확인할 수 있었다.

결론 :
ssty -echo; read passwd ; ssty echo;
라는 명령어를 통해 passwd 변수에 패스워드를 등록하고, 명령어 사용할 때, 등록된 변수를 통해 기밀 정보를 입력한다.


<stty 가... 뭐죠..?>

"stty"는 Unix 및 Unix-like 운영 체제에서 터미널(커맨드 라인 인터페이스)의 설정을 제어하는 명령어입니다. "stty"는 "set tty"의 줄임말로, 터미널 설정을 변경하거나 표시하는 데 사용됩니다. 일반적으로 셸 스크립트나 터미널 환경에서 사용자의 상호작용을 관리하는 데 유용합니다.

Echo (에코): "echo"는 사용자가 입력한 문자를 화면에 표시할지 여부를 설정합니다. "stty -echo"는 입력한 문자를 화면에 표시하지 않게 하고, "stty echo"는 입력한 문자를 화면에 표시하도록 설정합니다.

Erase (지우기): "erase"는 백스페이스 키(또는 다른 지우기 키)를 사용하여 입력한 문자를 삭제할 때 사용되는 문자를 설정합니다.

Kill (삭제): "kill"은 입력한 문자열을 삭제하고 현재 라인을 비웁니다.

Interrupt (중단): "interrupt"는 사용자가 입력한 동작을 중단시키는 특수 키를 설정합니다. 기본적으로 이는 Ctrl+C 키로 설정되어 있으며, 이 키를 누르면 실행 중인 프로세스가 중단됩니다.

Eof (파일 끝): "eof"는 파일의 끝을 나타내는 특수 키를 설정합니다. 기본적으로 이는 Ctrl+D 키로 설정되어 있으며, 이 키를 누르면 입력이 종료됩니다.

profile
아 배고파

0개의 댓글