OS/Linux2009. 6. 1. 09:59


문서에 기술할 내용을 체크

Linux

 

2) 정리할 내용의 주제

리눅스 보안

 


3) 구현을 위한 서버 및 장비 구성

리눅스 운영체제가 설치되어있는 컴퓨터 한 대

 


4) 사용하는 이유 및 대략적인 설명

                        여러가지 상황에 대한 리눅스 보안

 

● 일반 유저의 su방지 

아무 유저나 su 명령어로 root의 권한을 획득하게 되면 보안상 위험해질 수 있다.

 

해결방안


 

1. /bin/su 명령어의 퍼미션 을 변경한다.

chmod 4750 /bin/su

[일반사용자에게는 어떠한 권한도 주지 않고, 그룹에는 읽기와 실행권한을 부여한다.]

 


2. /bin/su명령어의 사용자 그룹을 변경한다.

chown root wheel su

[su 실행파일의 그룹을 wheel이라는 그룹으로 변경한다.]

 


3. su 명령을 사용할 사용자들을 wheel 그룹에 속하게 한다.


방법 1: 그룹을 관리하는 파일은 /etc/group이다. 이 파일 목록 중에서 4 번째 필드가 추가로

해당 그룹을 사용자를 지정할 때 쓰는 필드이다.

wheel:x:10:root, [허용해주려는 사용자]

[위에서 추가해준 사용자]이라는 사용자를 wheel이라는 그룹으로 지정하였다.]


방법 2: usermod 명령을 사용하여 지정한다.

usermod -G wheel [허용해주려는 사용자]

 

4. xinetd 데몬 을 다시 구동한다.

/etc/rc.d/init.d/xinetd restart

이렇게 설정한 후, 예를 들어 허용 받은 사용자 A 와 허용 받지 못한 사용자 B 가 각각 su 명령어를 입력했을 경우 B사용자가 입력했을 경우엔 Permission denied 라고 나오고 A 사용자는 정상적으로 작동된다.

 

● History관리

 

bash 쉘은 사용자가 입력한 500여개의 지난 명령어를 ~/.bash_history 에 남긴다. 이는 내가 사용한 명령어들을 다른 사람들이 알게 된다는 것을 의미하므로 보안상 위험할 수 있다. 다음과 같이 크기를 줄이거나, 0으로 설정해 아예 로그를 남기지 않도록 하여 크래커가 로그 파일의 내용을 이용할 수 없도록 한다. 이렇게 하면 .bash_history 파일에 아무런 기록이 남지 않게 된다.

 

해결방안

 

HISTFILESIZE=30

HISTSIZE=30

또는 로그아웃 할 때마다 로그 파일을 삭제하도록 다음과 같은 라인을 vi /etc/profile에 추가한다.

rm -f $HOME/.bash_history

 

● Script 명령어

터미널에서 발생하는 모든 세션을 기록하는 명령어.

이 명령어는 터미널에서 무슨 작업이 일어났는지 알고 싶을 때 유용하다.

만약 나는 오늘 실행한 작업이 없는데, service network restart 가 되어있다 거나 하는 작업등이 기록되어 있다면 해킹을 의심 해볼 수 있다.

 

해결방안

 

script 명령어는 터미널에서 진행되는 모든 작업을 파일에 저장한다. 추후 이전 작업 내용을 살펴 볼 경우 매우 유용하다.

script -a [파일]

-a : 새로 기록하는 것이 아니라, 이전 파일에 덧붙인다.

실행중인 scripts 명령을 종료하기 위해서는 exit나 Ctrl+D, logout 명령을 입력한다.

 

● 4, 터미널 막기

주로 쓰지 않는 터미널은 막아 두는 게 좋다.

 

해결방안

 

vi /etc/securetty에 들어가

tty 앞에 #(주석) 처리 하면 올바른 비밀번호를 입력해도

로그인이 되지 않는다.

 


● 사용자 비밀번호 잠금

