OS/Linux2009. 6. 1. 10:01

●. 다룰 내용

Linux Server  보안

 

●. 정리할 내용의 주제

크래킹과 기본적인 보안

 

●. 구현을 위한 서버 및 장비 구성

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

 

●. 사용하는 이유와 설명,

크래킹 = 크래킹은 다른 사람의 시스템에 몰래 침입하여. 그 시스템을 파괴하거나 중요한 정보를 악의적으로 빼내오는 행위이다.

크래커 = 악의적으로 다른 사람의 컴퓨터에 불법적으로 침입하여 데이터나 프로그램을 엿보거나 변경하는 등의 컴퓨터범죄 행위를 저지르는 지능범을 가리킨다.

 

위에서 말한 것 과 같이 정보가 빠져나가거나 시스템이 파괴되는 것을 막기 위해 보안이 필요하며, 컴퓨터 네트워크의 보완 취약점을 찾아내어 그 문제를 해결하고 이를 악의적으로 이용하는 것을 방지하는 것을 해킹이라고 한다. 이런 사람을 해커가 하는 일이며 컴퓨터 또는 컴퓨터 프로그래밍에 뛰어난 기술자를 해커라고 한다.

 

●. 기본적인 보안설정

1) 시스템 종료시 반드시 shutdown 명령을 실행하여 마운트가 되어있는 파일이 안전하게 언 마운트 될 수 있도록 한다.

 

shutdown 명령어.

shutdown now = 지금당장 셧 다운한다.

shutdown -r = 시스템 종료 후 재부팅

shutdown -h = shutdown이 완료된 후 시스템을 종료한다.

shutdown -c = 현재진행중인 셧 다운 명령어 취소

 

2) 리눅스에서 루트의 비밀번호를 잊어버렸을 경우에, 싱글 모드로 들어가면 비밀번호를 로그인 없이 루트의 비밀번호를 바꿔줄 수 있다. 이렇게 되면 아무나 루트의 비밀번호를 바꿀수 있게 되므로 위험하다.

 

해결방안

리눅스 부팅 시 싱글모드 또는 부트 로더 메뉴로 들어가지 못하도록 비밀번호를 걸어둔다.

- grub 부트 로더 비밀번호 거는 방법

프롬프트 창에 grub 라고 입력

md5crypt 라고 입력 후 비밀번호 입력 후 마우스를 이용해 복사

 

vi /etc/grub.conf에 들어가서

맨 위에 password --md5 "암호화비밀번호" 를 설정하면 부팅화면 비밀번호를 묻게 되고,

맨 밑에 password --md5 "암호화비밀번호" 를 설정하면 부팅을 할 때 비밀번호를 묻는다.

- 싱글모드 비밀번호 거는 방법

 

vi /etc/inittab에 들어가서 id:3:initdefault: 라고 써있는 곳 바로 밑에

--:S:wait:/sbin/sulogin 라고 입력하게 되면 싱글모드로 부팅하려 했을 때

root계정의 비밀번호를 묻게 된다.

 

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

 

해결방안

시스템에 Lock 장치를 만들고 관리자는 항상 시스템을 잠궈 두는 것이 좋다.

 

- ctrl + alt + delete 키 잠궈 두는 방법

vi /etc/inittab 에 들어가서

ca::ctrlaltdel:/sbin/shutdown -t3 -r now 라고 써있는 줄 에 주석(#)처리를 한 후,

재부팅하면 된다.

 

4) 기본적인 파일보안.

리눅스는 여러 사용자가 동시에 사용할 수 있는 멀티태스킹 운영체제이다.

[멀티태스킹이란 2가지 이상의 작업을 동시에 처리하거나, 2가지 이상의 프로그램들을 동시에 실행시키는 것을 말한다.]

그러므로 보안에 더욱 신경 써야 한다. 만약 파일의 허가권한을 777로 주게 되면 모든 사용자들이 그 파일을 수정하고, 읽고 심지어 지울 수도 있게 되므로 위험해 질 수 있다.

 

- chmod

예) -rwxr-xr-x test.txt

rwx : 처음 3개 문자 = 사용자 자신의 사용 권한

r-x : 그다음 3개 문자 = 그룹 사용자의 사용 권한

r-x : 마지막 3개 문자 = 전체 사용자의 사용 권한 (그 외)

rwx, 왼쪽부터 차례대로 4. 2. 1 이렇게 표기한다.

 

