본문으로 바로가기

160216 10번째 강의

category ▶ 웹기반 정보보안 과정/Linux 2016. 2. 17. 00:31

post by WHITEHATS

웹기반 정보보안 엔지니어 과정 160216 10번째 강의




7.사용자 계정 관리



7.사용자 계정 및 그룹

•목적
     - 사용자 식별 → 인증
     - 사용자 별 환경 제공
     - 보안성 향상

•사용자 계정 및 그룹 관리 파일
     

     위에 있는 4가지는 계정정보고 그 아래는 계정 환경설정파일이다.



7.사용자 계정 관리 파일 (/etc/passwd)

•확인
     - [root@localhost ~]# cat /etc/passwd
     
     

     계정에 정보가 여러가지 있다는 것을 알 수 있다.

     ①root ②:x ③:0 ④:0 ⑤:root ⑥:/root ⑦:/bin/bash
     

     

     7번필드에 /sbin /nologin 입력하면 shell을 주지 않겠다는 것임..
     로그인해도 shell 사용 못함.
 


7.사용자 계정 관리 파일 (/etc/shadow)

•확인
     - [root@localhost ~]# cat /etc/shadow
     
     

     vim으로 보면 색깔 구분되서 보기 편함 ㅇㅇ..


     ①root ②:$6$NAzqsXeFGHz3Hlp3$kS2BgO…③:16692 ④:0 ⑤:99999 ⑥:7 ⑦: ⑧: ⑨:
     

     sha-512가 지원안되는 곳은 암호화 종류를 바꿔줘야 한다.
     실습 ~
     sha-512 -> md5
     

     
     계정을 만들어보자!
     


     

         
     

     !!가 비밀번호가 아직 설정되지 않았다란 말.
     비밀번호 설정 할꺼임
     
     

     
     

     md5로 바꿔서 hash_id가 1로 되있는것을 확인할 수 있다.
     다시 sha512로 바꿔준다. (md5 -> sha-512)

     

         
     

     계정 id_test1 새로 만들어 준다. 비밀번호까지~      

     

     hash_id가 6으로 다시 변한걸 볼 수 있다.



7.사용자 그룹 관리 파일 (/etc/group)

•확인
     - [root@localhost ~]# cat /etc/group

     

     grep -w에 -w는 저 단어 그대로 찾아라 라는 뜻이다.

     ①root ②:x ③:0 ④:
     




7.사용자 그룹 관리 파일 (/etc/gshadow)

•확인
     - [root@localhost ~]# cat /etc/gshadow

     

     gshadow확인

     ①root ②: ③: ④:
     




7.사용자 계정 및 그룹

•사용자 계정 및 그룹 관리 명령어
     




7.사용자 계정 관리 명령어 (useradd=adduser)

•용도
     - 사용자 계정 생성

•사용법
     - [root@localhost ~]# useradd [옵션] [계정 이름]
     - 옵션을 설정하지 않으면 “/etc/default/useradd”에 지정된 기본 값으로 생성 됨
     

     test계정 생성
     


     계정확인
     

     홈디렉터리 home 생김 bash쉘을 사용해서 로그인하도록 되어있다.

     

     shadow로 확인중..  7 -> 유예기간
     
     계정만료일 설정을 해보겠다. -e 사용
     


     

     확인가능

     
     
     
•/etc/default/useradd
     - useradd명령으로 계정을 생성할 때 설정되는 기본 정책이 설정된 파일

