Search Results for 'server'

2 POSTS

  1. 2008.11.06 서버설치후 해야할 일
  2. 2008.10.24 용량산정의 예

서버설치후 해야할 일

Posted 2008. 11. 6. 17:59

출처 Small is beautiful~* | 으랏차차
원문 http://blog.naver.com/jjaiwook79/30009020151


1. 네트워크 접근제한


1) /etc/hosts.allow, hosts.deny 파일을 편집하여 접근을 제한한다.

======================== hosts.allow ========================
#
# hosts.allow This file describes the names of the hosts which are
# allowed to use the local INET services, as decided
# by the '/usr/sbin/tcpd' server.
#
ALL : 218.232.117.*
ALL : 211.214.121.18
ALL : 203.250.136.217
ALL : 211.62.2.*
ALL : 211.62.6.*
ALL : 211.62.7.*
ALL : 211.62.8.*
ALL : 211.62.9.*
ALL : 211.62.15.*
ALL : 211.62.15.*
ALL : 211.196.157.14
===========================================================

======================== hosts.deny ========================
#
# hosts.deny This file describes the names of the hosts which are
# *not* allowed to use the local INET services, as decided
# by the '/usr/sbin/tcpd' server.
#
# The portmap line is redundant, but it is left to remind you that
# the new secure portmap uses hosts.deny and hosts.allow. In particular
# you should know that NFS uses portmap!
ALL : ALL
===========================================================

2) IPTABLE 을 사용하여 커널수준의 방화벽을 구성한다.

======================== rc.local ===========================
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F INPUT
iptables -F OUTPUT

# 웹서버일경우 80으로 들어오는 요청과 1.1.1.1 에서들어오는 ssh 요청을
# 받아들인다.
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -s 1.1.1.1 --dport 22 -j ACCEPT

# 1초에 15번 이상의 HTTP 접근을 할경우 (DOS공격) 접근을 차단한다.
iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 15 -connlimit-mask 24 -j DROP

# 메일서버의 경우 동시에 5개이상 SMTP 접근자(스팸머)의 경우 5분동안
# 접근을 제한한다.
iptables -A INPUT -m recent --name spammer --rcheck --seconds 300 -j drop
iptables -A INPUT -p tcp --syn --dport 25 -m connlimit --connlimit-above 5 -m recent --name spammer --set -j DROP

# STRING 필터기능
# MSN 문자열이들어간 패킷 차단
iptables -A FORWARD -m string --string "messenger.msn.com" -j DROP
# 싸이월드로 접속차단
iptables -A FORWARD -p tcp --dport 80 -m string --string "Host: cyworld.nate.com" -j DROP

# 포트스캔을 차단한다.
iptables -A INPUT -m psd -j DROP

# 만약서버가 해킹당해 DOS공격지로 사용될때 적용시킴.
# DNS 쿼리이외에 UDP 패킷이 나가는 것을 방지
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p udp ! --dport 53 -m state --state NEW -j DROP

# 이외 모든 접근을 차단한다.
iptables -A INPUT -j DROP
===========================================================


2. 시스템 보안


1) sshd를 변경한다. (/etc/ssh/)
======================== sshd_config ========================
# LINE 13 - SSH 포트변경
Port 250
# Line 37 - root계정으로 접근을 제한
PermitRootLogin no
===========================================================

2) 보안상취약한 TELNET 서비스중지
-----------------------------------------------------------
# setup <-- TELNET 해제
# chkconfig --list | grep telnet
krb5-telnet: 해제 <-- 확인
-----------------------------------------------------------

3) 명령어 보안

3-1) ADMIN그룹 사용자만 su 를 사용할 수 있도록 함
-----------------------------------------------------------
# groupadd admin
# useradd -g admin -c 'root 접근가능계정' jjaiwook79
# chgrp admin /bin/su
# chmod o-x /bin/su
-----------------------------------------------------------

3-2) 불법사용자가 다른 서버로 부터 파일을 가져 오지 못하게 제한한다
- 환경이 같으면 다른 서버의 바이너리파일을 가져와 사용할 수 있다
-----------------------------------------------------------
# cd /usr/bin
# chmod 700 scp wget curl lynx
-----------------------------------------------------------

3-3) 불법사용자가 해킹에 사용할 수 있는 명령어들의 권한을 제한한다.
-----------------------------------------------------------
# which nc (또는 netcat)
# chmod 700 /usr/bin/nc
# which gcc
# chmod 700 /usr/bin/gcc
# which cc
# chmod 700 /usr/bin/cc

# chgrp admin /usr/bin/ssh
# chmod o-x /usr/bin/ssh <-- 어드민사용할 수 있도록함. 경유지가되는 것을 막음.
-----------------------------------------------------------

4) 디렉터리보안

4-1) 커널취약성을 대비하여 불법사용자가 프로세스를 실행 못하게 한다.
-----------------------------------------------------------
# echo chmod 700 /proc >> rc.local <-- 부팅시마다 권한이 변하므로 rc.local에 등록해준다.
# chmod 700 /proc
-----------------------------------------------------------

