정신없는 연초를 보내고 왔습니다. 학회참여 + 설날 + 주거지 이동(자취방 옮기기) 3연타로 인해서, 1월이 벌써 훌쩍 가버렸네요. 제 마지막글도 벌써 2주전입니다. 반성해야겠습니다.

대단한 학회를 참여하고 온것은 아님니다. 하지만, 영어로 발표하는 자리였기 때문에, 영어 스크립트 작성과 발표자료 만드는데 시간을 많이 쓴것 같습니다. ( 이것이 대학생 ..!?)
여튼, 저번글에 이어서 졸업작품기를 기록해보려고 합니다.
연구실 내의 WorkStation에 Ubuntu Server 설치에 성공했고, 계정생성과 Ubuntu Server내의 간단한 보안설정을 해주었다. 제일 먼저 해주었던 게, 계정생성이다.
리눅스의 계정 시스템은 복잡하다 . 우리가 웹페이지에서 사용하는 "사용자 계정"의 의미의 계정이 아니다. 계정 시스템은 복잡하기 때문에, 모든 내용을 다루기 보다는 사용하는데 필요한 3가지만 짚고 갈거다.
- 계정이 관리 되는 곳
- 계정 생성방법 , 삭제방법
- 계정 권한
계정은 /etc/passwd 폴더에서 관리하게 된다. 물론, 이 외에도 다양한 환경설정 파일들을 참고해서 계정 시스템이 작동하게 된다. 대표적으로 /etc/shadow , /etc/login.defs 등 파일이 있을 수 있다. cat 명령어를 통해서, /etc/passwd를 까보자. 이 파일은 모든 사용자에게 read 권한이 있다.

읽는 방법은 아래와 같다.
로그인ID : X : UID : GID : 설명 : 홈 디렉토리 : 로그인 쉘
예를들어, mail이라는 아이디는 UID 8번이고, GID도 8번이고, mail이라는 설명이 있고, nologin 쉘으로 처음으로 접속하게 된다. 각각의 필드가 무엇을 의미하는지 궁금할 수 있지만 할 이야기가 많기 때문에 이정도로 하고 넘어가자!
리눅스의 계정은 /etc/passwd에서 관리가 된다. 그렇다면, 사용자 추가는 어떻게 할 수 있을까
2가지 명령어가 있다.
- useradd 유저명
- adduser 유저명
useradd는 일단 계정을 만들고, 그 뒤로 하나하나씩 설정을 해주고, adduser는 계정 만드는 과정에서 모두 설정을 한 뒤, 계정을 생성한다. 나는 adduser를 쓸거다! useradd의 설정을 하나하나 해주는 작업이 감성있긴 하지만, 너무 반복적인 작업이라 비효율적이다. 상어의 친구 고래를 생성해주었다.

useradd는 만들어준뒤, 홈 디렉터리를 생성해주고, 권한을 부여해주고, 쉘을 지정하는 등을 다 직접 해줘야하기 때문에, 커스텀이 목적이 아니라 사용하는 계정을 생성하는 거라면 adduser를 쓰자.
계정 삭제하는것도 userdel과 deluser가 있는데, 이건 진짜 문법적인 차이외에 별 차이가 없다.

삭제가 성공적으로 되었단 걸 볼 수 있다.

리눅스 계정에는 루트계정, 시스템 계정,사용자 계정 3개의 사용자가 있으며, 계정은 이 사용자의 종류에 따라 권한을 부여받게 된다. 기본적으로 루트계정은 모든 파일,계정에 대한 수정,삭제,읽기 권한이 있다. 그리고 계정이 파일의 "소유권"을 나타내기도 한다.
Permission에 관한 부분은 "파일"에 더 종속적이므로 기억해야할건
루트계정이 엄청 막강한 권력을 가지고 있다라고 생각하고 있으면 된다.
이제 보안설정을 한 내용을 다루어 볼거다. 당연히 방화벽, IPS 등의 보안장비가 없기 때문에, OS에서 할 수 있는 최소한의 보안설정을 해보았다.

- 비밀번호 어렵게 만들기
- root 계정 접근막기
- 접속횟수 초과시 계정 잠구기
- SSH 보안설정
- Fail2Ban 다운로드
- ufw 설정하기
특수문자와 영어대문자,숫자를 아무런 규칙성없이 섞어서 썼다. 충분히 어려운 비밀번호로 만들었고, 주기적으로 바꾸면서 관리해주면 된다.
원격접속으로 root 계정을 접근하거나, 일반계정에서 root 계정 자체로의 접근을 막아야한다. root 계정의 연결 쉘을 nologin shell로 바꾸어줬다.
login.defs 파일을 수정해서, 접속횟수를 3회로 줄였다.
google에 openssh basic secure setting 이라고 쳐서, 여러가지 관련된 설정을 해주었습니다.
- SSH Port Number 변경해주기
- SSH를 통해서 root 계정 접근막기
- Empty Password 막기
- SSH Protocol 2만 쓰기
위의 모든 과정은 연구실 내에 문서화해서 보관했습니당.
이거 파일로 만들어서 보관하기 보다, 연구실 내에 하나의 홈페이지를 만들어서, 파일 공유하고 .. 여러가지 기능을 할 수 있는 홈페이지를 만들어 봐야겠군용.
계정관리문서, 연구실 IP 현황(Network Topology 문서화) , 최소한의 보안모듈이 준비된 서버
학교에 공인 IP 서버 요청하기, 서비스 요청하기
네트워크 인터페이스 설정
연구실 Network Topology 문서화
Scaling 준비하기