모든 psad 데몬은 /etc/psad 에 잇는 파일 psad.conf 를 참조하며, 이 파일은 간단한 규약을 따른다. 주석은 # 기호로 시작하며 설정 매개변수는 키-값 형식으로 명시한다. 예를 들어 psad.conf 의 HOSTNAME 변수는 psad 가 설치된 시스템의 호스트 명을 정의한다.

 ### Machine hostname
HOSTNAME                    Ultra60.kongju.ac.kr;

 모든 설정 변수 값은 값을 의미하는 문자열의 끝을 나타내기 위해 세미콜론으로 끝나야 한다. 그러므로 다음과 같이 문서화를 위해 세미콜론 다음에 주석을 포함시킬 수 있다.

SCAN_TIMEOUT                3600;  ### seconds

 끝으로 psad 변수 값은 psad 가 설정을 구문 분석할 때 확장되는 하위 변수를 포함할 수 있다. 예를 들어 psad 의 주요 로깅 디렉토리는 PSAD_DIR 변수가 정의하며, 기본적으로 /var/log/psad 로 설정된다. 다른 설정 변수는 $PSAD_DIR 변수를 참조할 수 있다.

 * /etc/psad/psad.conf

 psad.conf 파일은 psad의 주요 설정 파일로 psad 동작의 다양한 면을 제어하기 위한 100개 이상의 설정 변수를 포함한다.

 * http://www.cipherdyne.org/psad/docs/index.html 에서 자세한 설명을 볼 수 있다.

 – EMAIL_ADDRESSES
 EMAIL_ADDRESSES 변수는 psad 가 스캔 경고, 정보 메시지, 기타 공지를 전송할 메일 주소를 정의한다. 콤마을 사용해서 여러 개의 메일 주소를 함께 나타낼 수도 있다.

EMAIL_ADDRESSES             root@localhost;

 – DANGER_LEVEL{n}
 psad 는 경고에 우선순위를 두기 위해 악의적인 모든 활동을 위험 수준에 따라 나눈다. 위험 수준은 1에서 5까지(5가 가장 안 좋은 것)이며, 공격이나 스캔이 탐지된 각 IP 주소에 할당된다. 위험 수준 값은 스캔의 특성(패킷 수, 포트 범위, 시간 간격), 특정 패킷이 /etc/psad/signatures 파일에 정의된 서명과 일치하는지 여부, 패킷이 /etc/psad/auto_dl 파일에 있는 IP 나 네트워크로부터 시작됐는지 여부와 같은 세 가지 요소에 기반해 할당된다.

 포트 스캔의 경우 스캔의 패킷 수에 따라 DANGER_LEVEL{n} 변수 값이 달라지며, psad.conf 파일에 다음과 같이 정의돼 있다.

DANGER_LEVEL1               5;    ### Number of packets.
DANGER_LEVEL2               15;
DANGER_LEVEL3               150;
DANGER_LEVEL4               1500;
DANGER_LEVEL5               10000;

 – HOME_NET
 psad 는 의심스러운 네트워크 트래픽을 탐지하기 위해 수정된 스노트 규칙을 사용하기 때문에 psad.conf 파일에서 psad 가 사용하는 변수는 스노트가 사용하는 변수와 유사하다. HOME_NET 변수는 실행 중인 psad 가 설치된 시스템의 로컬 네트워크를 정의한다. 그러나 psad 와 스노트가 HOME_NET 변수를 처리하는 데에는 한가지 차이점이 있다. psad 는 INPUT 체인에 기록된 모든 패킷의 목적지를 출발지 주소와 무관하게 홈 네트워크로 취급한다. 이는 패킷이 iptables 방화벽 자체에서 라우팅됐기 때문이다. ENABLE_INTF_LOCAL_NETS 변수를 N 으로 설정해서 이러한 동작을 재정의할 수 있다. 이 경우 홈 네트워크를 다음과 같이 정의할 수 있다.

