ipmon(8)

명칭
ipmon - 로그 한 패킷을 위해서(때문에) /dev/ipl 를 모니터 한다

서식
ipmon [ -abDFhnpstvxX ] [ -N <device> ] [ -o [NSI] ] [ -O [NSI] ] [ -P <pidfile> ] [ -S <device> ] [ -f <device> ] [ <filename> ]

해설

ipmon 는, /dev/ipl 를 읽어내기 위해서(때문에) 오픈해, 패킷 필터 (으)로부터 보존되는 데이터를 기다립니다. 디바이스로부터 읽어내진 바이너리 데이터를 가독형식에서 재표시합니다. 다만, IP번호는 호스트명에 변환되지 않습니다. 또, 포트 번호도 서비스명에 변환되지 않습니다. 이 출력은, 디폴트로 표준 출력에 향할 수 있습니다. 혹은, 명령행으로 파일명이 지정되었을 경우는, 출력은 그 파일로 향해집니다. -s 옵션을 사용했을 경우, 출력은 그 쪽이 아니고 syslogd(8) (으)로 향해집니다. syslog 경유로 보내진 메세지에서는, 연월일은 삭제되어 있습니다만, 로그에 기록되었을 때 각 (마이크로 세컨드 포함한다)은 남아 있습니다.

ipmon 가 생성하는 메세지는, 공백에서 단락지어진 필드로부터 완성됩니다. 전메세지에 공통의 필드는 다음과 같습니다:

1. 패킷 수신 데이터. 메세지가 syslog 에 보내졌을 경우에는 억제됩니다.

2. 패킷 수신 시각. 이것은 HH:MM:SS.F 라고 하는 형식이며, 시간, 분, 초, 초의 소수부 (수형이 될 가능성이 있습니다)입니다.

3. 패킷이 처리된 인터페이스명이며, 예를 들면 we1 입니다.

4. 룰의 그룹과 룰 번호이며, 예를 들면 @0:17 입니다. 이것들은 ipfstat -n 로 열람 가능합니다.

5. 동작이며, 통과의 p, 블록의 b, 단보람 패킷의 의 머지않아인가입니다. 플래그 표시의 우선 순서는 S, p, b, n, L 입니다. 대문자의 P 또는 B 는, 특정의 룰은 아니고 글로벌의 로그 설정에 의해, 패킷이 로그 된 것을 의미합니다.

6. 주소. 이것은 실제로는 3 필드로부터 됩니다. 즉, 송신원주소와 포트 (콤마로 단락짓습니다)와 -> 라고 하는 심볼과 행선지 주소와 포트입니다. 예를 들면 209. 53.17. 22,80 -> 198.73. 220.17, 1722 입니다.

7. PR 에 이어 프로토콜의 이름 또는 번호입니다. 예를 들면 PR tcp 입니다.

8. len 에 이어 헤더장과 패킷 전체의 길이입니다. 예를 들면 len 20 40 입니다.

패킷이 TCP 패킷의 경우, 추가의 필드가 있습니다. 이것은, 하이픈에 계속되어, 설정되어 있는 플래그에 대응하는 캐릭터로부터 완성됩니다. 캐릭터 일람과 플래그에 대해서는, ipf.conf 의 메뉴얼 페이지를 참조해 주세요.

패킷이 ICMP 패킷의 경우, 마지막에 2 필드가 있습니다. 처음은 항상 `icmp'여, 다음은 ICMP 메세지와 서브 메세지 타입이며, slash로 단락지어집니다. 예를 들면 icmp 3/3 는 포트 도달 불능 메세지입니다.

ipmon 를 올바르게 동작시키기 위해서(때문에)는, 커널 옵션 IPFILTER_LOG 를 커넬로 설정할 필요가 있습니다. 상세한 것에 대하여는 options(4) 를 참조해 주세요.

옵션

-a  모든 디바이스 로그 파일을 오픈해, 로그 엔트리를 거기로부터 읽어들여 표시합니다.

-b  패킷의 본체를 로그 하는 룰에 대해, 헤더의 뒤에 패킷의 내용을 16 진수로 출력합니다.

-D  ipmon 를 demon로 합니다. ipmon 를 고아로 하기 위해서(때문에) 서브 쉘나 백그라운드를 사용할 필요는 없기 때문에, 끝 없게 실행 가능합니다.

-f <device>
    통상 IP 필터 로그 기록을 나타내는 로그 정보를 읽어들이기 위한, 다른 디바이스/파일을 지정합니다.

-F  현재의 패킷 log buffer를 플래시 합니다. 플래시 된 바이트수는 (결과가 0 이어도) 표시됩니다.

-n  가능하면, IP 주소와 포트 번호를 호스트명과 서비스명으로 변환합니다.

-N <device>
    NAT 로그 기록 읽기용으로 오픈하는 로그 파일을 <device> 로 설정합니다.

-o  실제로 데이터를 읽어들이는 로그 파일을 지정합니다. N - NAT 로그 파일, S - 상태 로그 파일, I - 통상 IP 필터 로그 파일입니다. -a 옵션은, -o NSI 를 지정하는 것과 등가입니다.

-O  어느 로그 파일을 읽어들이지 않는가를 지정합니다. 이것을 -a 와 함께 사용하는 것이, 가장 의미가 있는 사용법이지요. 파라미터로서 이용 가능한 캐릭터는, -o 와 같습니다.

-p  로그 메세지중의 포트 번호를 항상 번호로 표시해, /etc/services 의 검색을 시도하지 않습니다.

-P <pidfile>
    ipmon 프로세스의 PID 를 파일에 기입합니다. 디폴트에서는, /etc/opt/ipf/ipmon.pid (Solaris)인가, /var/run/ipmon.pid (44BSD 이후)인가, 그 외 모두에서는 /etc/ipmon.pid 입니다.

-s  읽어들인 패킷 정보를 파일에 보존하므로 없고, syslogd 경유로 송신 합니다. 컴파일시 및 인스톨시의 디폴트 퍼실리티는 local0 입니다. 이하로 가리키는 레벨을 이용할 수 있습니다.

    LOG_INFO - 액션이 pass 나 block 가 아니고, 키워드 "log" 를 이용해 기록된 패킷.

    LOG_NOTICE - 통과해, 기록된 패킷

    LOG_WARNING - 블록 되어 기록된 패킷

    LOG_ERR - 벌써 기록되어 「짧다」일지도 모른다고 보여진 패킷

-S <device>
    상태 로그 기록 읽기용으로 오픈하는 로그 파일을 <device> 로 설정합니다.

-t  tail(1)와 닮은 방법으로 입력 파일/디바이스로부터 읽어들입니다.

-v  TCP 윈도우, 확인 응답, identification sequence field를 표시합니다.

-x  패킷 데이터를 16 진수로 표시합니다.

-X  로그 헤더 기록 데이터를 16 진수로 표시합니다.

진단
ipmon 는, 읽어들이는 데이터는, 어떻게 보존해야할 것인가에 대한 일관성이 잡히고 있으면(자) 상정하고 있습니다. 기록된 데이터로부터 이상을 검지하는 테스트 에 실패했을 경우, 처리를 중단합니다.

관련 파일
/dev/ipl
/dev/ipnat
/dev/ipstate
/etc/services

관련 항목
ipl(4), ipf(8), ipfstat(8), ipnat(8)