티스토리 뷰
<서버 구성>
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이라는 그룹으로 분류하여 관리한다.
초기 계정 생성 시 adminkisec으로 했기 때문에 [그림 1]과 같이 sudo그룹에 adminkisec이 기본적으로 속해있다. 이는 이미 adminkisec이 root의 권한으로 명령을 실행할 수 있는 권한을 갖고 있다는 것을 의미한다.
* sudo : 다른 사용자의 권한으로 명령 실행
useradd 명령어를 이용하여 kisec, kisec2, kisec3 계정을 추가했다.
* useradd : 사용자 추가
-m : 사용자의 홈 디렉토리 생성 (adduser 명령어 사용 시 홈 디렉토리는 자동으로 생성된다.)
-s : 새 계정의 셸 지정
초기 계정 생성 시 kisec, kisec2, kisec3의 그룹 넘버는 각각 1001, 1002, 1003이므로 서로 다른 그룹에 위치해 있다.
usermod 명령어를 이용하여 kisec2, kisec3 계정을 kisec 그룹으로 분류했다. kisec2, kisec3 계정의 그룹 넘버인 1002, 1003을 모두 1001로 바꾸는 방식으로도 그룹화가 가능하지만, -a -G 명령어를 이용하면 원래 계정이 속해 있던 그룹을 굳이 수정하지 않고도 새로 그룹을 추가해서 분류할 수 있기 때문에 이 방법으로 진행했다.
* usermod : 사용자 수정
- a : 기존 그룹에 추가
- G : 새로운 그룹 추가
2. ssh 통신은 보안상 root는 접속이 불가하도록 구성하고 ssh로 로그인 시 보이는 시스템 정보는 안보이도록 구성한다.
apt-get(Advanced Packaging Tool)은 우분투(Ubuntu)를 포함한 데비안(Debian) 계열의 리눅스에서 쓰이는 패키지 관리 명령어 도구이다. apt-get은 인덱스를 갖고 있는데 이 인덱스는 /etc/apt/sources.list에 저장되어 있다.
* apt-get update : /etc/apt/sources.list에서 사용할 패키지의 정보를 얻음
vi 모드를 사용하기 위해 vim을 설치해 주고, ssh 패키지도 설치한다.
* apt-get install [패키지 이름] : 패키지 설치
dpkg 명령어를 이용하여 ssh가 잘 설치되었는지 확인한다. [그림 7]의 맨 아래에 ssh가 설치되어 있음을 알 수 있다.
* dpkg -l [패키지 이름] : 패키지가 설치되었는지 확인
systemctl 명령어를 이용하여 ssh가 active인 상태임을 확인한다.
* systemctl : 시스템, 서비스 매니저를 제어하는 명령어
root의 로그인을 막기 위해 ssh 설정 파일에 들어간다.
root의 로그인을 허가하지 않는다는 의미로 'PermitRootLogin no'를 입력한다. 여기서 주의할 점은 맨 앞에 #이 붙으면 주석 처리되기 때문에 유효한 설정이 될 수 없다는 것이다.
ssh 로그인 시 보이는 시스템 정보를 보이지 않게 구성하기 위해 rm 명령어를 이용하여 삭제한다. 맨 뒤의 *이 의미하는 것은 * 앞의 시스템 정보를 '전부' 삭제하겠다는 것이다.
지금까지 바꾼 설정으로 ssh를 restart해준다.
[그림 13,15] ssh 설정 바꾸기 전 putty 창 (캡처해두는 것을 잊어버림.. 추가 필요)
ssh 설정을 바꾼 후에는 ssh 통신에서 root의 접속이 불가하다.
ssh 설정을 바꾼 후에는 로그인을 했을 때 원래 나타났던 시스템 정보가 드러나지 않음을 알 수 있다.
3. 내부자의 계정 생성 시(kisec4) 기본적으로 생성되는 파일 외에 tmp라는 디렉토리가 생성되도록 구성한다.
/etc 내부에 kisec_group_skel이라는 디렉토리를 생성하였고, 이 디렉토리 내부에 useradd 명령어를 이용하여 내부자의 계정(kisec4)을 추가했다.
sudo 권한으로 cp 명령어를 이용하여 /etc/skel/ 디렉토리의 내용을 /etc/kisec_group_skel/로 복사해준다. (이 과정을 생략하면 kisec_group_skel 하위 디렉토리 생성이 불가하다. ) 이후 /etc/kisec_group_skel/의 하위 디렉토리 tmp를 생성한다.
* cp : 복사하기
4. 각 계정의 홈디렉토리는 각각의 계정만 파일을 생성할 수 있도록 구성하고 tmp라는 디렉토리는 내부자끼리는 공통으로 사용할 수 있는 공간으로 구분한다.
각 계정의 홈디렉토리가 각각의 계정만 파일을 생성할 수 있게 하기 위해 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의 권한을 받아서 수정할 수 있도록 구성한다.
/tmp에 readme.txt 파일을 생성한 후 파일의 초기 권한이 664인 것을 확인했다.
user가 임시로 adminkisec의 권한을 받아 readme.txt를 수정할 수 있게 chmod 명령어로 SetUID를 설정했다. chgrp 명령어를 이용하여 readme.txt의 그룹을 adminkisec에서 kisec으로 바꾸어 내부자들끼리 읽을 수 있게 해준다.
[그림 21]에서 SetUID가 제대로 나타나지 않아서 다시 chmod 명령어를 썼더니 해결되었다.
- Total
- Today
- Yesterday
- c언어
- Document Object Model
- Browser Object Model
- long
- bom
- window 객체
- keyword
- 키워드
- 컴파일
- Navigator 객체
- gcc
- DOM
- 변수
- 리액트 #React #props #state #javascript
- Char
- location 객체
- stdio.h
- 자료형
- History 객체
- short
- int
- Screen 객체
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |