티스토리 뷰

카테고리 없음

7/9(금) 과제

ljy98 2021. 7. 13. 07:43

<서버 구성>
Ubuntu 20.04
계정 : adminkisec, kisec2, kisec3 (+kisec4)
1. adminkisec은 특수한 내부 계정으로 root의 권한으로 명령을 실행할 수 있는 권한을 갖는 계정이다.

kisec2, kisec3의 계정은 내부자의 계정으로 kisec이라는 그룹으로 분류하여 관리한다.
2. ssh 통신은 보안상 root는 접속이 불가하도록 구성하고 ssh로 로그인 시 보이는 시스템 정보는 안보이도록 구성한다.
3. 내부자의 계정 생성 시(kisec4) 기본적으로 생성되는 파일 외에 tmp라는 디렉토리가 생성되도록 구성한다.
4. 각 계정의 홈디렉토리는 각각의 계정만 파일을 생성할 수 있도록 구성하고 tmp라는 디렉토리는 내부자끼리는 공통으로 사용할 수 있는 공간으로 구분한다.
5. /tmp에 내부자들끼리 읽을 수 있도록 readme.txt라는 파일을 생성하고 수정사항이 있는 경우 임시로 adminkisec의 권한을 받아서 수정할 수 있도록 구성한다.


1. adminkisec은 특수한 내부 계정으로 root의 권한으로 명령을 실행할 수 있는 권한을 갖는 계정이다. 
     kisec2, kisec3의 계정은 내부자의 계정으로 kisec이라는 그룹으로 분류하여 관리한다. 

[그림 1] cat /etc/group 후의 모습

초기 계정 생성 시 adminkisec으로 했기 때문에 [그림 1]과 같이 sudo그룹에 adminkisec이 기본적으로 속해있다. 이는 이미 adminkisec이 root의 권한으로 명령을 실행할 수 있는 권한을 갖고 있다는 것을 의미한다.

* sudo : 다른 사용자의 권한으로 명령 실행

 

[그림 2] kisec, kisec2, kisec3 계정 생성

useradd 명령어를 이용하여 kisec, kisec2, kisec3 계정을 추가했다.

* useradd : 사용자 추가

   -m : 사용자의 홈 디렉토리 생성 (adduser 명령어 사용 시 홈 디렉토리는 자동으로 생성된다.)

   -s : 새 계정의 셸 지정 

 

[그림 3] 각 계정의 초기 그룹

초기 계정 생성 시 kisec, kisec2, kisec3의 그룹 넘버는 각각 1001, 1002, 1003이므로 서로 다른 그룹에 위치해 있다.

 

[그림 4] kisec2, kisec3 계정을 kisec 그룹으로 그룹화

usermod 명령어를 이용하여 kisec2, kisec3 계정을 kisec 그룹으로 분류했다. kisec2, kisec3 계정의 그룹 넘버인 1002, 1003을 모두 1001로 바꾸는 방식으로도 그룹화가 가능하지만, -a -G 명령어를 이용하면 원래 계정이 속해 있던 그룹을 굳이 수정하지 않고도 새로 그룹을 추가해서 분류할 수 있기 때문에 이 방법으로 진행했다.

* usermod : 사용자 수정

  - a : 기존 그룹에 추가

  - G : 새로운 그룹 추가

 

 

2. ssh 통신은 보안상 root는 접속이 불가하도록 구성하고 ssh로 로그인 시 보이는 시스템 정보는 안보이도록 구성한다. 

[그림 5] apt-get update

apt-get(Advanced Packaging Tool)은 우분투(Ubuntu)를 포함한 데비안(Debian) 계열의 리눅스에서 쓰이는 패키지 관리 명령어 도구이다. apt-get은 인덱스를 갖고 있는데 이 인덱스는 /etc/apt/sources.list에 저장되어 있다.

* apt-get update : /etc/apt/sources.list에서 사용할 패키지의 정보를 얻음

 

[그림 6] vim과 ssh 설치

vi 모드를 사용하기 위해 vim을 설치해 주고, ssh 패키지도 설치한다.

* apt-get install [패키지 이름] : 패키지 설치

 

[그림 7] ssh 설치 확인

dpkg 명령어를 이용하여 ssh가 잘 설치되었는지 확인한다. [그림 7]의 맨 아래에 ssh가 설치되어 있음을 알 수 있다.

* dpkg -l [패키지 이름] : 패키지가 설치되었는지 확인

 

[그림 8] ssh 상태 확인

systemctl 명령어를 이용하여 ssh가 active인 상태임을 확인한다.

