09. 3. 18.

넷스케일러 주요 SNMP OID 값

넷스케일러 시스템을 구성하거나 구성 후 시스템을 지속적으로 모니터링을 해야할 경우 넷스케일러는 아래와 같은 주요 항목에 대한 SNMP OID를 제공하고 있다.

  • resCpuUsage (1.3.6.1.4.1.5951.4.1.1.41.1)CPU utilization percentage
  • resMemUsage (1.3.6.1.4.1.5951.4.1.1.41.2)This represents the percentage of memory utilization on NetScaler.
  • tcpCurServerConn (1.3.6.1.4.1.5951.4.1.1.46.1)Server connections, including connections in the Opening, Established, and Closing state.
  • tcpCurClientConn (1.3.6.1.4.1.5951.4.1.1.46.2)Client connections, including connections in the Opening, Established, and Closing state.
  • tcpSurgeQueueLen (1.3.6.1.4.1.5951.4.1.1.46.15)Connections in the surge queue. When the NetScaler cannot open a connection to the server, for example when maximum connections have been reached, the NetScaler queues these requests.

넷스케일러에서 제공하는 모든 기능에 대해서 SNMP OID값을 제공하는데 이 부분은 첨부 파일을 참조하길 바랍니다.

09. 3. 10.

Limit the number of requests per second from a URL

IPS 또는 UTM 솔루션에서 적용되고 있는 주요 기능 중의 하나로 초당 특정 URL에 대한 Request수를 제한하는 설정을 통해 무한 Refresh 등의 공격에 대해서 효과적으로 어플리케이션을 보호 할 수 있는 기능을 넷스케일러에서 제공할 수 있다.

넷스케일러는 Rate Limiting이란 새로운 기능을 통해 어플리케이션의 Request 뿐만 아니라 Connection 수 또는 bandwidth 설정까지도 제어할 수 있다.

우선 특정 사용자의 Request / sec수를 5개로 제한하는 설정에 대해서 한번 살펴보면 다음과 같이 설정할 수 있다.

  1. LimitSelector정책 생성
    add ns limitSelector ip_limit_selector http.req.url "client.ip.src"
  2. 트래픽 rate에 대한 thresthold 설정이 포함된 LimitIdentifier를 생성
    add ns limitIdentifier ip_limit_identifier -threshold 4 -timeSlice 3600 -mode request_rate -limitType smooth -selectorName ip_limit_selector
  3. 해당 사용자의 request를 redirect하기 위한 responder action 생성
    add responder action my_web_site_redirect_action redirect "\http://www.mycompany.com/\"
  4. Limit 설정이 포함된 내용을 적용할 responder 정책을 생성
    add responder policy ip_limit_responder_policy "http.req.url.contains(\"myasp.asp\") && sys.check_limit(\"ip_limit_identifier\")" my_web_site_redirect_action
  5. 생성된 정책을 global로 설정
    bind responder global ip_limit_responder_policy 100 END -type default

해당 설정을 통해 특정 대상의 어플리케이션으로 유입되는 F5 공격에 대한 방어를 아주 유연하게 대응할 수 있다.

참조 : http://community.citrix.com

nstcpdump.sh 사용법

넷스케일러에서 특정 어플리케이션에 대한 문제를 확인하거나 넷스케일러 자체적인 패킷 처리 방향을 확인하는 유용한 방법 중의 하나로 nstcpdump.sh라는 도구가 있다.

이 도구를 사용하면 많은 문제에 대한 디버깅이 가능하지만 효과적으로 사용하기 위해서는 아래와 같이 제공되는 common option을 잘 활용할 수 있어야 한다.

