Linux 비밀번호 변경

LinuxBeginner
지금 연습하기

소개

비밀번호 관리는 Linux 환경에서 시스템 보안을 유지하는 데 중요한 측면입니다. 시스템 관리자는 사용자 계정과 민감한 데이터를 무단 접근으로부터 보호하기 위해 안전한 비밀번호 정책을 생성하고 시행하는 방법을 이해해야 합니다.

이 Lab 에서는 passwd 명령을 사용하여 사용자 비밀번호를 변경하고 기본적인 비밀번호 정책을 구현하는 방법을 배우게 됩니다. 이러한 기본적인 기술은 사용자 계정 관리 및 시스템 보안과 관련된 역할을 수행하는 모든 Linux 시스템 사용자를 위해 필수적입니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 중급 레벨의 실험이며 완료율은 78%입니다.학습자들로부터 93%의 긍정적인 리뷰율을 받았습니다.

passwd 명령어 이해

Linux 시스템에서 passwd 명령은 사용자 비밀번호를 변경하는 데 사용됩니다. 이 명령을 통해 사용자는 자신의 비밀번호를 변경할 수 있으며, 시스템 관리자는 시스템의 모든 계정에 대한 비밀번호를 변경할 수 있습니다.

새 사용자 생성

비밀번호 관리를 연습하기 위해 사용할 새 사용자를 생성해 보겠습니다. 터미널을 열고 기본 작업 디렉토리에 있는지 확인합니다.

cd ~/project

이제 useradd 명령을 사용하여 cyberuser라는 새 사용자를 생성합니다.

sudo useradd cyberuser

이 명령은 새 사용자 계정을 생성하지만 비밀번호는 설정하지 않습니다. 비밀번호를 지정하지 않고 사용자를 생성하면 일반적으로 계정이 기본적으로 잠깁니다.

id 명령을 사용하여 사용자가 생성되었는지 확인할 수 있습니다.

id cyberuser

다음과 유사한 출력을 볼 수 있습니다.

uid=1001(cyberuser) gid=1001(cyberuser) groups=1001(cyberuser)

새 사용자의 비밀번호 설정

새 사용자를 생성했으므로 passwd 명령을 사용하여 이 계정에 대한 비밀번호를 설정해 보겠습니다.

sudo passwd cyberuser

이 명령을 실행한 후 확인을 위해 새 비밀번호를 두 번 입력하라는 메시지가 표시됩니다.

New password:
Retype new password:
passwd: password updated successfully

메시지가 표시되면 원하는 비밀번호를 입력합니다. 보안을 위해 입력하는 비밀번호는 화면에 표시되지 않습니다.

passwd 명령은 지정된 사용자 계정의 비밀번호를 업데이트합니다. sudo 권한으로 실행하면 시스템의 모든 사용자에 대한 비밀번호를 변경할 수 있습니다.

비밀번호 정보 보기

마지막으로 변경된 시기를 포함하여 사용자의 비밀번호에 대한 정보를 보려면 chage -l 명령 다음에 사용자 이름을 사용하면 됩니다.

sudo chage -l cyberuser

이 명령은 사용자의 비밀번호 만료 정책에 대한 정보를 표시합니다. 출력은 다음과 유사합니다.

Last password change                                    : Jul 15, 2023
Password expires                                        : never
Password inactive                                       : never
Account expires                                         : never
Minimum number of days between password change          : 0
Maximum number of days between password change          : 99999
Number of days of warning before password expires       : 7

이 정보는 사용자 계정에 적용된 현재 비밀번호 정책을 이해하는 데 유용합니다.

Linux 비밀번호 파일 이해

Linux 에서 비밀번호 정보는 여러 중요한 시스템 파일에 저장됩니다. 이러한 파일을 이해하면 관리자가 사용자 계정을 효과적으로 관리하는 데 도움이 됩니다.

비밀번호 관련 파일 탐색

프로젝트 디렉토리로 이동합니다.

cd ~/project

비밀번호 및 사용자 계정 정보를 저장하는 주요 파일을 살펴보겠습니다.

  1. 먼저 기본 사용자 계정 정보를 포함하는 /etc/passwd 파일을 살펴보겠습니다.
grep cyberuser /etc/passwd

다음과 유사한 출력을 볼 수 있습니다.

cyberuser:x:1001:1001::/home/cyberuser:/bin/sh

이 줄에는 콜론으로 구분된 여러 필드가 포함되어 있습니다.

  • 사용자 이름: cyberuser
  • 비밀번호 자리 표시자: x (실제 비밀번호는 /etc/shadow에 저장됨)
  • 사용자 ID (UID): 1001
  • 그룹 ID (GID): 1001
  • 사용자 정보 필드: (이 경우 비어 있음)
  • 홈 디렉토리: /home/cyberuser
  • 기본 셸: /bin/sh
  1. 이제 암호화된 비밀번호 정보를 포함하는 shadow 비밀번호 파일을 살펴보겠습니다.
sudo grep cyberuser /etc/shadow

출력에는 암호화된 비밀번호 및 관련 정보가 표시됩니다.

cyberuser:$6$xxxxxxxxxxxxxxxxxxx:19189:0:99999:7:::