### HOME_NET                192.168.10.4/24;
### HOME_NET                10.1.1.0/24, 192.168.10.4/24;
### HOME_NET                NOT_USED;  ### only one interface on box
HOME_NET                    _CHANGEME_;

 – EXTERNAL_NET
 EXTERNAL_NET 변수는 외부 네트워크를 정의한다. 기본 값은 any 지만 HOME_NET 변수처럼 임의의 네트워크 목록으로 설정할 수 있다. 대부분의 경우 기본 값이 가장 좋은 것이다.

 – SYSLOG_DAEMON
 SYSLOG_DAEMON 변수는 psad 에게 로컬 시스템에서 실행 중인 syslog 데몬이 무엇인지 알려준다. 이 변수는 syslogd, syslog-ng, ulogd, metalog 중 하나의 값을 가진다. psad 는 이 변수 값을 이용해서 해당 syslog 설정 파일이 kern.info 메시지를 명명된 파이프 /var/lib/psad/psadfifo 에 기록하게 적절히 설정됐는지 확인한다. 단, psad 가 ulogd 를 통해 iptables 로그 메시지를 얻는 경우는 예외인데 ulogd 가 메시지를 직접 디스크에 기록하기 때문에 syslog 데몬이 실행 중이지 않아도 된다. 이 경우 psad 는 kmsgsd 데몬을 시작하지 않는다.

 * ulogd 는 넷필터 프로젝트에서 제공하는 사용자 공간 로깅 데몬으로 표준 LOG 타겟이 제공하는 것보다 유연하게 로깅 옵션을 설정할 수 있다. 특히 패킷은 다양한 ulogd 플러그인에 의해 관리되며, 플러그인은 다양한 동작을 지원하는데 예를 들어 패킷을 pcap 형식으로 디스크에 기록하거나 MySQL 데이터베이스에 기록할 수도 있다. ulogd는 http://www.gnumonks.org/ 프로젝트에서 받을 수 있다.

 – CHECK_INTERVAL
 psad 는 대부분의 시간을 대기하면서 보내며 새로운 iptables 로그 메시지가 /var/log/psad/fwdata 파일에 기록될 때만 활성화된다. 확인 시간 간격을 CHECK_INTERVAL 변수로 정의하며 초로 나타낸다. 기본 값은 5초다. 이 간격은 최소 1초까지 설정할 수 있지만 경고가 최대한 빨리 생성되길 원하는 경우가 아니라면 보통 이렇게 작은 값으로 설정할 필요는 없다.

 – SCAN_TIMEOUT
 리본적으로 SCAN_TIMEOUT 변수는 3600초(1시간)로 설정되며 psad는 이 값을 스캔이 추적되는 시간 간격으로 사용한다. 즉, 특정 IP 주소에서 악의적인 트래픽이 이 시간 간격동안 위험 수준 1에 도달하지 않으면 psad 는 경고를 생성하지 않는다. ENABLE_PERSISTENCE 를 Y로 설정하면 psad는 SCAN_TIMEOUT 변수를 무시한다.

### This is used only if ENABLE_PERSISTENCE = “N”;
SCAN_TIMEOUT                3600;  ### seconds

 – ENABLE_PERSISTENCE
 포트 스캔 탐지 소프트웨어는 일반적으로 포트 스캔을 잡기 위해 두 개의 임계치를 설정해야 하는데, 조사되는 포트 수와 시간 간격이 그것이다. 공격자는 스캔되는 포트의 수를 줄이거나 스캔의 속도를 줄여서 포트 스캔이 이 임계치에 도달하지 않게 할 수 있다. ENABLE_PERSISTENCE 변수는 psad가 SCAN_TIMEOUT 변수를 스캔 탐지의 요소로 사용하지 않게 해준다. 이는 스캐너가 수일이나 수주에 걸쳐 목표 시스템을 천천히 스캔함으로써 시간 만료 임계치보다 낮은 수준에 머물게 하려는 시도를 무력화하는 데 유용하다. 스캔이 최소 DANGER_LEVEL1 변수에 의해 정의된 패킷 수에 도달하면(이 수에 도달하는 데 걸린 시간이 얼마나 긴지에 무관하게) psad는 경고를 전송한다.

### If “Y”, means that scans will never timeout.  This is useful
### for catching scans that take place over long periods of time
### where the attacker is trying to slip beneath the IDS thresholds.
ENABLE_PERSISTENCE          Y;

 – PORT_RANGE_SCAN_THRESHOLD
 이 변수를 통해 psad가 위험 수준을 포트 스캔에 할당하기 전에 스캔돼야 하는 포트의 최소 범위를 정의할 수 있다. 기본적으로 PORT_RANGE_SCAN_THRESHOLD 는 1로 설정되며, 이는 위험 수준 1에 이르기 전에 최소한 두 개의 서로 다른 포트가 스캔돼야 함을 의미한다. 한 IP 주소가 한 포트만을 반복적으로 스캔할 수 있는데, 이 경우 psad는 경고를 전송하지 않는다(최소 위험 수준 1이 할당되지 않은 활동에 대해서는 절대 경고가 전송되지 않으며, psad에서는 경고가 전송되는 최소 위험 수준을 1에서 5까지로 설정할 수 있다. “EMAIL_ALERT_DANGER_LEVEL” 참조). psad가 스캔되는 포트의 범위를 탐지 요소로 사용하게 하고 싶지 않다면 PORT_RANGE_SCAN_THRESHOLD 를 0으로 설정하면 된다.

### Set the minimum range of ports that must be scanned before
### psad will send an alert.  The default is 1 so that at
### least two port must be scanned (p2-p1 >= 1).  This can be set
### to 0 if you want psad to be extra paranoid, or 30000 if not.
PORT_RANGE_SCAN_THRESHOLD   1;

 – EMAIL_ALERT_DANGER_LEVEL
 이 변수는 어떤 IP 주소가 최소 이 값과 동일한 위험 수준으로 할당되지 않는 한 psad 가 메일 경고를 전송하지 않게 하는 위험 수준의 최소 값을 설정하는데 쓰인다. 기본 값은 1이다.

### Send email alert if danger level >= to this value.
EMAIL_ALERT_DANGER_LEVEL    1;

 – MIN_DANGER_LEVEL
 MIN_DANGER_LEVEL 임계치는 psad가 수행하는 모든 경고와 추적 기능을 위한 전역 임계치이다. 예를 들어 MIN_DANGER_LEVEL이 2로 설정되면 psad는 특정 IP 주소가 위험 수준 2에 도달하기 전에는 이를 /var/log/psad/ip 디렉터리에 기록하지도 않는다. 그러므로 MIN_DANGER_LEVEL 변수는 항상 EMAIL_ALERT_DANGER_LEVEL 변수의 값보다 작거나 같게 설정해야 한다. 기본 MIN_DANGER_LEVEL 값은 1이다. (psad 1.4.8 버전의 경우 MIN_ARCHIVE_DANGER_LEVEL 지시어로 나타나 있었다.)

### Only archive scanning ip directories that have reached a danger
### level greater than or equal to this value.  Archiving old
### scanning ip directories only takes place at psad startup.
MIN_ARCHIVE_DANGER_LEVEL    1;

 
 – SHOW_ALL_SIGNATURES
 이 변수는 psad가 모든 경고에서 IP 주소와 관련된 모든 서명 경고 정보를 포함하게 할지 여부를 결정한다. 이 변수를 화설화할 경우 특정 IP 주소가 오랫동안 의심스러운 트래픽으로 한 사이트에 접속할 때 매우 긴 메일 경고가 초래될 수 있기 때문에 이는 기본적으로 비활설화된다. 그러나 SHOW_ALL_SIGNATURES 가 비활성화된 경우에도 psad 메일 경고는 마지막 CHECK_INTERVAL 에서 새로 촉발된 서명은 모두 포함한다.

