반응형

정보보안기사 실기 / Apache 웹 서버 보안 설정 - 애플리케이션 보안

 

Apache 웹 서버의 설정파일은 /etc/httpd/conf/httpd.conf 입니다. 

이번에는 httpd.conf 설정 파일을 알아 보겠습니다. 

 

httpd.conf 세션 설정

보안 설정 내용 예시
ServerRoot - 아파치의 기본 Root 경로  
Timeout - 클라이언트의 요청에 서버가 대기하는 시간을 설정 Timeout 300
MaxKeepAliveRequests - 접속을 허용할 수 있는 최대 횟수 Maxkeepaliverequest 100
KeepAliveTimeout - 클라이언트 최초 요청을 받은 뒤에 다음 요청이 전송될 때까지 대기하는 시간을 설정 KeepAliveTimeout 100
KeepAlive - 접속 연결에 대한 재용청을 허용할 것인지 설정 Keepalive On
Directoryindex - 웹 디렉토리 접근 시 인식되는 인덱스 파일의 순서 지정 DirectoryIndex index.htm index.php
Listem - 사용할 포트 지정 Listen 1120
Servername - 서버의 도메인 지정 Servername zidarn87.tistory.com:1120
DocumentRoot - 웹문서가 위치하는 디렉토리 지정 DocumentRoot "/var/www/html/webadmin"
ServerAdmin - 서버 관리자 이메일 지정  
CustomLog  - 엑세스 로그 파일 위치 지정  
ErrorLog - 에러 로그 파일의 위치 지정  

 

http 접근제어

<Directory />
Order Deny,Allow
Options FollowSymLinks
Deny from All
AllowOverride none
Require all granted
LimitRequestBody 5000000
</Directory>
옵션 내용
Order Deny, Allow - Deny와 Allow의 순서를 정한다. (Deny, Allow or Allow, Deny)
Deny from All - 모든 트래픽을 막는다.
LimitRequestBody 5000000 - 파일 업로드, 다운로드 시 파일 크기를 제한한다.
Options FollowSymLinks - 심볼릭 링크로 설정된 링크 파일의 경로 까지도 확인 할 수 있다.
indexes - indexes 웹서버의 디렉토리 접근 시 지정한 파일이 존재하지 않을 경우에 디렉토리내의 파일목록리스트를 보여준다. 보안을 위해 사용하지 않는 것이 좋다.
AllowOverride - 어떻게 접근을 허락할 것인가에 대한 설정
- 옵션 : None, ALL, AuthConfig, FileInfo, Indexes, Limit, Options

 

관련 문제

17회 다음과 같이 Apache 설정 시 발생할 수 있는 문제점 두가지를 작성하고 대응 방안을 쓰시오.
<Directory />
Options FollowSymLinks
AllowOverride none
Require all granted
</Directory>

<Directory /var/www>
Options indexes FollowSymLinks
AllowOverride none
Require all granted
</Directory>

(1) 발생하는 두가지 문제점
1. 디렉터리 리스팅으로 웹 서버 구조 및 중요 파일 노출됨.
2. 상위 디렉터리로 이동하여 악의적인 접근 가능함.

 

(2) 두가지 문제점에 대한 대응방안
1. /var/www 디렉터리의 Options 지시자에서 Indexes 옵션 제거
2. AllowOverride 옵션을 None -> AuthConfig로 변경

 

14회 다음은 리눅스 웹서버인 Apache의 설정파일 중 일부이다. 표시된 설정 내용이 의미하는 바가 무엇인지 설명하시오.
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 100
DirectoryIndex index.htm index.html
CustomLog /www/logs/access_log common

1) KeepAlive 옵션을 켠다. 속도를 개선시킬 수 있으나 동시접속량이 줄어든다.
2) KeepAlive를 유지시키는 시간을 100초로 설정한다.
3) KeepAlive를 허용하는 유저 수를 100명으로 설정한다.
4) 디렉토리로 접근할 경우 index.htm을 먼저 읽고, 없으면 index.html을 읽는다.
5) 로그파일은 /www/logs/access_log 경로에 저장하고, Apache 기본 로그 포맷을 사용한다.

 

 

