ilreme's blog
article thumbnail

 시스템을 운영하는 운영자의 기본은 사용자의 관리라고 할 수 있어요. 하지만 대부분 마이크로소프트의 윈도우 환경에 적응된 우리들은 사용자에 대한 관리는 왠지 어렵고도 귀찮은 부분이지만 시스템 보안 입장에서는 상당히 위험해요. 

 그래서 근래의 출시된 Vista, Windows 7 에서는 이런 사용자 관리 부분도 많이 강화된 느낌이 있지요? 특히나 사용자 콘트롤 같은 기능들은 아주 오랜 옛날부터 사용된 솔라리스의 pfexec, 리눅스의 su sudo 명령과 비슷한 느낌이에요.

 멀티 유저 환경을 위해 개발된 솔라리스에서는 두번 말해도 입아프지 않은 사용자 보안 관리에 기초에 대해서 꼭 배워야 하겠죠?

다음과 같은 순서로 포스팅을 할 예정이에요

1. 시스템 엑세스 모니터링
2. 시스템에서 사용자 전환
3. 시스템 엑세스 제어
4. 파일의 데이터 엑세스 제한


( 위에 처럼 이렇게 늘어 놓으니 왠지 어려워 보이져? 뭐 쉽게 표현하면 이렇답니다. )

1. 컴퓨터에 접근하는 사용자들 살펴 보기
2. 다른 컴퓨터에 접근할때 다른 사용자로 변신하기
3. 컴퓨터에 들어오게 할지, 말지? 하기
4. 컴퓨터의 파일들을 사용자들끼리 다르게 보이기~

이렇게 써도 뭔말 인지 모르겠다구요? ^^ 이렇게 4개를 해보고 난다면 쉽게 이해 할 수 있을꺼에요.

 자 그럼 첫번째로 우리 솔라리스 시스템에 엑세스한 유저들을 모니터링을 위한 간단한 who, rusers, finger,last 명령어에 대해서 알아 보도록 해요.


1) 로컬시스템의 사용자 보기 - who 명령어


who 명령어를 실행하면 위와 같이 시스템에 접속한 각 사용자의 로그인 이름, 로그인 장치(tty포트) 로그인 날짜와 시간등이 표시 되요.
제목에 나온것처럼 로컬시스템에 연결된 사용자를 볼 수있는 명령어에요.

출력결과의 2번째 열에 나오는 pts/1 console .. 등 등의 의미는 다음과 같아요.

pts - 로그인 세션이나 창 세션을 표현하는 가상 장치
console - 시스템 메시지(부팅, 오류메시지)를 표시하는 장치
Term - 시리얼포트에 직접 연결되어 있는 장치

음.. pts는 조금 이해가 안되실 수도 있는데 쉽게 말해 가상의 연결장치 라고 생각하면 되요.
가상이라고 하여도 하나의 물리적인 장치와 같기 때문에 접근한 세션에서 #tty 명령어를 사용하게 되면 /dev/pts/숫자 형태로 나타난답니다.


2) 원격 시스템의 사용자 보기 - rusers 명령어


rusrs 명령어는 원격시스템의 사용자를 볼 수 있는 명령어에요. 이 명령어를 실행하면 로컬 시스템은 물론 원격 시스템에서 로그인한 사용자들의 로그인 목록이 표시가 되요.

출력 순서는 로그인한 시스템 이름, 로그인장치(tty포트), 로그인 일시, 유휴시간, 로그인 호스트 이름 순으로 표시된답니다.

그럼 한번 출력의 결과를 한번 읽어 볼까요?

출력결과의 2번째 열에 보면 RJ란 호스트가 root 유저로 203.234.247.20의 시스템에서 2월 12일 10시 41분 로그인하여 3:43분 동안 유휴 상태로 있다는걸 알 수 있겠지요?
이렇게 직접 실습해 보도록해요.

*깊이 알기*
이렇게 rusers 명령을 통해 원격사용자의 정보까지 알 수 있는 것은 rpc.rusersd 라는 데몬 덕분인데요. rusers 명령을 실행하게 되면 연결된 모든 네트워크에 브로드케스트 요청에 대해서 각각의 시스템들의 데몬이 정보를 알려주기 때문이에요.

하지만 보안을 위해 자신의 정보를 주지 않기 위해서는 쉽게 svcadm 명령어로 앞서 말한 rpc.rusersd 데몬을 강제로 disable 해주면 된답니다.

쉽죠?

3) 사용자 정보 보기 - finger 명령어

시스템에 접속한 유저들을 알았으니 이제는 그 유저들의 사용자 정보를 알아보는 작업을 알아 보기로 해요.


finger 명령어를 사용하게 되면 세부정보를 볼 수 있는데요. 로컬은 물론 원격 사용자의 정보까지 알 수 있어요.

사용 방법은 위의 예시처럼 finger 명령어에 뒤에 로그인유저이름@호스트이름 이라고 해주면 되요.

*깊이 알기*
rusers의 브로드케스트에 응답하는 rpc.rusersd 데몬처럼 finger 도 in.fingerd 데몬이 그런 역활을 해주는데요.

보안을 위해 내 정보를 보여주기 싫다면?
inetadm -d finger 명령을 통해서 정보를 주지 않을 수 있어요.

4) 로그인 작업 기록 보기

어떤 유저들이 내 시스템에 들어왔었는지에 대한 최근 목록을 간단히 보려면 last 명령어를 이용해요.


이 명령어를 실행하면 가장 최근에 로그인한 작업순으로 출력이 되는데요.
위의 항목은 사용자 이름, 로그인 장치, 사용자가 로그인한 호스트, 사용자가 로그인한 시간, 로그아웃한 시간, 총 로그인 시간이 차례로 되는거에요.

그렇다면 sun59.sun.co.kr 의 총 로그인 시간은 어떻게 될까요? ^^

그리고 last 명령 뒤에 호스트명을 써주면 특정 호스트에 대한 결과도 볼 수 있어요.
#last ilreme
이렇게 해두면 ilreme 호스트에 대한 로그인 로그아웃 정보를 표시해주겠지요?

#last -n 5 reboot 이라는 명령을 써주게 되면
시스템의 최근 reboot 정보를 최근부터 5개까지 보여주게 되요.
-n 옵션이 출력의 갯수를 정하는 것이라는것! 꼭 기억해두세요.

이렇게 간단한 시스템 사용자 엑세스에 대한 모니터링을 알 수 있어요.
그럼 다음 시간에는 시스템 사용자 전환에 대해서 계속 포스팅을 해볼께요.