### If “Y”, means all signatures will be shown since
### the scan started instead of just the current ones.
SHOW_ALL_SIGNATURES         N;

 – ALERT_ALL
 이 변수가 Y로 설정되면 psad는 어떤 IP 주소로부터의 새로운 악의적인 활동이 위험수준 1에 도달하는 한 이러한 활동이 탐지될 때마다 메일이나 syslog 경고, 또는 둘 모두를 생성한다. N으로 설정되면 IP 주소에 할당된 위험 수준이 증가할 때만 경고를 생성한다.

### If “Y”, send email for all newly logged packets from the same
### source ip instead of just when a danger level increases.
ALERT_ALL                   Y;

 – SNORT_SID_STR
 이 변수는 어떤 iptables 로그 메시지가 스노트 규칙 하나를 완전하게 기술하는 iptables 규칙에 의해 생성됐는지 알아보기 위해 iptables 로그 메시지와 매칭시킬 부분 문자열을 정의한다. 이런 iptables 규칙은 fwsnort가 생성하며 일반적으로 로깅 접두어 SID{n}을 포함한다. 여기서 {n}은 원본 스노트 규칙에서 얻은 스노트 ID 번호이다. SNORT_SID_STR의 기본 값은 단순히 SID다.

### Search for snort “sid” values generated by fwsnort
### or snort2iptables
SNORT_SID_STR               SID;

 – ENABLE_AUTO_IDS
 이 변수는 Y로 설정되는 경우 psad를 수동적 모니터링 데몬에서, (INPUT 체인과 OUTPUT 체인을 통해) 로컬 시스템과 (FORWARD 체인을 통해) 로컬 시스템에 의해 보호되는 모든 시스템과 연동해서 공격자 IP 주소를 차단하기 위해 로컬 iptables 정책을 동적으로 재설정함으로써 공격에 능동적으로 응답하는 프로그램으로 변환한다.

### If “Y”, enable automated IDS response (auto manages
### firewall rulesets).
ENABLE_AUTO_IDS             N;

 – IMPORT_OLD_SCANS
 psad가 포트 스캔과 기타 의심스러운 활동에 대해 수집하는 정보는 /var/log/psad 디렉터리에 기록된다. 위험 수준 1에 도달한 모든 IP 주소에 대해 새 디렉터리 /var/log/psad/ip 가 생성된다. 이 디렉터리에 저장되는 다양한 파일에는 가장 최근의 메일 경고, whois 출력, 서명 매칭, 위험 수준, 패킷 수가 포함된다. 처음 시작 시 psad는 보통 기존의 /var/log/psad/ip 디렉터리를 제거하지만 IMPORT_OLD_SCANS를 Y로 설정해서 기존의 디렉터리로부터 모든 데이터를 가져올 수 있다.이 기능을 통해 이전 psad 인스턴스의 스캔 데이터를 일지 않고 psad를 재시작하거나 전체 시스템을 재부팅할 수 있다.

### If “Y”, then psad will import old scan source ip directories
### as current scans instead of moving the directories into the
### archive directory.
IMPORT_OLD_SCANS            N;

 – ENABLE_DSHIELD_ALERTS
 이 변수를 Y로 설정하면 psad는 스캔 데이터를 DSHIELD 분산 침입 탐지 시스템으로 전송한다. 스캔 정보는 민감한 정보일 수 있기 때문에 스캔 데이터를 DSHIELD로 넘기면 해당 스캔 데이터는 더 이상 여러분의 제어 하에 있지 않으며 상대적으로 열린 데이터베이스로 구문 분석된다는 점을 알아야 한다. 그러나 DSHIELD는 가장 일반적으로 공격당하는 서비스나 현재 대부분의 시스템을 공격하는 어떤 IP 주소가 무엇인지(이런 IP 주소는 엄격한 방화벽 규칙의 좋은 후보가 된다.)에 대한 정보를 사용자가 좀 더 잘 이해할 수 있게 해준다. 많은 사람들이 이 기능을 활성화할수록 인터넷은 좀 더 안전해진다.