* systemctl : 시스템, 서비스 매니저를 제어하는 명령어

 

[그림 9] ssh 설정 파일

root의 로그인을 막기 위해 ssh 설정 파일에 들어간다.

 

[그림 10] ssh 설정 파일 - 2

root의 로그인을 허가하지 않는다는 의미로 'PermitRootLogin no'를 입력한다. 여기서 주의할 점은 맨 앞에 #이 붙으면 주석 처리되기 때문에 유효한 설정이 될 수 없다는 것이다.

 

[그림 11] update-motd.d로 시스템 정보 삭제

ssh 로그인 시 보이는 시스템 정보를 보이지 않게 구성하기 위해 rm 명령어를 이용하여 삭제한다. 맨 뒤의 *이 의미하는 것은 * 앞의 시스템 정보를 '전부' 삭제하겠다는 것이다.

 

[그림 12] 변경된 ssh 설정을 재시작

지금까지 바꾼 설정으로 ssh를 restart해준다.

 

[그림 13,15] ssh 설정 바꾸기 전 putty 창 (캡처해두는 것을 잊어버림.. 추가 필요)

[그림 14] ssh 설정 바꾼 후 putty 창 - root

ssh 설정을 바꾼 후에는 ssh 통신에서 root의 접속이 불가하다.

 

[그림 16] ssh 설정 바꾼 후 putty 창 - adminkisec

ssh 설정을 바꾼 후에는 로그인을 했을 때 원래 나타났던 시스템 정보가 드러나지 않음을 알 수 있다.

 

 

3. 내부자의 계정 생성 시(kisec4) 기본적으로 생성되는 파일 외에 tmp라는 디렉토리가 생성되도록 구성한다. 

[그림 17] 디렉토리 및 내부자 계성 생성

/etc 내부에 kisec_group_skel이라는 디렉토리를 생성하였고, 이 디렉토리 내부에 useradd 명령어를 이용하여 내부자의 계정(kisec4)을 추가했다. 

 

[그림 18] /etc/skel/ 디렉토리 복사 후 tmp 생성

sudo 권한으로 cp 명령어를 이용하여 /etc/skel/ 디렉토리의 내용을 /etc/kisec_group_skel/로 복사해준다. (이 과정을 생략하면 kisec_group_skel 하위 디렉토리 생성이 불가하다. ) 이후 /etc/kisec_group_skel/의 하위 디렉토리 tmp를 생성한다.

* cp : 복사하기

 

 

4. 각 계정의 홈디렉토리는 각각의 계정만 파일을 생성할 수 있도록 구성하고 tmp라는 디렉토리는 내부자끼리는 공통으로 사용할 수  있는 공간으로 구분한다. 

[그림 19] 각 계정의 디렉토리 권한 바꾼 후 공통 사용공간 구분

각 계정의 홈디렉토리가 각각의 계정만 파일을 생성할 수 있게 하기 위해 chmod 명령어를 이용하여 kisec2, kisec3 각 user의 권한은 7, group의 권한은 0, other의 권한도 0이 되게 한다. 각 user는 읽기, 쓰기, 실행 모두 가능하고, group과 other는 읽기, 쓰기, 실행이 모두 불가능하다는 의미이다. /home/kisec4와 /home/kisec4/tmp는 user와 group이 읽기, 쓰기, 실행 권한을 모두 갖도록 설정했다. 이후 처음 그룹화된 kisec을 /home/kisec4로 바꿔줌으로써 tmp 디렉토리를 내부자끼리 공통으로 사용할 수 있도록 구성했다.

* chmod : 파일이나 디렉토리의 파일 시스템 모드를 바꿈

 


5. /tmp에 내부자들끼리 읽을 수 있도록 readme.txt라는 파일을 생성하고 수정사항이 있는 경우 임시로 adminkisec의 권한을 받아서 수정할 수 있도록 구성한다.

[그림 20] tmp에 readme.txt파일 생성

/tmp에 readme.txt 파일을 생성한 후 파일의 초기 권한이 664인 것을 확인했다.

 

[그림 21] readme.txt 파일 권한 바꾸기

user가 임시로 adminkisec의 권한을 받아 readme.txt를 수정할 수 있게 chmod 명령어로 SetUID를 설정했다. chgrp 명령어를 이용하여 readme.txt의 그룹을 adminkisec에서 kisec으로 바꾸어 내부자들끼리 읽을 수 있게 해준다.

 

[그림 22] chmod 재입력

[그림 21]에서 SetUID가 제대로 나타나지 않아서 다시 chmod 명령어를 썼더니 해결되었다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함