•확인
     - [root@localhost ~]# cat /etc/default/useradd

     

     

     INACTIVE 에 -1이 있는건 만료일은 안쓰겠다는 것.

     vim으로 들어가서
     

     

     0이면 계정못쓰게 바로 막아버리겠다.
     3일 주려면 3넣으면 된다.
     
     

     패스워드 만료일을 16년 03월 01로 하겠다.
     기본쉘을 sh로 바꾸겠다.
     :wq 누르고 종료
     
     

     mail을 확인 할 수 있다. mail있는 사람도 있고 없는 사람도 있다.
     mail을 안받으려면 위에 vim에서 맨아래 no로 바꾸고 기존 계정에 있는 메일을 지우려면

     

     를 입력해주면 된다. (dev 장치 디렉터리, null은 데이터가 폐기되는 쓰레기통이라고 생각해도 된다.)

     

     계정하나 더 만들어주고 확인! 기본쉘 바뀐거 확인할수 있다.

     

     shadow명령을 이용해서 차이점 확인!!

   
•/etc/login.defs
     - 시스템에서 생성되는 전체 사용자 계정의 기본 정책이 설정된 파일

•확인
     - [root@localhost ~]# cat /etc/login.defs
     
     

     

    

     

     주석 풀려있는건 설정을 바꿀 수 있는 환경설정 값이다.
     환경설정 목록중에 사용하기 싫은것은 주석처리 하면 된다.
     발송되는 mail의 기본 저장되는 디렉터리도 변경할 수 있다.
     PASS_MIN_LEN은 값을 바꿔도 안바뀐다.
     왜냐면 리눅스 자체 패스워드 프로그램이 있어서임..
     패스워드 길이 바꾸려면 리눅스 보안 프로그램에서 환경설정을 바꿔야 한다.
     
     

     UMASK는 권한 (권한은 뒤에서 배운다) -> 홈디렉터리의 기본권한이라고 생각하면 된다!
     밑에 3개 노란색 글자 부분은 암호 부분이다.
     md5로 바꾸면 SHA512가 md5로 바뀌고 맨아래 no가 yes로 바뀐다.



7.사용자 계정 관리 명령어 (usermod)

•용도
     - 사용자 계정의 설정 변경

•사용법
     - [root@localhost ~]# usermod [옵션] [계정명]
     

    
     test계정 확인하고 group도 확인한다. ktest의 group도 확인해본다.
     test 그룹에 ktest 그룹을 넣어줄것이다.
     test에 권한을 바꿔주면 ktest계정에도 똑같이 권한이 적용된다.
     




7.사용자 계정 관리 명령어 (passwd)

•용도
     - 사용자 계정의 패스워드 생성 및 설정 변경

•사용법
     - [root@localhost ~]# passwd [옵션] [계정명]
      


     

     관리자 계정에서 test계정의 비밀번호를 삭제하겠다.
     GUI 모드에서도 바로 확인가능하다!

     

     test1의 계정의 비밀번호를 변경할 수 있다.

     

     ktest계정으로 푸티 실행하고 test1계정으로 접근해서 바뀐 비밀번호를 넣으면 로그인성공한다!
     exit 치면 기존 계정으로 돌아갈 수 있다.

     

     root 계정에서 계정을 잠글 수도 있다.

     

     ktest에서 접근이 되지 않는다.

     

     root계정에서 비밀번호 잠금을 해제 할 수 있다.
     물론 ktest에서도 다시 정상 로그인을 할 수 있다.

     

     test1계정의 비밀번호 기본 정책을 확인할 수 있다.
     암호화에 대한 기본설정은 기본설정파일에 있다.
     자세한 설정 변경하려면 아래 명령어로 ~!
     

7.사용자 계정 관리 명령어 (chage)

•용도
     - 사용자 계정의 패스워드 설정 변경

•사용법
     - [root@localhost~]# chage [옵션] [계정명]
     


     실습!
     패스워드를 5일 이후에 변경할 수 있도록 하고, 100일 이내에 변경해야만 하도록 설정하며, 
     만기일 10일 이전에 패스워드 변경을 하도록 메시지를 보내고,
     계정의 사용은 2016/02/20까지로 제한
     (test 계정)
     
     

     
     확인
     

     패스워드 마지막 변경날짜
     패스워드 만료일 -> 100일 후
     패스워드 유예기간 : 기본정책 그대로 따라와서 never
     계정 만료일 : 2016/02/20 확인
     패스워드 최소 유지일 : 5일
     패스워드 최소 사용해야되는 일 : 100일
     패스워드 만료에 대한 경고일(메세지보냄) : 10일 이전
     
     