### Send scan logs to dshield.org.  This is disabled by default,
### but is a good idea to enable it (subject to your site security
### policy) since the DShield service helps to track the bad guys.
### For more information visit http://www.dshield.org
ENABLE_DSHIELD_ALERTS       N;

 – IGNORE_PORTS
 많은 침입 탐지 시스템의 주요 기능은 관리자가 IDS로 하여금 완전히 무시하게 하고 싶은 데이터 조각을 필터링하는 기능이다. IGNORE_PORTS 변수는 psad가 목적지 포트 번호와 프로토콜(TCP나 UDP)에 기반해서 iptables 로그 메시지를 무시하게 한다. 포트 범위와 다중 포트, 프로토콜 조합은 다음과 같이 지정할 수 있다.

 ### define a set of ports to ignore (this is useful particularly
### for port knocking applications since the knock sequence will
### look to psad like a scan).  This variable may be defined as
### a comma-separated list of port numbers or port ranges and
### corresponding protocol,  For example, to have psad ignore all
### tcp in the range 61000-61356 and udp ports 53 and 5000, use:
### IGNORE_PORTS        tcp/61000-61356, udp/53, udp/5000;
IGNORE_PORTS                NONE;

 IGNORE_PORTS 변수를 사용하기보다는 무시하고 싶은 포트로의 패킷이 LOG 규칙과 일치되기 전에 다른 규칙과 매칭되게 iptables 정책을 조절하는 것이 낫다.

 – IGNORE_PROTOCOLS
 IGNORE_PROTOCOLS 변수를 사용하면 psad는 전체 프로토콜을 무시할 수 있다. 대개는 iptables 정책을 조정해서 무시하고 싶은 프로토콜을 기록하지 않는 것이 더 좋지만 예를 들어 psad가 모든 ICMP 패킷을 무시하게 하고 싶다면 IGNORE_PROTOCOLS 지시어를 설정하면 된다.

### allow entire protocols to be ignored.  This keyword can accept
### a comma separated list of protocols.  Each protocol must match
### the protocol that is specified in a Netfilter log message (case
### insensitively, so both “TCP” or “tcp” is ok).
### IGNORE_PROTOCOL             tcp,udp;
IGNORE_PROTOCOLS            NONE;

 – IGNORE_LOG_PREFIXES
 iptables 정책은 매우 복잡할 수 있으며, 다수의 여러 가지 로깅 규칙을 포함할 수 있다. 또 각 로깅 규칙은 자신만의 로깅 접두어를 가질 수도 있다. IGNORE_LOG_PREFIXES 지시어를 이용하면 무시하고 싶은 특정 로깅 접두어를 설정할 수 있다.

### Ignore these specific logging prefixes
IGNORE_LOG_PREFIXES         NONE;

 – EMAIL_LIMIT
 어떤 경우에는 iptables 정책이 특정 트래픽을 기록하게 설정되는데, 이 트래픽이 네트워크상에서 여러 번 반복될 수 있다(예를 들어 특정 DNS 서버로의 DNS 요청). 이러한 트래픽이 스캔이라고 해석되면 해당 트래픽 자체가 반복되기 때문에 psad는 이 트래픽에 대해 다량의 메일 경고를 전송할 수 있다. EMAIL_LIMIT 변수를 사용하면 psad가 스캐닝 IP 주소에 대해 전송되는 메일 경고의 수에 제한을 두게 강제할 수 있다. 기본 값은 0으로 이는 제한이 없다는 것을 의미한다. 그러나 EMAIL_LIMIT 값을 50으로 설정하면 psad는 특정 IP 주소에 대해 50개 이상의 메일 경로를 전송하지 않는다.