그래서 777이라고 권한을 주었을 경우

사용자 자신 = 모든 권한

그룹 사용자 = 모든 권한

전체사용자, 그 외 = 모든 권한

 

이렇게 아무나 모든 권한을 얻게 되어 정말 위험해 질 수 있다.

명령어 -> chmod (권한값) (권한을 부여해줄 폴더)

예) chmod 700 (기본값=700) linuxfile

그런데 chmod 000 하고 권한을 주면 어떻게 될까,

그렇게 설정을 해보았더니 루트를 제외한 다른 사용자들은

 

읽기조차 불가능하게 설정이 되었다.

만약 자신이 원하는 파일에 특정한 권한을 추가해주고 싶다면

chmod +(추가해줄 권한) (권한을 받을 파일의 이름)

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><?XML:NAMESPACE PREFIX = V /><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><?XML:NAMESPACE PREFIX = O />

<?xml:namespace prefix = w ns = "urn:schemas-microsoft-com:office:word" /><?XML:NAMESPACE PREFIX = W />예) chmod +x testfile 이렇게 하면 testfile에 x, 즉 실행권한이 추가된다.

 

5) 비밀번호 암호화(쉐도우 열쇠글시스템)

/etc/passwd 파일은 일반사용자 들도 접근하여 파일 내용을 볼 수 있기 때문에

리눅스 에서는 기본적으로 열쇠글 암호화 시스템을 지원한다.

 

해결방안

- 쉐도우 열쇠글 명령어

pwconv 라고 입력하면 쉐도우 열쇠글이 실행된다 하지만 기본적으로 쉐도우 열쇠글 시스템을 지원하고 있기 때문에 해도 아무런 변화가 없다.

pwunconv 라고 입력하게 되면 기본적으로 지원하는 열쇠글 암호화 기능이 해지가 된다.

그런데 pwunconv라고 입력한 후 아무계정의 비밀번호를 바꾸려고 하면

passwd: Authentication token manipulation error 라고 나온다.

 

6) 특정 사용자 로그인 막기

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

vi /etc/passwd 에 가면

사용자들 정보가 나와 있는데 막고 싶은 사용자의 정보가

 

"유저이름":x:501:501::/home/"유저이름":/bin/bash 라고 이런 예제로 나와 있는데 bash

"유저이름":x:501:501::/home/"유저이름":/bin/nologin 이렇게nologin이나false로 바꿔주면

그 사용자는 로그인하지 못하게 된다.

 

7) chattr - 파일 삭제 및 임의 수정 불가능하게 하기

만약 리눅스에서 중요한 폴더가 있는데 그 폴더를 건드리지 못하게 하고 싶을 때 사용하는 명령어이다.

 

chattr 명령은 비록 슈퍼유저인 루트일 지라도 이 파일을 변경이나 삭제가 불가능하게 되는 명령어다.

chattr +i "파일명" 과 같이 입력하게 되면 폴더에 대한 파일삭제 및 임의 수정을 불가능하게 만들어 수정 할 수도 삭제 할 수도 없게 만든다.

chattr -i "파일명" 과 같이 입력하게 되면 위에서 설정해주었던 +i 명령어를 취소하게 된다.

 

8) 자동으로 로그아웃 되게만들기

루트 계정은 리눅스 시스템에서 가장 강력한 권한을 가지고 있는 계정이다. 만약 관리자가 콘솔로의 접속 후, 로그아웃 하는 것을 잊고 루트 프롬프트를 그대로 놔두었다면, 위험한 상황이 벌어질 수도 있습니다. 이런 상황을 피하기 위해 TMOUT 변수를 사용할 수 있다.

 

vi /etc/profile 에 들어가

HISTSIZE=0

HISTFILESIZE=0

TMOUT=300 라고 입력해준 후 저장하고 나오면 300초 즉 5분 동안 입력이 없게 되면 자동으로 로그아웃이 된다.

 

9) History 파일지우기

리눅스에서 history 명령어는 이전에 입력했던 명령어를 보여주는 편리한 명령어이다.

입력했던 명령어들은 history파일에 자동으로 저장되기 때문에 재부팅을 해도 그대로 남아있다.

해결방안

history -c를 입력하면 history 목록에 내가 입력했던 명령어들이 지워진다.


'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 [2]  (0) 2009.06.01
Posted by 몽센트