리눅스
subject 리눅스 보안을 위한 기본설정 Part 2.
author 관리자 date 2003-12-22 hit 155 HIT
<PART II ================================================>

PART II는 PART I 에서 수정되어야 하는 부분이나 추가 되어야 할 내용을 추가 했습니다.
보안을 위해 이문서를 참조하는 것도 좋습니다.
그러나 서버 운영 특성상 꼭 필요한 경우도 있으나..
이 제한을 걸어서 사용할수 없는 경우가 있으니 꼭 확인후 조치를 부탁합니다.
(이 문서를 끝까지 읽어 주시면 서버운영에 많은 도움이 될듯합니다.)
- 문의 사항은 khsheen@inempire.com으로 해 주십시요

설명순서는 PART I 에서 설명을 보충하고 기타 더 필요한 설명을 추가 하겠습니다.

<보안관련및 기본명령>

1.chmod 700변경하기


첨부 명령어
/usr/bin/top (chmod 700 적용)
/usr/bin/find (chmod 700 적용)

/usr/bin/lynx (chmod 700 적용)
/usr/bin/wget(chmod 700 적용)
--> 이두 명령어는 일반적으로 해커들이 해킹툴을 가져올때 자주쓰는 명령어

shell-prompt>lynx --dump 가져올화일이 있는 url 경로
shell-prompt>wget 가져올화일이 있는 url 경로

/usr/bin/gcc(chmod 700 적용) <-- 당연히 막아줘야져.
/usr/bin/c++(chmod 700 적용)
/usr/bin/make(chmod 700 적용)

이 명령어를 막게 되면 일반사용자들이 C언어로 작성된 프로그램을..
컴파일하지 못하여 불평을 호소하는 경우가 있다.

이런 경우는 이 명령어를 사용할수 있는 그룹을 설정해 주면 준다.
(일반적으로 wheel이라는 그룹을 많이 사용함, 다른 그룹을 등록해서 사용해도 무관)

* example) find 명령어의 사용자를 제한 할 경우
shell-prompt>grep wheel /etc/group
wheel:x:10:root

/etc/group 화일에 wheel:x:10:root 이분에 wheel이라는 그룹에 user를 추가 한다.
(khsheen이라는 user가 있을경우임)
wheel:x:10:root,khsheen
이러면 wheel이라는 그룹에 khsheen 이라는 user가 등록된다.
shell-prompt>ls -la /usr/bin/find
-rwxr-xr-x 1 root root 54544 Feb 3 2000 /usr/bin/find*
shell-prompt>chgrp wheel find
shell-prompt>chmod 755 find
shell-prompt>ls -la /usr/bin/find
-rwxr-x--- 1 root wheel 54544 Feb 3 2000 find*

이런식으로 설정하면 find 명령어는 root와 khsheen만 사용할수 있다.
이 명령어를 su 명령어에도 적용하는 것을 권장함.
root로 전환할 유저 (su 명령어 사용자)를 제한 할수 있다.

2.anonymous ftp 막기

특정 user가 ftp 접속후 본인의 Directory 외에 다른 유저의
Directory를 접근 못하게 할 경우
(접근을 해서 read 권한만있어도 그 유저의 설정을 모두볼수있다.)

*proftp를 사용하는 경우

shell-prompt> vi /etc/proftpd.conf
이 화일에 이 한줄을 추가한다.
DefaultRoot ~ member
shell-prompt>/etc/rc.d/init.d/proftpd restart

이러면 본인의 Directory외에 다른 유저의 계정은 접근 불가.

3.telnet 사용막기

telnet을 막는 다는 것은 특히 유저가 많은 경우는 불가능 일인것 같다. (특히 웹호스팅업체)
이런 경우는 ssh(Secure Shell)을 설치해서 사용하는 것을 권장합니다.

6.find 관련 명령어 관련 명령어 사용하기

shell-prompt> find / -nouser (화일에 소유자가 없는 경우의 화일)
일반사용자의 사용 디렉토리에서 ...
화일에 소유자가 없다는것은 의심을 해볼필요가 있다.

shell-prompt> find /home/khsheen -user root
(일반사용자인데 root로 되어 있는 화일도 의심해볼 필요가 있다)

8.해킹이 확실한경우 대처법

a.우선 가장 좋은 방법은 port(랜선)를 제거하는 것이 가장 좋다.
b.그 다음에 설치 되어 있는 해킹툴을 제거한다.
-프로세스 확인
[ 이상한(필요없는) 프로세스 확인해서 설치된 위치 확인후 지우기]

shell-prompt> kill -9 이상한 프로세스 id

그러나 100%제거 한다는 것은 힘들것 같다.
서버를 제 세팅하는 것을 권장한다.

c.중요 data 백업


9.기타 보안에 관련된 내용