만약 의심 가는 사용자나 수상한 사용자의 접속을 막고 싶을 경우 사용한다.

 

해결방안

 

passwd -l "사용자이름" 이렇게 하면 사용자의 비밀번호가 Lock (잠금) 이 되어

올바른 "계정"과 "비밀번호"를 입력해도 로그인 할 수 없게 된다.

해지 하는 법 passwd -d "사용자이름" 이렇게 하면 비밀번호 없이 로그인이 가능 하게 된다.

 

 

● 일반사용자 poweroff, reboot 막는 방법

 

관리자 외에 다른 사람들이 시스템 종료 할 수 있다면 위험해 질 수 있다.예를 들어 중요한 작업을 하는 도중 저장도 해놓지 않았는데 어느 사용자가 리눅스를 종료하게 되면 지금까지 작업한 데이터가 한번에 날아가 버리기 때문이다.

 

해결방안

 

일단 whereis " reboot or poweroff "로 reboot명령어와 poweroff 명령어의 절대경로를 찾은 후, chmod 700 whereis로 찾은 절대경로를 입력 해주면 일반사용자는 reboot명령어와 poweroff 명령어를 실행할 수 없게 된다.

 

 

Tip ! [whereis 명령어]

whereis 명령어란? whereis 명령어란 알고자 하는 파일또는 디렉토리의 경로를 나타낼때 쓰이는 명령어로 문법형식은 whereis "찾고자하는 것의 이름“ 이라고 입력하면 위에서 입력해준 것의 경로가 상세히 나타난다.

 

Tip !

루트도 reboot 명령어와 poweroff 명령어를 제한하려면, 일단은 위에서 배운 일반사용자와 같이 chmod 로 /usr/bin/poweroff or reboot 의 절대경로를 000으로 준 후,

sbin/reboot or poweroff 도 000 으로 주면 루트와 모든 사용자까지 막히게 된다.


그런데 sbin까지 막는 이유는?

sbin은 슈퍼유저권한으로 실행되는 sbin 폴더의 poweroff or reboot 명령어 까지 막아줘야 합니다.

 

 

● 일반사용자 halt 명령어 제한하기


위에서 배운 것처럼 chmod 와 whereis 명령어를 이용한다.

 


● Root를 제외한 일반사용자의 비밀번호 변경 제한


Root를 제외한 다른 사용자가 비밀번호를 변경할 수 없게 하고싶을 때, 사용한다.

 


해결방안

 


- 첫 번째 방법 : vi /etc/pam.d/login에 들어가

Password required pam_deny.so 라고 설정해준다.

- 두 번째 방법: 위에서 말한 whereis 방법으로 passwd의 절대경로를 찾아

chmod 700 절대경로를 입력해주면 변경할 수 없게 된다.

 


● vi 파일에 비밀번호 거는방법

 

만약 어떤 사람이 내 소중한 파일을 마음대로 vi편집기를 이용해서 마음대로

수정을 방지하려면.?

 


해결방안

일단 vim "파일 또는 디렉토리“ 들어가서 :X 라고 입력하면

비밀번호를 걸어둘 수 있게 된다. 이렇게 설정하면 vim으로 들어가면 비밀번호를 묻게 되고 vi로 들어가면 파일이 깨져서 출력된다.

 

 

5) 정리.

이번에는 저번보다 조금 더 어려운 기술에 대해서 썻습니다.

다음번에는 더 강력한 보안기술로 서술하겠습니다.

[출처] 리눅스 간단한 보안2 (Craking Defenders::Kerberos) |작성자 산군

 

'OS > Linux' 카테고리의 다른 글

/dev/null  (0) 2009.09.25
ulimit 제한 설정 변경 [ 코어생성 ]  (0) 2009.09.22
vi 편집기 활용  (0) 2009.09.01
bash: /dev/null: Permission denied 에러 대처방법  (0) 2009.06.02
Linux server security [1]  (0) 2009.06.01
Posted by 몽센트