이 줄의 필드에는 다음이 포함됩니다.

  • 사용자 이름
  • 암호화된 비밀번호
  • 비밀번호가 마지막으로 변경된 1970 년 1 월 1 일 이후의 날짜
  • 비밀번호를 변경할 수 있는 날짜
  • 비밀번호를 변경해야 하는 날짜
  • 비밀번호 만료 전 사용자에게 경고할 날짜
  • 비밀번호 만료 후 계정이 비활성화될 때까지의 날짜
  • 계정이 비활성화된 1970 년 1 월 1 일 이후의 날짜
  • 예약된 필드

이 정보는 Linux 시스템에서 비밀번호 보안이 어떻게 구현되는지 이해하는 데 중요합니다.

비밀번호 정책 적용

Linux 는 사용자가 강력한 비밀번호를 선택하도록 하여 시스템 보안을 유지하는 데 도움이 되는 여러 도구를 제공하여 비밀번호 정책을 시행합니다. 이 단계에서는 기본적인 비밀번호 정책을 구현하는 방법을 배웁니다.

비밀번호 만료 설정

chage 명령을 사용하면 관리자가 비밀번호 만료 정책을 설정할 수 있습니다. 프로젝트 디렉토리로 이동합니다.

cd ~/project

cyberuser 계정에 대한 최대 비밀번호 사용 기간을 90 일로 설정해 보겠습니다.

sudo chage -M 90 cyberuser

이 명령은 사용자가 비밀번호를 변경해야 하기 전에 비밀번호가 유효한 최대 일수를 설정합니다.

또한 사용자가 너무 자주 비밀번호를 변경하는 것을 방지하는 최소 비밀번호 사용 기간을 설정할 수도 있습니다.

sudo chage -m 7 cyberuser

이 명령은 사용자가 비밀번호를 다시 변경하기 전에 최소 7 일을 기다려야 합니다.

변경 사항을 확인합니다.

sudo chage -l cyberuser

업데이트된 비밀번호 정책 정보를 볼 수 있습니다.

Last password change                                    : Jul 15, 2023
Password expires                                        : Oct 13, 2023
Password inactive                                       : never
Account expires                                         : never
Minimum number of days between password change          : 7
Maximum number of days between password change          : 90
Number of days of warning before password expires       : 7

비밀번호 정책 스크립트 생성

이제 더 고급 비밀번호 정책을 구현하는 스크립트를 만들어 보겠습니다. cyberpolicy.sh라는 새 파일을 만듭니다.

nano ~/project/cyberpolicy.sh

다음 내용을 파일에 추가합니다.

#!/bin/bash

## Enforce password complexity
echo "password requisite pam_pwquality.so retry=3 minlen=8 difok=3" | sudo tee -a /etc/pam.d/common-password

## Set password expiration policy for all new users
echo "PASS_MAX_DAYS   90" | sudo tee -a /etc/login.defs
echo "PASS_MIN_DAYS   7" | sudo tee -a /etc/login.defs
echo "PASS_WARN_AGE   7" | sudo tee -a /etc/login.defs

echo "Password policy has been updated successfully."

Ctrl+O를 누른 다음 Enter를 눌러 파일을 저장하고 Ctrl+X로 nano 를 종료합니다.

스크립트를 실행 가능하게 만듭니다.

chmod +x ~/project/cyberpolicy.sh

이 스크립트는 다음 비밀번호 정책을 설정합니다.

  • 비밀번호 복잡성: 최소 8 자, 이전 비밀번호와 최소 3 개의 다른 문자, 3 번의 재시도 허용
  • 비밀번호 만료: 90 일 최대 비밀번호 사용 기간
  • 비밀번호 변경 제한: 7 일 최소 비밀번호 사용 기간
  • 비밀번호 경고: 비밀번호 만료 7 일 전

프로덕션 환경에서는 이러한 정책을 적용하기 위해 이 스크립트를 실행합니다. 그러나 이 랩에서는 비밀번호 정책을 구현하는 방법을 이해하기 위해 내용만 검토합니다.

요약

이 랩에서는 Linux 시스템에서 비밀번호 관리에 필요한 필수 기술을 배웠습니다. 다음을 실습했습니다.

  1. useradd 명령을 사용하여 새 사용자 계정 생성
  2. passwd 명령을 사용하여 비밀번호 설정 및 변경
  3. /etc/passwd/etc/shadow와 같은 시스템 파일에서 비밀번호 정보 보기
  4. chage 명령을 사용하여 비밀번호 만료 정책 설정
  5. 비밀번호 복잡성 및 만료 정책을 시행하는 스크립트 생성

이러한 기술은 적절한 비밀번호 관리 방식을 구현하여 안전한 시스템을 유지해야 하는 시스템 관리자에게 필수적입니다. 강력한 비밀번호 정책을 시행하는 방법을 이해함으로써 Linux 시스템의 보안을 크게 강화하고 무단 액세스로부터 보호할 수 있습니다.

학습 여정을 계속 진행하면서 PAM (Pluggable Authentication Modules) 구성, 다단계 인증 구현, 엔터프라이즈 환경에서 사용자 계정 관리 자동화와 같은 더 고급 주제를 탐구해 보십시오.