14회 Apache 웹 서버 보안 설정을 하고자 한다. 환경설정 파일인 httpd.conf 파일에 (1) ~(4) 각각 해당하는 보안 설정을 기술하시오.

 

(1) 서버가 클라이언트로부터 응답을 기다리는 최대시간을 300초로 설정한다.

=> Timeout 300

(2) KeepAlive 상태에서 연결당 처리할 최대요청 처리 건수를 1000으로 한다.

=> MaxKeepAliveRequest 1000

(3) 디렉터리만을 지정했을 경우 그 디렉터리에서 자동으로 보여줄 웹 문서를 index.htm으로 설정하되, index.htm이 없으면 index.php를 보이게 설정한다.

=> DirectoryIndex index.htm index.php

(4) 서버접속 오류메시지를 /user/local/apache/logs/error_msg에 기록한다.

=> ErrorLog logs/user/local/apache/logs/error_msg

 

14회 불필요한 파일 업로드, 다운로드 시에 대량의 업로드, 다운로드로 인한 서비스 불응 상태가 발생할 수 있다. 이를 방지하고자 파일 크기를 5,000,000바이트로 제한하기 위해서 아파치 설정 파일인 httpd.conf 파일을 아래와 같이 수정하고자 한다. 빈칸 (  A  )에 해당하는 지시자를 작성하시오.

<Directory/>
(  A  ) 5000000
</Directory>

=> LimitRequestBody 

 

 

반응형
반응형

리눅스마스터 1급 / 런 레벨 (Run Level, 부팅 레벨)

 

실행단계 명령 내용
0 init 0 - PROM 감사 단계
1 init 1 - 관리상태의 단계 (시스템 점검 용)
- 단일 사용자 모드
2 init 2 - 공유된 자원을 갖지 않은 다중 사용자 단계
3 init 3 - 기본 실행 단계
- 공유 자원을 가진 다중 사용자 단계
- 텍스트 유저모드
4 init 4 - 사용되지 않음
5 init 5 - Run Level 3으로 기동 후에 GUI 모드인 X-Windows 실행
6 init 6 - 재부팅 단계

 

관련 문제

2020년 2회 다음 설명에 해당하는 용어로 알맞은 것은? 3

- 런 레벨 5로 부팅할 경우에 사용자 이름과 암호를 요청하고 유효한 값이 입력되면 세션을 시작해주는 역할을 수행한다.

1. 데스크톱 환경

2. 윈도 매니저

3. 디스플레이 매니저

4. X 프로토콜

 

2019년 2회 다음 중 파일 시스템 점검을 위해 단일 사용자 모드로 전환할 때 사용하는 명령으로 알맞은 것은? 2
1. init 0
2. init 1
3. init 5
4. init 6

반응형
반응형

정보보안기사 실기 / Snort rule - 네트워크 보안

 

Snort는 패킷을 스니핑해서 지정한 규칙과 동일한 패킷을 탐지하는 침임탐지 시스템입니다. 

Snort Rule은 공격자의 공격을 탐지하기 위한 등록된 규칙으로, Rule Header와 Rule Option으로 구성되어 있습니다.

 

이 Snort Rule을 구성하는 Header와 Option에 대해 알아보겠습니다. 

Rule Header

1. Action

명령어 내용
alert 경고 발생 및 로그 기록
log 로그 기록
pass 패킷 무시
drop 패킷 차단 및 로그 기록
reject 패킷 차단 및 로그 기록

2. Protocol 

유형 내용
tcp TCP 탐지
udp UDP 탐지
ip IP 탐지
icmp ICMP 메시지 탐지
any 전체

 

Rule Option

- 탐지 조건

