1 / 23

IP Accounting

IP Accounting. 유닉스 네트워킹 실습 01390112 정명자. IP Accounting 의 정의. 리눅스 방화벽 소프트웨어와 매우 밀접한 관계를 갖음 네트워크 트래픽에 대한 모든 종류의 유용한 정보를 수집 할 수 있게 하는 기능을 제공 . 얼마나 많은 데이터를 전송하고 수신하고 있는지를 아는 것을 위해 데이터를 수집하는 것. IP 어카운팅을 위한 커널 설정. 활성화 할려면 먼저 리눅스 커널에 설정되어있는지 확인한다 . /proc/net/ip_acct 파일이 존재하는지 검사한다 .

iola-wilcox
Download Presentation

IP Accounting

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. IPAccounting 유닉스 네트워킹 실습 01390112 정명자

  2. IP Accounting의 정의 • 리눅스 방화벽 소프트웨어와 매우 밀접한 관계를 갖음 • 네트워크 트래픽에 대한 모든 종류의 유용한 정보를 수집 할 수 있게 하는 기능을 제공. • 얼마나 많은 데이터를 전송하고 수신하고 있는지를 아는 것을 위해 데이터를 수집하는 것.

  3. IP 어카운팅을 위한 커널 설정 • 활성화 할려면 먼저 리눅스 커널에 설정되어있는지 확인한다. • /proc/net/ip_acct 파일이 존재하는지 검사한다. • 있다면 IP 어카운팅 기능을 지원하지만 없다면 커널을 새로 구축해야 한다. • 커널 2.4 시리즈 neworking options ---> [*] network packet filtering (replaces ipchains)

  4. IP 어카운팅 설정 • 방화벽에서 사용하는 ipfwadm, ipchains, iptables로 설정한다. • ipfwadm으로 ip 어카운팅을 하기 위한 일반적인 문법 # ipfwadm –A [direction] [command] [parameters] • ipchains와 iptables를 위한 일반적인 명령어 문법 # ipchains –A chain rule-specification # iptables –A chain rule-specification • Ip 어카운팅을 위한 룰 지정 매개변수 • ip 방화벽에서 사용하던 것과 동일하다. • 계산하고 합계를 내길 원하는 네트워크 트래픽을 정확하게 정의 하기 위해 사용하는 것이다.

  5. 주소에 따른 어카운팅(1) • 가상 맥주 양조장의 두 부서의 연결되어 있는 리눅스 기반 라우터를 생각해보자. 라우터는 이더넷 장치 두개, eth0와 eth1을 가지고 각각 하나의 부서를 연결하고 있다. 그리고 ppp장치인 ppp0는 GMU의 주 캠퍼스에 연결된 고속 직렬 링크를 통해 연결하고 있다. 또한 비용 지불을 목적으로 직렬 링크를 통해 각 부서마다 생성하는 트래픽의 총합을 알기를 원하고, 관리를 목적으로 두 이더넷 사이에서 생성하는 트래픽의 총합을 알려고 한다고 가정해보자.

  6. 주소에 따른 어카운팅(3) 인터페이스 주소 ppp0라는 인터페이스를 통해 어느 방향이건 1772.16.3/24의 주소를 발신지 도는 주신지 주소로 가지고 이동하는 모든 데이 터를 계산하라.

  7. 주소에 따른 어카운팅(2) • 각 부서에서 얼마나 많은 데이터가 PPP 링크에서 생성되는가? • ipfwadm # ipfwadm –A both –a –w ppp0 –s172.16.3.0/24 –b # ipfwadm –A both –a –w ppp0 –s172.16.4.0/24 –b • ipchains # Ipchains –A input –i ppp0 –d 172.16.3.0/24 # Ipchains –A output –i ppp0 –s 172.16.3.0/24 # Ipchains –A input –i ppp0 –d 172.16.4.0/24 # Ipchains –A output –i ppp0 –s 172.16.4.0/24 • iptables # iptables –A FORWARD –i ppp0 –d 172.16.3.0/24 # iptables –A FORWARD –o ppp0 –s 172.16.3.0/24 # iptables –A FORWARD –i ppp0 –d 172.16.4.0/24 # iptables –A FORWARD –o ppp0 –s 172.16.4.0/24

  8. 주소에 따른 어카운팅(4) • 두 부서 사이에 얼마나 많은 데이터가 이동하는가? • ipfwadm • # ipfwadm –a both –a –s 172.16.3.0/24 –D 172.16.4.0/24 –b • ipchains • # ipchains –A forward –s 172.16.3.0/24 –D 172.16.4.0/24 –b • iptables • # iptables –A FORWARD –s 172.16.3.0/24 –d 172.16.4.0/24 • # iptables –A FORWARD –s 172.16.3.0/24 –d 172.16.3.0/24 • 부서 네트워크 중 한 쪽에 발신지 주소를 가지고 다른 쪽의 주소를 목적지 주소로 가진 모든 데이터그램을 계산한다.

  9. 서비스 포트에 따른 어카운팅(1) • 어떤 종류의 트래픽이 PPP 링크를 따라 운반되는지? • Ipfwadm을 사용하여 ppp링크로 운반되는 ftp, smtp, www 데이터 양의 통계를 수집한다. • Ipfwadm –A both –a –w ppp0 –p tcp –s 0/0 ftp ftp-data • Ipfwadm –A both –a –w ppp0 –p tcp –s 0/0 smtp • Ipfwadm –A both –a –w ppp0 –p tcp –s 0/0 www • Ipchains 을 사용하여 ppp링크로 운반되는 ftp, smtp, www 데이터 양의 통계를 수집한다. • ipchains –A input –i ppp0 –p tcp –s 0/0 ftp-data:ftp • ipchains –A output –i ppp0 –p tcp –d 0/0 ftp-data:ftp • ipchains –A input –i ppp0 –p tcp –s 0/0 smtp • ipchains –A output –i ppp0 –p tcp –d 0/0 smtp • ipchains –A input –i ppp0 –p tcp –s 0/0 www • ipchains –A output –i ppp0 –p tcp –d 0/0 www

  10. 서비스 포트에 따른 어카운팅(2) • iptables를 사용하여 PPP 링크로 운반되는 ftp, smtp, www 데이터 양의 통계를 수집한다. • Iptables –A FORWARD –i ppp0 –m tcp –p tcp --sport ftp-data:ftp • Iptables –A FORWARD –o ppp0 –m tcp –p tcp --dport ftp-data:ftp • Iptables –A FORWARD –i ppp0 –m tcp –p tcp --sport smtp • Iptables –A FORWARD –o ppp0 –m tcp –p tcp --dport smtp • Iptables –A FORWARD –i ppp0 –m tcp –p tcp --sport www • Iptables –A FORWARD –o ppp0 –m tcp –p tcp --dport www

  11. 서비스 포트에 대한 어카운팅(3) • FTP, SMTP, 웹트래픽을 필수 트래픽으로, 그 이외의 다른 트래픽은 꼭 필요하지 않는 것으로 묶는다. (필수 트래픽의 비율이 그렇지 않는 트래픽에 대해 얼마인지) # ipfwadm –A both –a –W ppp0 –p tcp –s 0/0 ftp ftp-data smtp www # ipfwadm –A both –a –W ppp0 –p tcp –s 0/0 1:19 22:24 26:79 81:3276 - 두번째 룰이 ftp, ftp-data smtp www를 제외한 포트를 모두 처리한다 # ipchains –N a-essent # ipchains –N a-noness # ipchains –N a-essent –j ACCEPT # ipchains –N a-noness –j ACCEPT # ipchains –A forward –I ppp0 –p tcp –s 0/0 ftp-data:ftp –j a-essent # ipchains –A forward –I ppp0 –p tcp –s 0/0 smtp –j a-essent # ipchains –A forward –I ppp0 –p tcp –s 0/0 www –j a-essent # ipchains –A forward –j a-noness

  12. 서비스 포트에 대한 어카운팅(4) - iptables # iptables –N a-essent # iptables –N a-noness # iptables –N a-essent –j ACCEPT # iptables –N a-noness –j ACCEPT # iptables –A forward –I ppp0 –m tcp –p tcp --sport ftp-data:ftp –j a-essent # iptables –A forward –I ppp0 –m tcp –p tcp --sport smtp –j a-essent # iptables –A forward –I ppp0 –m tcp –p tcp --sport www –j a-essent # iptables –A forward –j a-essent

  13. 서비스 포트에 대한 어카운팅(5) • 분할 처리 하게되면 첫째 조각을 제외하고 둘째 조각 이후에 대한 정보가 들어있지 않는 문제점 해결을 위한 룰 설정 • #ipfwadm –A both –a –W ppp0 –p tcp –s 0/0 0xffff • 둘째 이후 조각이 정확하게 어떤 포트로 오는지는 알 수 없지만 셀 수 있게 해준다. 분할된 조각에 가짜 포트번호 0xffff를 할당 • #ipchains –A forward -i ppp0 –p tcp –f • #iptables –A FORWARD –i ppp0 –m tcp –p tcp –f • 데이터의 원래 포트에 대해서는 알려주지 않지만 얼만 많은 데이터가 분할되는지 볼 수 있게 한다. 트래픽의 크기를 어카운팅 할수 있다. • -f는 나뉘어진 데이터그램의 첫째 조각(fragment)을 제외한 모든 것에 적용한다.

  14. ICMP 데이터그램의 어카운팅(1) • icmp는 tcp와 udp처럼 포트를 사용하지는 않지만 icmp 메시지 유형을 가지고 있다. • Icmp 메시지를 많이 생성하여 사용자의 네트워크 접근을 악의적으로 방해하는 시도에 대해 보여주는 어카운팅 룰을 집어 넣을 수 있다. • 송수신되는 ping데이터의 크기에 대한 정보를 수집하는 룰 • ipfwadm • # ipfwadm –A both –a –p icmp –s 0/0 8 # ipfwadm –A both –a –p icmp –s 0/0 0 # ipfwadm –A both –a –p icmp –s 0/0 0xff • ipchains • # ipchains –A forward –p icmp –s 0/0 8 # ipchains –A forward –p icmp –s 0/0 0 # ipchains –A forward –p icmp –s 0/0 –f

  15. ICMP 데이터그램의 어카운팅(2) • iptables # iptables –A FORWARD –m icmp –p icmp –sports echo-request # iptables –A FORWARD –m icmp –p icmp –sports echo-reply # iptables –A FORWARD –m icmp –p icmp –f • 첫째 룰은 icmp 데이터그램 ping요청에 관한 정보 수집. 둘째 룰은 icmp 데이터그램 ping응답에 관한 정보 수집. 셋째 룰은 icmp 데이터그램 분할(fragment)에 관한 정보 수집 • 발신지 또는 목적지 주소를 룰에 지정했다면 그것이 네트워크 내부 또는 외부에서 생성된 것인지와 같이 ping이 어디에서 오는지에 관한 정보를 얻을 수 있다.

  16. 프로토콜을 통한 어카운팅(1) • ppp0 인터페이스를 통해 흐르는 모든 트래픽이 tcp, udp또는 icmp 트래픽인지를 분석하고, 각각에 대한 적절한 카운터를 갱신할 수 있다. • ipfwadm • #ipfwadm –A both –a –W ppp0 –p tcp –D 0/0 • #ipfwadm –A both –a –W ppp0 –p udp –D 0/0 • #ipfwadm –A both –a –W ppp0 –p icmp –D 0/0 • ipchains • #ipchains –A forward –i ppp0 –p tcp –d 0/0 • #ipchains –A forward –i ppp0 –p udp –d 0/0 • #ipchains –A forward –i ppp0 –p icmp –d 0/0

  17. 프로토콜을 통한 어카운팅(2) • iptables • #iptables –A FORWARD –i ppp0 –m tcp –p tcp #iptables –A FORWARD –o ppp0 –m tcp –p tcp #iptables –A FORWARD –i ppp0 –m tcp –p udp #iptables –A FORWARD –o ppp0 –m tcp –p udp #iptables –A FORWARD –i ppp0 –m tcp –p icmp #iptables –A FORWARD –o ppp0 –m tcp –p icmp - 들어오는 흐름과 내보내는 흐름이 구분되어 있다.

  18. IP Accounting 결과 사용(1) • 수집된 어카운팅 데이터와 설정한 어카운팅 룰을 보려면 방화벽 설정 명령어를 사용하여 룰을 나열한다. 각각에 대한 패킷과 바이트 가운터가 출력 결과에 나열된다. • Ipfwadm으로 어카운팅 데이터 나열 • # ipfwadm –A –l IP accouting rules pkts bytes dir prot source destination ports 9833 2345k I/o all 172.16.3.0/24 anywhere n/a 56527 33m I/o all 172.16.4.0/24 anywhere n/a =>각 방향으로 보내는 패킷의 수를 알려준다. –e 옵션으로 확장된 출력 형식을 사용하면 적용할 수 있는 인터페이스명도 같이 출력한다.

  19. IP Accounting 결과 사용(2) • 출력결과에 있는 몇 가지 필드 설명 • dir : 룰을 적용하는 방향. 값에는 in, out또는 두 가지 모두를 가리키는 i/o가 있음 • Prot : 룰을 적용하는 프로토콜. • opt : 실행 시 사용한 옵션의 부호화된 양식. • ifname : 룰을 적용하는 인터페이스명. • ifaddress : 룰을 적용하는 인터페이스 주소. • 확장 옵션을 사용하여 정확한 단위로 수집한 데이터를 표시 • #ipfwadm –A –l –e -x

  20. IP Accounting 결과 사용(3) • ipchains로 어카운팅 데이터 나열 • #ipchains –L –V -v 인자를 사용하면 어카운팅 데이터(패킷과 바이트 카운터)를 표시 • #ipchains –l –v –x -x 인자(확장 출력 모드)를 사용하여 패킷과 바이트 카운터를 정확한 값으로 표시 • iptables로 어카운팅 데이터 나열 • #iptables –L –V ipchains 명령어와 매우 유사하게 동작한다 어카운팅 카운터를 보기위해 룰을 나열하려면 마찬가지로 –v를 사용해야 하며, -x인자를 지정하여 정확한 값이 있는 확장된 형식의 출력을 보여줌.

  21. 카운터 리셋 • 어카운팅 데이터를 정기적으로 읽어서 기록하고 다음 어카운팅 기간까지 어카운팅 데이터를 수집하는 것을 시작하기 위해 카운터를 다시 0으로 리셋하면 된다. • 설정 룰 • #ipfwadm –A –z • #ipchains –z • #iptables –z • 어카운팅 데이터를 읽어버리지 않게 하는 룰 • #ipfwadm –A –l –z • #ipchains –l –z • #iptables –l –z –v • 먼저 어카운팅 데이터를 나열하고 그런 다음 카운터를 즉시 0으로 만들고 카운팅을 재시작한다. • cron명령어를 사용하여 스크립트를 정기적으로 실행한다.

  22. 룰 세트 내버리기 • 설정한 IP 어카운팅 룰을 모두 내버리게(flush)하는것. • 리부팅할 필요 없이 룰 세트를 완전히 교체하고 싶을 때 유용함. • 룰 설정 • #ipfwadm –A –f • #ipchains –F • #iptables –F * 설정한 IP어카운팅 룰을 개별적으로 제거할 필요 없이 한 번에 모두 제거한다. * Ipchains로 룰 를 내버리는 것은 사용자 정의 체인은 제거되지 않는다. * 단지 그 안의 룰만 제거된다는 점을 주위해야 한다.

  23. 어카운팅 데이터 간접 수집 • 이터넷에 연결되어 있다면 전송하는 것 혹은 목적지를 가진 데이터뿐만 아니라 세그먼트의 모든 데이터에 어카운팅 룰을 적용할 수 있다. • IP forwarding을 꺼서 수신하는 데이터그램을 라우팅 하려고 시도하지 않게 해야 한다. • 설정 룰 • #echo 0 >/proc/sys/net/ipv4/ip_forward 머신이 라우터라면 IP포워딩을 꺼버리기 때문에 라우팅을 멈추게 된다. 그러므로 물리적으로 하나의 네트워크 인터페이스가 있는 머신에서 만 설정해야 된다는 것을 주위. • Ifconfig 명령어를 사용하여 이더넷 인터페이스에 promiscuous모드를 켠다.

More Related