a.php , mysql db 지원하는 경우
-일반적으로 php로 mysql에 db에 접속하는 경우 php에서 connect하는 스크립트를 사용하는 화일을 일반적으로 Web상에 공개된 소스에는 화일명이 대부분 connect.inc 를 사용하는데 이것을 웹브라우저에 불러오게 되면 바로 읽혀 져서 mysql db접속 아이디와 패스워드를 알수가 있게된다.

이럴경우는 웹서버의 설정화일(httpd.conf)에

AddType application/x-httpd-php .php .html .php3 .php3 .inc
~~~~~!!
AddType application/x-httpd-php-source .phps

추가하고 웹서버를 제구동한다.
그러면 .inc로 끝나는 화일도 php로 인식하므로 스크립트 출을 막을수 있다.

또 한가지 telnet ftp에 사용시 group을 같게 해주고..
각 계정의 root Directory를 퍼미션을 705로 처리해 주면..
다른 유저가 다른 사용자의 계정에 들어 갈수가 없다.
만약 755로 한다면 다른 유저에게도 읽을 권한이 생겨서..
connect 크립트를 읽을 수 있어 db접속 아이디/passwd를 얻을수 있다.

b.사용자들의 passwd
- 등록된 user의 passwd를 자주 갱신하게 만든다.
shell-prompt>vi /etc/login.defs
이중 아래의 스크립트를 일정기간 설정해서 사용자들의
passwd를 바꾸게 만든다.
PASS_MAX_DAYS 99999
~~~~~ 일정기간으로 잡아준다.

c.shell 없애기
- 메일계정으로만 사용하는 경우(shell이 필요없는 경우)의 유저가 많다. 특히 웹호스팅 사용자
이런 경우 shell을 주지 않으면 된다.
shell-prompt>vipw
khsheen:x:500:502::/home/gdm:/bin/false
~~~~~~~~~~
khsheen이라는 유저에게 shell을 부여하지 않는다.


- 서버에 등록된 사용자가 많은 경우 사용자가 관리에
신경을 많이 써야 한다. last 명령을 사용하여 자주 telnet으로
접속하는 사용자는 history를 자주 살펴보는 것도 좋다.
shell-prompt> last | grep pts



d.보안패치하기

서버 보안에서 가장 중요한 것이 패치이다.
서버에 버그가 발표되면 해커도 그것을 접한다고 생각하면 된다.
그래서 서버에 최신 패키지를 설치해야 하며 보안 뉴스를 빨리 접해야 한다.
그중 커널 업테이드등은 중요한다.

* 커널 최신 정보 확인하기
shell-prompt>finger @www.kernel.org
[zeus.kernel.org]

The latest stable version of the Linux kernel is: 2.2.17
~~~~~~
The latest beta version of the Linux kernel is: 2.4.0-test11
The latest prepatch (alpha) version *appears* to be: 2.4.0-test12-pre4


2. 2. 17
| | |
| | -> 몇번의 패치가 있었는지 나타낸다.
| -> 안정화 버전인지 개발화 버전이지를 나타낸다.
| (홀수:개발, 짝수:안정)
-> 획기적인 변화가 있을때 바뀐다


그리고 기타 패키지에 대한 버그는 빨리 접하고 패치를 해야 한다.

http://www.redhat.com/support/errata/index.html(redhat인 경우)

해킹관련 소식 접하기
http://certcc.or.kr/ (한국정보 보호센터)
http://www.hackersnews.org/
http://www.securenews.co.kr/
목록보기
39  메일서버(QMAIL) 구축 - 10. qmail 부트파일 만들기  2004-01-06 135
38  메일서버(QMAIL) 구축 - 9. root 와 postmaster를 위한 alias 설정  2004-01-06 139
37  메일서버(QMAIL) 구축 - 8. qmail의 log파일을 위한 디렉토리 만들기  2004-01-06 135
36  메일서버(QMAIL) 구축 - 7. qmail 데몬을 위한 디렉토리와 파일들을 생성  2004-01-06 144
35  메일서버(QMAIL) 구축 - 6. 기본 control 파일들의 설정  2004-01-06 157
34  메일서버(QMAIL) 구축 - 5. qmail 과 연관 프로그램들을 컴파일  2004-01-06 140
33  메일서버(QMAIL) 구축 - 2. 루트권한으로 변경 후..  2004-01-06 152
32  메일서버(QMAIL) 구축 - 1. qmail 소스 받아오기  2004-01-06 157
31  메일서버(QMAIL) 구축 - 4. qmail 실행을 위한 유저와 그룹을 생성  2004-01-06 131
30  메일서버(QMAIL) 구축 - 3. qmail 설치를 위한 디렉토리를 생성  2004-01-06 129
29  큐메일 설치가이드  2004-01-04 147
28  리눅스 설치 후 해야 할 것들..  2003-12-29 148
27  리눅스 설치 후 초기 보안 설정법.. [1]  2003-12-22 155
 리눅스 보안을 위한 기본설정 Part 2.  2003-12-22 155
25  서버 부팅 데몬 설정  2003-12-02 140
1 2 3 4 5