대부분의 트래픽은 클라이언트와 서버 사이에서 발생한다. 이때 출발지와 목적지 포트는 IP에 대한 정보가 없는 상태에서 출발지와 목적지 간의 관계를 알려주는 핵심 정보.
문제는 확인해야할 상태가 만 개를 넘어감(..) 이때 case 문을 활용, 1024 이상의 범위에서 랜덤하게 발생하는 클라이언트 포트를 축약하면 상태 개수를 줄일 수 있다. 당연히 만 개 보다 63개의 상태 파악이 더 빠름.
select case when tcp_sport >= 1024 then 'gte1024' else tcp_sport end as sport, case when tcp_dport >= 1024 then 'gte1024' else tcp_dport end as dport, count(*)from tcphdrgroup by sport, dportorder by sport, count(*) desc
tcp와 udp 포트 정보를 취합하고 싶으면 union all.
select case when sport >= 1024 then 'gte1024' else sport end as srcport, case when dport >= 1024 then 'gte1024' else dport end as dstport, count(*)from ( select tcp_sport as sport, tcp_dport as dport from tcphdr union all select udp_sport as sport, udp_dport as dport from udphdr) agroup by srcport, dstportorder by srcport, count(*) desc
관련 글
댓글 없음:
댓글 쓰기