옵션 내용 예제
msg - alert가 발생하면 로그파일에 기록할 문장 설정 msg: "SYN Attack";
sid - 시그니처 아이디 지정
- 0~99는 예약되어 있고, 100 ~ 1,000,000은 snort.org에서 공식적으로 배포함. 1,000,000 이상의 값은 사용자가 지정해서 사용할 수 있음
sid:1000000001
dsize - 버퍼 오버플로우를 탐지할 때 사용
- 전송되는 패킷의 사이즈를 식별할 수 있음
 
content - 문자/숫자 탐지 content: "xxx";
nocase - 대소문자 구분 없이 탐지 nocase;
offset - 지정한 바이트번째 부터 탐지 offset: 3;
depth - 지정한 바이트까지 탐지 depth: 14;
distance - content 매칭 후 지정 위치 이후 다른 content 탐색 content: "xxx"; content: "yyy"; distance: 5;
within - content 매칭 후 지정 위치 안에 다른 content 탐색 content: "xxx"; content: "yyy"; within: 5;
pcre - 정규화 표기 pcre: "/(http|ftp) Traffic/"

 

관련 문제

17회 각각의 Snort Rule 설정의 의미를 작성하시오.

(1) msg:"GET Flooding"
답 : alert 발생 시 GET Flooding이 이벤트 이름으로 사용된다.

 

(2) content:"GET / HTTP1."
답 : GET / HTTP1. 문자열을 검사한다.

 

(3) content:"USER"; content:!"anonymous"
답 : 문자열이 USER을 포함하고 anonymous를 포함하지 않는지 검사한다.

 

(4) content:"|00|";depth:1
답 : 1바이트의 바이너리 값이 00인지 검사한다.

 

14회 다음은 공개 IDS 소프트웨어인 snort의 관제 규칙(rule)이다. 각각의 질문에 답하시오.
alert any any - > any 80 ( msg "XSS"; content "GET"; offset:1; depth:3: content:"/login.php.. XSS"; distance 1;)

위와 같은 snort 룰을 등록하였는데 아래 접근이 탐지되지 않았다.
Content :"/Login.php?id=...";

1) content:"GET"; offset:1 depth:3 의미

답 : 1바이트 띄고 3바이트 검사해서 get 찾아라


2) content:"/login.php XSS"; distance 1; 의미

답 : 이전거 찾은 위치에서 1byte 넘어가서 다음 content 찾아라


3) 탐지되지 않은 접근이 탐지되도록 하려면 어떻게 수정해야 하는가?

답 : nocase 추가

 

11회 모든 네트워크 대역에서 Telnet으로 접속하는 패킷 중 14번째 자리까지 'anonymous'가 포함된 트래픽에 대해서 'Dangerous' 메시지로 경고하는 snort rule을 만드시오.

 