7.사용자 계정 관리 명령어 (userdel)

•용도
     - 사용자 계정 삭제

•사용법
     - [root@localhost ~]# userdel [옵션] [계정명]
     




7.사용자 그룹 관리 명령어 (groups)
     
•용도
     - 사용자 그룹의 정보 확인

•사용법
     - [root@localhost ~]# groups [계정명]
     - 계정명을 지정하지 않으면 현재 계정의 사용자 그룹 정보를 확인 함
     - 계정명을 지정하면 지정된 계정의 사용자 그룹 정보를 확인 함

     




7.사용자 그룹 관리 명령어 (groupadd)

•용도
     - 사용자 그룹 생성

•사용법
     - [root@localhost~]# groupadd [옵션] [계정명]
     

     
      gtest1의 사용자 그룹을 만들것이다.
      

     

     확인또한 가능
     
     그룹 하나 더 만들것임. gtest2 그룹으로.!
     


     

     1000번에 gtest3을 만들라고 하는데 이미 gid가 있다고 메세지 나옴
     그래서 중복 허용해줄거임 ㅇㅇ

     


     gtest2랑 gtest3이랑 1000번으로 중복되어있음
     groupadd -og 사용!!!

     
     500번 아래로 gid를 정의 하려면 -r옵션을 사용할 수 있다.
     
     

     왜 499부터 쓸수 없었나 보려고 했는데 이미 다른 그룹명을 가지고 있었음
     곧 -r옵션으로 gid 주려고 하면 사용할 수 있는 최대 gid를 가질 수 있다.
     


7.사용자 그룹 관리 명령어 (groupmod)

•용도
     - 사용자 그룹의 설정 변경

•사용법
     - [root@localhost~]# groupmod [옵션] [계정명]
     

     

     

     groupmod는 그룹 gid변경도 할수 있고 중복 gid변경도 허용 가능하다!!!!!



7.사용자 그룹 관리 명령어 (gpasswd) (일반적으로 그룹의 비밀번호를 주지 않는다, gpasswd는 관리자 지정 및 추가랑 소속원 추가 및 사용을 주로 사용한다.)

•용도
     - 사용자 그룹의 패스워드 설정
     - 사용자 그룹의 관리자 지정 및 추가
     - 사용자 그룹의 멤버 추가 및 삭제

•사용법
     - [root@localhost~]# gpasswd [옵션] [계정이름] [그룹 이름]
     

     
     root계정에서 2차 그룹을 생성해준다~ 
     그리고 ktest랑 test를 리눅스 그룹에 소속시켜보자~
     

     
     ktest를 리눅스 그룹의 관리자로 지정해 줄꺼야~
     그래서 test계정을 빼버릴꺼야 ~
     먼저 ktest계정을 하나 켜주고!
     test계정을 지우려면 권한이 없어서 test계정을 지울수가 없다.
     다시 root계정으로 들어가서 ktest계정에 권한을 준다!!
     

     ktest가 권한업 된것을 확인!

     

     test계정을 지울수 있다.



7.사용자 그룹 관리 명령어 (groupdel)
     
•용도
     - 사용자 그룹 삭제

•사용법
     - [root@localhost~]# groupdel [그룹 이름]

     

     이상태에서

     

     test1을 지우려고 하면 안지워진다. 왜냐하면 test2가 이차그룹으로 있기 때문!!
     그래서 되도록이면 이차그룹으로 그룹만들어서 사용해라~



7.사용자 계정 관리 파일 (/etc/skel)

•용도
     - 사용자 계정의 홈 디렉터리에서 제공 할 기본 환경설정 파일의 위치 지정
     - 사용자 계정을 생성 했을 때 홈 디렉터리에 복사될 파일의 위치가 지정 됨
     - 사용자 홈 디렉터리의 초기 환경 제공을 위해 사용 됨

