정보보안기사 실기 참고 내용 정리 1

2017. 10. 16. 17:39정보보안기사관련


inetd , xinetd , TCPWrapper 


inetd : 리눅스 서버에서 서비스되는 다른 여러가지 데몬들을 제어하면서 각각의 서비스들의 연결을 담당한다

(=슈퍼데몬)


형식: [servicename] [sock_type] [protocol] [wait_flag] [user] [server_path] [args]


=> telnet stream tcp nowait root /usr/sbin/telnetd in.telnetd

=> TCP Wrapper 사용시

=> telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd


TCPWrapper : /etc/hosts.allow , /etc/hosts.deny 파일을 읽어 허가되는 접속인지 체크한다


* servicename : /etc/services 에 등록되어 있어야 한다

* protocol : /etc/protocols 에 등록되어 있어야 한다


* sock_type,wait_flag : tcp -> stream + nowait , udp -> dgram + wait


* xinetd 스크립트파일 /etc/rc.d/init.d/xinetd [cmd]

  cmd = start,stop,status,restart


* /etc/xinetd.conf 파일은 xinetd데몬의 주 설정파일이다

그리고 /etc/xinetd.d 디렉토리에 있는 각 서비스들에 대한 개별적인 설정파일들을 참고한다



===============================


#chkconfig --list 모든 부팅레벨에서 모든 서비스 on/off확인

#chkconfig --list [service] 모든 부팅레벨에서 해당 서비스 on/off확인

#chkconfig --levelX,X [service] [on|off] 해당 레벨에서 해당 서비스 on/off 적용


===================================


php.ini ( /etc/php.ini )


693 register_globals = Off 

-> On으로 설정하면 PHP가 입력으로 받아들이는 값들을 무조건 전역변수로 다루게 된다



869 file_uploads = Off

-> 해당 사이트의 PHP프로그램의 파일 업로드를 사용여부 결정


886 allow_url_fopen = Off

-> 파일로써 외부 사이트를 호출할 수 있는지의 여부 결정

-> On 사용시 include(),requier()함수를 이용해 보안상의 문제 발생 가능성이 있다


127 magic_quotes_gpc = On

-> PHP가 입력으로 받아들이는 값에서 ' , " , \ , null 문자들앞에 \ 을 추가하여 특수문자로 처리한다

-> SQL Injection 공격을 차단할 수 있다


380 open_basedir = [디렉터리명]

-> 해당 디렉터리 안에 있는 파일에만 접근할 수 있다


530 display_errors = Off

-> PHP 실행 중 발생하는 경고나 에러정보를 보여줄지말지 결정한다


551 log_errors = On

-> error_log에 지정한 파일에 경고나 에러정보를 기록의 수행여부 결정


634 error_log = [파일명]

-> php 실행 중 발생하는 경고나 에러정보를 작성할 파일을 지정한다


339 safe_mode = On

-> On으로 설정하면 시스템의 중요파일들에 접근을 제한할 수 있지만 웹프로그램이 정상작동하지 않을 수 있다



=============================


/etc/httpd/conf/httpd.conf : Apache웹 서버 환경 설정


ServerType -standalond ( or -inetd )


SeverTokens [Os|min|prod]

PidFile [file] : 아파치 웹서버 ProcessID 정보 저장


Timeout xxx : 요청이 들어오면 xxx초 까지는 응답해준다


KeepAlive On|Off


MaxKeepAliveRequests 100


KeepAliveTimeout 5


MaxClients xx

-> 동시에 클라이언트 연결 최대 갯수


User nobody

Group nobody


Listen 80

-> 웹 페이지 통신에 사용할 포트 번호

-> Listen 192.168.6.123:80 지정할 수 도 있음


DocumentRoot "/var/www/html"

-> 홈페이지 내용 저장 디렉토리


ErrorLog logs/error_log



 302 <Directory />    // 루트 디렉토리에 대한 접근 제어 설정

 303     Options Indexes FollowSymLinks // 웹브라우저에서 링크파일의 경로까지도 확인할 수 있다

                                        // 웹 브라우저에서 디렉토리 내의 파일목록들을 보여준다

 304     AllowOverride None             // 어떤 방식으로 접근을 허용할 것인지 설정한다

 305     Order deny,allow               // allow -> deny 순으로 정책 적용

 306     allow from localhost           // 먼저 localhost의 접근은 허용한다

 307     deny from all                  // 나머지 모든 IP로부터의 접근은 차단된다

 308 </Directory>


 491 LogLevel warn : 에러로그파일의 기록내용을 얼마나 자세하게 기록할 것인지 결정한다


 emer -> alert -> crit -> -> warn -> notice -> info -> debug


 * LogFormat : 웹로그파일(access_log)에 기록을 어떤 포맷으로 할 것인가에 대해 결정한다 


 497 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

 498 LogFormat "%h %l %u %t \"%r\" %>s %b" common

 499 LogFormat "%{Referer}i -> %U" referer

 500 LogFormat "%{User-agent}i" agent



 513 #CustomLog logs/access_log common

 519 #CustomLog logs/referer_log referer

 520 #CustomLog logs/agent_log agent

 526 CustomLog logs/access_log comfined


%h : host

%l : login ID

%u : authuser

%t : date and time

%r : request

%>s : status

%b : byte



  94 # prefork MPM

  95 # StartServers: number of server processes to start

  96 # MinSpareServers: minimum number of server processes which are kept spare

  97 # MaxSpareServers: maximum number of server processes which are kept spare

  98 # ServerLimit: maximum value for MaxClients for the lifetime of the server

  99 # MaxClients: maximum number of server processes allowed to start

 100 # MaxRequestsPerChild: maximum number of requests a server process serves

 101 <IfModule prefork.c>

 102 StartServers       8 아파치 서버의 자식 프로세스 개수 지정

 103 MinSpareServers    5 

 104 MaxSpareServers   20

 105 ServerLimit      256 자식 프로세스 개수 한계

 106 MaxClients       256 초기 시작시 실행가능한 최대 아파치 자식 프로세스의 개수 지정

 107 MaxRequestsPerChild  4000 클라이언트들의 요청 개수를 제한

 108 </IfModule>


하나의 자식 프로세스가 하나의 쓰레드를 갖는 구조

한 개의 자식 프로세스는 한 개의 연결을 담당하여 worker보다 많은 메모리를 사용한다

프로세스간에 메모리 공간이 독립적이여서 안정적이다


 110 # worker MPM

 111 # StartServers: initial number of server processes to start

 112 # MaxClients: maximum number of simultaneous client connections

 113 # MinSpareThreads: minimum number of worker threads which are kept spare

 114 # MaxSpareThreads: maximum number of worker threads which are kept spare

 115 # ThreadsPerChild: constant number of worker threads in each server process

 116 # MaxRequestsPerChild: maximum number of requests a server process serves

 117 <IfModule worker.c>

 118 StartServers         4

 119 MaxClients         300

 120 MinSpareThreads     25

 121 MaxSpareThreads     75

 122 ThreadsPerChild     25

 123 MaxRequestsPerChild  0

 124 </IfModule>


자식 프로세스들이 여러 개의 쓰레드를 가질 수 있으며 각 쓰레드는 한번에 한 연결을 담당함

메모리 사용량이 상대적으로 적고 통신량이 많은 서버에 적절하다

쓰레드간에 메모리 공간을 공유한다






[ xinetd데몬 관련 파일 및 명령어 ]


[ httpd데몬 로그 파일 ]


[ 아파치 웹 서버 계정 만들기 ]