답 : alert tcp any any -> any 23 (msg: "Dangerous"; content: "anonymous"; depth: 14; sid: 1000001;

반응형
반응형

리눅스마스터 1급 / X 윈도우 (X Window)

 

X 윈도우란?

리눅스 계열 운영체제에서 사용되는 윈도 시스템 및 X 윈도우 GUI 환경입니다. X 윈도 시스템은 디스플레이 장치에 창을 표시하며 마우스와 키보드 등의 입력 장치의 상호작용 등을 관리해 GUI 환경의 구현을 위한 기본적인 프레임워크를 제공합니다. 

 

클라이언트와 서버 모델을 기반으로 제작되어, 디스플레이 장치가 독립적이어서 이에 의존적이지 않아서 다양한 플랫폼에서 구동 되는 이식성이 뛰어납니다.

 

XFree86은 X 윈도 시스템의 구현체이며, 1990년대와 2000년대 초기의 많은 리눅스 배포판에서 사용되었지만, 2004년 2월의 라이선스 논란 이후로 XFree86의 코드를 기반으로 한 X.Org 서버가 사용되고 있습니다.

X 윈도우 환경 변수

- DISPLAY : xterm과 같은 X응용프로그램이 화면 출력을 위해 접속할 X서버의 장소를 의미합니다.

 

윈도우 매니저

- Kwin, FWM : KDE의 기본 윈도우 매니저

- Metacity, Enlightenment : GNONE 2.x의 기본 윈도우 매니저

- Mutter : GNONE 3x의 기본 윈도우 매니저

- TWM : 탭 윈도우 매니저.

- Xfce : 유닉스 및 유닉스 계열 플랫폼을 위한 자유 소프트웨어 데스크톱 환경

 

관련 명령어 및 도구

- xhost 명령어 :  X서버가 호스트 접근 제어를 하기 위해 사용하는 명령어입니다. X 윈도우에서 xterm과 같은 X응용프로그램은 X 서버에게 자신을 표현해 줄 디스플레이를 요청합니다.

- startx 명령어 : X윈도를 실행시키는 스크립트로 시스템 환경을 초기화시키고 시작하는데 필요한 여러 프로그램을 호출하고, 최종적으로 xinit을 호출하는 명령입니다.

- xterm : 컴퓨팅에서 X 윈도 시스템을 위한 표준 단말 에뮬레이터입니다.

- xauth :  .Xauthority 파일의 쿠키 내용을 추가, 삭제, 리스트를 출력하는 유틸리티입니다.

관련 문제

2020년 2회

다음 중 X 클라이언트 프로그램을 X 서버로 전송하기 변경해야할 환경 변수로 알맞은 것은? 3

1. TERM

2. XTERM

3. DISPLAY

4. TERMINAL

 

2020년 1회

다음 중 X윈도에 관한 설명으로 틀린 것은? 3
1. 원격지의 X클라이언트를 다른 시스템의 X서버에서 실행시킬 수 있다.
2. 디스플레이 장치에 의존적이지 않고 서로 다른 기종을 함께 사용할 수 있다.
3. X윈도는 클라이언트/서버 구조로 되어있고 서로간의 통신을 위해 xhost를 사용한다.
4. 현재 리눅스를 비롯하여 유닉스 대부분이 X.org 기반의 X윈도 시스템을 사용하고 있다.

 

2019년 2회

다음 중 X 클라이언트 프로그램을 다른 원격지의 X 서버로 전송하기 위해 변경해야 할 환경변수로 알맞은 것은? 4
1. TERM
2. TERMINAL
3. SESSION
4. DISPLAY

 

다음 중 GNOME 3 버전에서 사용하는 윈도 매니저로 알맞은 것은? 4
1. nautilus
2. KWin
3. Metacity
4. Mutter

 

2019년 1회

다음 중 X 관련 프로그램의 종류가 나머지 셋과 다른 것은? 1
1. Xfce
2. KWin
3. Metacity
4. Mutter

 

2018년 2회

다음 중 X윈도에 관한 설명으로 틀린 것은? 1
1. 현재 리눅스를 비롯하여 유닉스 대부분이 XFree86 기반의 X윈도 시스템을 사용하고 있다.
2. 디스플레이 장치에 의존적이지 않고 서로 다른 이 기종을 함께 사용할 수 있다.
3. 윈도 매니저는 X윈도 환경에서 윈도의 배치와 표현을 담당하는 시스템 소프트웨어이다.
4. X윈도는 서버와 클라이언트가 독립적으로 동작하는 네트워크 지향 시스템이다.

 

다음에서 설명하는 내용으로 알맞은 것은? 3
이것은 X윈도를 실행시키는 스크립트로 시스템 환경을 초기화시키고 시작하는데 필요한 여러 프로그램을 호출하고, 최종적으로 xinit을 호출하는 명령이다.
1. init
2. kde
3. startx
4. gnome

 

2018년 1회

다음 중 원격지에서 사용자 기반 인증 X 클라이언트를이용하기 위해 관련된 명령어 또는 환경 변수로틀린 것은? 4
1. xhost
2. xauth
3. DISPLAY 환경 변수
4. TERM 환경 변수

반응형

+ Recent posts