4-2) 해킹에 자주악용되는 /tmp, /var/tmp, /dev/shm 등을 주기적으로 모니터링한다. 이상한 파일이 존재하는지 확인.


3. 보안도구 사용


1) modsecurity (http://www.modsecurity.org)]

웹서버 앞단에서 웹서버로 들어가는 URL요청들을 필터링 할 수 있다.


SecServerSignature " Microsoft-IIS/5.0"
SecFilterSelective THE_REQUEST "wget"
SecFilterSelective THE_REQUEST "lynx"
SecFilterSelective THE_REQUEST "mkdir"
SecFilterSelective THE_REQUEST "/tmp"
SecFilterSelective THE_REQUEST "/bin"
SecFilterSelective THE_REQUEST "/etc/passwd"
SecFilterSelective THE_REQUEST "/\.bash_history"


웹서버의 정보를 바꾸고 (Microsoft-IIS로 표시), 웹해킹에 자주사용되는 명령어 및 디렉터리들을 요청하는 http 접근을 차단한다.


2) promiscan (http://www.securityfriday.com/tools/promiscan_sla.html)

SNIFFING을 탐지할 수 있다.


3) chkrootkit, rkhunter

rootkit을 탐지 할 수 있다.


4) john the Ripper (http://www.openwall.com/john/)

알기쉬운 비밀번호를 사용하는 사용자를 체크한다.

용량산정의 예

Posted 2008. 10. 24. 05:07

회계인사 신시스템 

1. 현 서버 사용 현황 

 

1. 사용 서버명

IBM RS/6000 SP2 Thin node 4

2. CPU

CPU : Power2 66MHZ

CPU개수 : 4 CPU (1CPU * 4)

3. Memory

1024 MB (256MB * 4)

4. Disk

      내장 디스크 : 8.8GB (2.2GB * 4)

외장 디스크 : 45GB (13GB + 12GB + 16GB + 4GB)

 


 

2. 현 서버 사용률 

 

1) CPU 

Node 1 : 60%-70%

        Node 2 : 65%-75%

        Node 3 : 80%-90%

        Node 4 : 80%-90%

2) Memory (실메모리 + 사용중인 가상메모리)

Node 1 : 98% ( 30438/31050 ) 

        Node 2 : 97% ( 36870/37960 )

        Node 3 : 97% ( 51707/53458 )

        Node 4 : 97% ( 44067/45252 )

 

3) 디스크 

Node 1 :  내장 85% (1828/2148)

          외장 45%(5856/13056)

        Node 2 :  내장 94% (2028/2148)

                  외장 60%(7352/12288)

        Node 3 : :  내장 94% (2028/2148)

                  외장 92%(15224/16608)

        Node 4 :  내장 99% (2128/2148)

                  외장 96%(4144/4296)

 

 

 

 

 

3.향후 시스템 확장 방안 

 

1. 전체 사용자수 : 200

2. 피크 타임시 최대 동시 사용자수 : 150  

3. 서비스 시간        : 09:00 17:00

4. 5년간 업무 증가율 : 30 % 증가 

 

1. 메모리 산정 기준 

1.         OS 커널 로드량                                            : 256MB

2.         OS 관리 영역(telnet, shell size,login user )   : 150 MB (1MB * 150)

3.         DB 엔진                                                                        : 80MB

4.         DB  SGA                                                          : 400MB

5.         MTS (멀티스레드방식)                   : 75MB (동시사용자 * 0.5MB = 150 * 0.5)

6.         어플리케이션 메모리                    : 75MB( 150 * 0.5)

7.         사용자 파일로드 :  1024MB

8.         버퍼케시율 : 20%                                                                      

(256 + 150 + 80+ 400 + 75 + 75+ 1024) * 1.2 = 2060 * 1.2 = 2472 MB

9.         업무중 배치 처리 : 15%

2472 * 1.15 = 2842MB

10.      시스템 여유율 : 40%

2842 * 1.4 = 3979 MB

 

메모리 용량은 최소 4015 MB 이어야 합니다.

 

2. 디스크 산정기준 

1. 내장 디스크 

1.         OS                                                                         : 2000 MB

2.         페이징 스페이스 :  메모리의 1   : 4096 MB

3.         DB 엔진                                                             : 1500 MB

4.         어플리케이션 프로그램                             : 2000 MB

5.         여유율 : 50%                                                                       : 9596 MB * 1.5 = 14394 MB

 

2. 외장 디스크 

1.         순수DB 요구량(20GB 가정)                                   : 2000 MB

2.         DB 구성 오버해드                                         : 2000 MB

3.         일반 DATA                          : 30000 MB

4.         RAID5 구성  오버해드 : 30%               : (2000 + 2000 + 30000) * 1.3 = 51000

5.         디스크 여유율 : 40%                                     : 51000 * 1.4 = 71400

 

디스크 용량은 내장 18.2GB, 외장 72GB 이어야 합니다