•확인
     - [root@localhost~]# ls /etc/skel
     
     

     기본 환경설정 파일들이 포함되어 있다.
     
     

     계정생성할때마다 skel에 있는 파일들이 자동생성된다!

     실습!~
     

     skel 디렉터리에 111, 222, 333 파일을 생성해준다!

     

     skel_test라는 계정을 생성해보자

     

     확인해보면 111, 222, 333이 있는걸 확인할 수 있다.

     새 계정을 만들때마다 skel에 있는 파일이 배포됨을 확인할 수 있다.
     그래서 주로 환경설정 파일이나, 메뉴얼들이 저장되있다.

      

7.사용자 계정 관리 실습

User : testuser
UID : 1200
GID : tg (tg라는 그룹을 만들어야됨 1차 그룹으로 지정)<- 미리 해야하는 작업
Shell : sh
HOME : /hosting
Skel : /skelsam
Auto Creating Directory : public_html
Auto Creating File : .sam

1.모든 작업은 root 계정으로 root의 홈 디렉터리 경로에서 설정
2.계정 생성은 옵션을 이용해서 한 줄로만 작업할 것
3.모든 작업이 완료된 후 검사 받고 작업한 내용 삭제할 것

실습 명령어
groupadd tg
mkdir /hosting
mkdir /skelsam
cp -r /etc/skel/ /skelsam/
ls -a  /skelsam/
mkdir /skelsam/public_html
touch /skelsam/.sam
useradd -u 1200 -g tg -s /bin/sh -d /hosting/testuser -mk /skelsam testuser

확인과정
cat /etc/passwd
ls -a /hosting/testuser



7.vi editor & 사용자 계정 관리 실습 (숙제!!)

1./etc/inittab 파일을 최 상위 디렉터리로 복사
2.vi로 /inittab 파일을 열고 vi 편집기를 이용해 /home/ktest 디렉터리에 크기가 0인 파일 a, b, c, d, e를 만든 후 /inittab의 20번째 라인 밑에 /home/ktest 디렉터리의 파일내용을 삽입
3.파일 안에 있는 내용 변경 : etc -> secret, init -> sleep  
4.5 ~ 12 번째 라인을 2번째 라인 밑에 복사
5.편집중인 파일을 /test 디렉터리 밑에 sam.test 파일 명으로 저장
6.현재까지 작업한 모든 내용을 새로운 파일(/usertest/sample)로 저장하고 vi를 종료
7.위에서 만든 파일(sample)과 동일한 내용을 가지는 파일을 ktest 사용자의 home 디렉터리에secret 이라는 파일 명으로 생성
8.위에서 만든 secret 파일을 vi로 열고 5번째 줄 밑에 리눅스의 IP 출력 내용을 삽입한 후, linux 사용자의 home 디렉터리에 final 파일명으로 저장하고 vi를 종료
9.사용자 홈 디렉터리의 생성 위치가 /export/home/ 인 test1 사용자 계정 생성
10. linux 계정의 홈 디렉터리의 위치를 /export/home/으로, shell 을 tcsh로 변경
11. /etc/skel 디렉터리의 내용을 /samskel로 복사한 후, skel 디렉터리가 /samskel인 user2 생성하되계정 생성 후 홈 디렉터리에 public_html 이름의 디렉터리 생성
12. user2 의 그룹을 ktest 그룹으로 변경

하얀모자의 whitehat

'▶ 웹기반 정보보안 과정 > Linux' 카테고리의 다른 글

160217 11번째강의 - 2  (0) 2016.02.18
160217 11번째강의 - 1  (0) 2016.02.18
160215 아홉번째강의 - 2  (0) 2016.02.16
160215 아홉번째강의 - 1  (0) 2016.02.16
리눅스(Linux) - 리다이렉션  (0) 2016.02.14

}