common option :
  • -c : 캡쳐할 패킷의 수를 지정할 수 있다. 지정된 패킷 수량이 수집되면 자동으로 수집이 중단된다.
  • -X : 화면에 표시할 패킷의 내용은 16진수와 ASCII 코드로 표시 한다.
  • -w : 지정된 경로에 캡쳐된 패킷을 저장한다. 양은 cap 또는 pcap 형식으로 생성할 수 있다.
  • -i : 특정 인터페이스에 대한 패킷만을 수집하고자 할 경우 인터페이스를 지정하여 수집할 수 있다.
  • host [ipaddress] : 특정 host ip를 지정하여 수집한다.
  • net [address] mask [netmask] : 특정 네트워크 범위에 대한 내용을 수집한다.
  • port [port #] : 특정 포트에 대한 내용을 수집한다.
  • dst port : 특정 destination 포트에 대한 패킷만을 수집한다.
  • src port : 특정 source 포트에 대한 정보만을 수집한다.
  • tcp : tcp 패킷 정보만 수집한다.
  • udp : ucp 패킷 정보만 수집한다.

예를 들어, 아래와 같이 옵션을 조합하여 적용할 수 있다.

root@ns# nstcpdump.sh -X dst host 1.2.3.4 and port 80

또는

root@ns# nstcpdump.sh -w /var/trace/trace1.pcap -i 1/1 -i 1/2

또는

root@ns# nstcpdump.sh -w /var/trace/trace2.cap host 1.2.3.4 and not port 443

여러 가지 common option을 조합하여 원하는 정보만을 수집할 수 있다면 조금 더 빠른 문제 해결이 가능할 것이 분명하다.

09. 3. 8.

HPING을 통한 공격 시뮬레이션

HPING은 TCL 기반 프로그램을 이용한 많은 UTILITY이다. 보안 관리자라면 이 툴을 통해 많은 시뮬레이션을 시도해 볼 수 있다.

기본적으로 많이 사용할 수 있는 기능은 아래와 같다.
  1. IP Spooping
    #hping -a -S
  2. LAND Attack
    #hping -a -s <설정한 destip와 동일하게 설정> -p -S -c 1
  3. SYN Flooding
    #hping -a -p -S -i u1000
    u1000은 초당 1000개의 패킷을 생성한다는 의미
  4. TCP Packet Generate
    #hping send "ip(saddr=xxx.xxx.xxx.xxx, daddr=xxx.xxx.xxx.xxx, ttl=255)+tcp(sport=123,dport=80,flag=s)"

www.hping.org 사이트에서 HPING 는 메뉴얼을 통해 다양한 기능에 대해서 효율적으로 사용하는 방법을 습득하여, 다양하게 이용할 수 있도록 준비해야 한다.

09. 3. 4.

cli prompt 변경

넷스케일러에서 제공하는 CLI(Common Line Command)에서 prompt 설정을 통해 보다 효율적으로 명령어 작업을 수행할 수 있다.

set cli prompt 명령을 통해서 설정 또는 변경이 가능하며, 설정된 내용을 삭제하고자 할 경우 clear cli promt 명령어를 통해서 기존의 설정을 제거할 수 있다.

그리고 현재 설정된 prompt 내용을 확인하고자 할 경우 show cli prompt 명령어를 통해서 확인이 가능하고, 어떤 설정이 있는가에 대한 정보가 필요할 경우 man set cli prompt 명령어를 통해 확인할 수 있다.

그럼 실제 man 페이지를 통해 내용을 확인해보면,
ARGUMENTS
promptString
The prompt string. The following special values are allowed:
%! - will be replaced by the history event number
%u - will be replaced by the NetScaler user name
%h - will be replaced by the NetScaler hostname
%t - will be replaced by the current time
%T - will be replaced by the current time (24 hr format)
%d - will be replaced by the current date.

This is a mandatory argument

위의 내용과 같이 확인할 수 있으며, 예를 들어 HA 구성일 경우 %s 명령어를 통해 CLI의 prompt에 HA node 정보를 표시할 수 있다.

set cli prompt %s
결과 : > set cli prompt %s
Done
Primary>

여러 가지 정보를 중복으로 표시할 경우도 있는데 이 때는 set cli prompt "%u %T"이런 방식으로 설정할 수 있다.

실제 많은 command를 cli를 통해 적용하는데 있어 간단한 정보지만, 적절하게 사용한다면 효율적인 cli 작업이 가능할 것 같다.