### Send no more than this number of emails for a single
### scanning source IP.  Note that enabling this feature may cause
### alerts for real attacks to not be generated if an attack is sent
### after the email threshold has been reached for an IP address.
### This is why the default is set to “0”.
EMAIL_LIMIT                 0;

 – ALERTING_METHODS
 대부분의 관리자는 psad가 제공하는 메일과 syslog 보고 모드를 모두 사용한다. 그러나 ALERTING_METHODS 변수를 이용하면 psad가 메일 경고와 syslog 경고 중 어떤 것을 생성하게 할지 제어할 수 있다. ALERTING_METHODS 변수는 noemail, nosyslog, ALL과 같은 세 가지 값을 가질 수 있다. noemail과 nosyslog 값은 psad가 메일이나 syslog 경고를 전송하지 않게 한다. 이 값들을 조합해서 모든 경고를 비활성화할 수도 있다. 기본 값은 두 모두를 생성하는 것이다.(psad 1.4.8 버전의 경우 /etc/psad/alert.conf 파일에 이 지시어가 나타나있다.)

### Allow reporting methods to be enabled/restricted.  This keyword can
### accept values of “nosyslog” (don’t write any messages to syslog),
### “noemail” (don’t send any email messages), or “ALL” (to generate both
### syslog and email messages).  “ALL” is the default.  Both “nosyslog”
### and “noemail” can be combined with a comma to disable all logging
### and alerting.
ALERTING_METHODS            ALL;

 – FW_MSG_SEARCH
 FW_MSG_SEARCH 변수는 psad가 iptables 로그 메시지를 어떻게 검색할지 정의한다. psad가 (iptables에 주는 –log-prefix 인자를 사용해 iptables LOG 규칙에 정의된) 특정 로그 접두어를 포함하는 로그 메시지만을 분석하게 제한하려면 FW_MSG_SEARCH 변수로 접두어를 정의하면 된다. iptables는 패킷에 FW_MSG_SEARCH 변수 값과 다른 로그 접두어를 할당하게 설정할 수 있으며 이 경우 psad는 해당 패킷을 분석하지 않는다.

### The FW_MSG_SEARCH variable can be modified to look for logging messages
### that are specific to your firewall configuration (specified by the
### “–log-prefix” option.  For example, if your firewall uses the
### string “Audit” for packets that have been blocked, then you could
### set FW_MSG_SEARCH to “Audit”;  The default string to search for is
### “DROP”.  Both psad and kmsgsd reference this file.  NOTE: You can
### specify this variable multiple times to have psad search for multiple
### strings.  For example to have psad search for the strings “Audit” and
### “Reject”, you would use the following two lines:
#FW_MSG_SEARCH               Audit;
#FW_MSG_SEARCH               REJECT;

FW_MSG_SEARCH               DROP;

 * /etc/psad/auto_dl

 모든 IDS는 항상 높은 확률로 긍정 오류를 범한다. 그러므로 IDS는 특정 시스템, 네트워크, 프로토콜이 모든 탐지 동작과 (가장 중요하게는)자동화된 모든 응답 기능에서 제외될 수 있게 해주는 허용 목록 기능을 갖춰야 한다. 또 특정 IP 주소나 네트워크가 공격자로 알려질 수도 있으므로 이들을 차단할 차단 목록 기능도 필요하다.
 이러한 요구 사항은 다음과 같은 구문을 따르는 psad의 auto_dl 파일이 충족시킨다.

#  <IP address>  <danger level>  <optional protocol>/<optional ports>;
#
# Examples:
#
#  10.111.21.23    5;          # Very bad IP.
#  127.0.0.1       0;          # Ignore this IP.
#  10.10.1.0/24    0;          # Ignore traffic from this entire class C.
#  192.168.10.4    3    tcp;   # Assign danger level 3 if protocol is tcp.
#  10.10.1.0/24    3    tcp/1-1024;  # Danger level 3 for tcp port range

# 82.96.96.0/24   0; # please.read.http.proxyscan.freenode.net

 위험 수준이 0으로 설정되면 psad는 해당 IP주소나 네트워크를 완전히 무시한다. 반대로 특정 IP 주소나 네트워크가 극도로 악의적이라고 알려지는 경우에는 위험 수준을 5로 설정할 수 있다.

 * /etc/psad/signatures

 /etc/psad/signatures 파일은 약간 수정된 스노트 규칙을 약 200개 정도 포함한다. 이 규칙들은 psad가 iptables 로그 메시지로부터 바로 탐지할 수 있는 공격을 나타낸다. 이 규칙 중 어떤 것도 네트워크 트래픽에 대한 애플리케이션 계층 검사를 필요로 하지 않는다. 애플리케이션 계층 검사는 fwsnort 가 수행한다. 이 파일에 있는 규칙을 하나 예로 들면 다음과 같다.

alert tcp $EXTERNAL_NET any -> $HOME_NET 1080 (msg:”SCAN SOCKS Proxy attempt”; flags:S; reference:url,help.undernet.org/proxyscan/; classtype:attempted-recon; sid:615; rev:3; psad_dlevel:2)

 * /etc/psad/snort_rule_dl

 /etc/psad/auto_dl 과 유사하게 snort_rule_dl 파일은 psad가 스노트 규치고가 매칭되는 모든 IP 주소의 위험 수준을 자동으로 설정하게 한다. 이 파일의 구문은 다음과 같다.

# Syntax: Each non-comment line of this file contains a snort ID number, and
#         the corresponding psad danger level like so: <sid> <danger level>.

  위험 수준이 0이라면 psad는 해당 서명 매칭을 무시하고 어떤 경고도 전송하지 않는다. 일부 서명 매칭은 다른 것보다 더 안 좋을 수 있다. 예를 들어 psad가 스노트 규칙 ID 1812(EXPLOIT gobbles SSH exploit attempt)와 매칭되는 트래픽을 탐지 했다면 이는 잠재적으로 스노트 규칙 ID 469(ICMP PINGN MAP)에 대한 매칭보다 훨씬 더 위험하다. 물론 고블스(Gobbles) SSH 공격의 효과를 제한하는 가장 좋은 전략은 애초에 취약한 SSH 데몬을 실행하지 않는 것이지만 이 공격을 탐지하는 것은 여전히 중요하다. 다음과 같이 스노트 규칙 2284와 매칭되는 IP 주소의 위험 수준을 3으로 설정할 수 있다.

### The following example illustrates the syntax for Snort SID 2284
#2284   3;

 * /etc/psad/ip_options

 IP 헤더의 옵션 부분이 IP 통신에서 자주 사용되지는 않지만 iptables는 –log-ip-options 명령 행 인자를 이용해서 IP 옵션을 기록할 수 있다. iptables 로그 메시지가 IP 옵션을 포함하는 경우 psad는 소스 라우팅(source routing) 시도와 같은 수상한 활동에 대해 이 옵션은 구문 분석한다. 일부 스노트 규칙은 IP 옵션의 의심스러운 사용을 정의하며, psad는 iptables 로그 메시지의 IP 옵션을 해석하기 위해 /etc/psad/ip_options 파일을 참조한다.

 * /etc/psad/pf.os

 psad는 원격 운영체제를 수동적으로 핑거프린팅하기 위해 p0f 프로젝트의 OS 데이터베이스를 사용한다. 이 데이터베이스는 psad가 /etc/psad/pf.os 파일에 설치하며, psad는 처음 시작할 때(또는 psad가 kill 명령어나 psad -H를 통해 중단[hangup]이나 HUP 신호를 받았을 때) 이를 불러온다.

 다음은 리눅스에 대한 p0f 핑거프린트의 예다.

S20:64:1:60:M*,S,T,N,W0:        Linux:2.2:20-25:Linux 2.2.20 and newer
S22:64:1:60:M*,S,T,N,W0:        Linux:2.2::Linux 2.2
S11:64:1:60:M*,S,T,N,W0:        Linux:2.2::Linux 2.2

Tags: ,

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.