23
1 IP IP Accounting Accounting 유유유 유유유유 유유 01390112 유유유

IP Accounting

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: IP Accounting

1

IPIP AccountingAccounting

유닉스 네트워킹 실습01390112

정명자

Page 2: IP Accounting

2

IP AccountingIP Accounting 의 정의의 정의 리눅스 방화벽 소프트웨어와 매우 밀접한

관계를 갖음

네트워크 트래픽에 대한 모든 종류의 유용한 정보를 수집 할 수 있게 하는 기능을 제공 .

얼마나 많은 데이터를 전송하고 수신하고 있는지를 아는 것을 위해 데이터를 수집하는 것 .

Page 3: IP Accounting

3

IP IP 어카운팅을 위한 커널 설정어카운팅을 위한 커널 설정 활성화 할려면 먼저 리눅스 커널에 설정되어있는지

확인한다 . /proc/net/ip_acct 파일이 존재하는지 검사한다 . 있다면 IP 어카운팅 기능을 지원하지만 없다면

커널을 새로 구축해야 한다 . 커널 2.4 시리즈 neworking options ---> [*] network packet filtering (replaces ipchains)

Page 4: IP Accounting

4

IP 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 방화벽에서 사용하던 것과 동일하다 .– 계산하고 합계를 내길 원하는 네트워크 트래픽을 정확하게 정의

하기 위해 사용하는 것이다 .

Page 5: IP Accounting

5

주소에 따른 어카운팅주소에 따른 어카운팅 (1)(1) 가상 맥주 양조장의 두 부서의 연결되어 있는 리눅스

기반 라우터를 생각해보자 . 라우터는 이더넷 장치 두개 , eth0 와 eth1 을 가지고 각각 하나의 부서를 연결하고 있다 . 그리고 ppp 장치인 ppp0 는 GMU 의 주 캠퍼스에 연결된 고속 직렬 링크를 통해 연결하고 있다 .

또한 비용 지불을 목적으로 직렬 링크를 통해 각 부서마다 생성하는 트래픽의 총합을 알기를 원하고 , 관리를 목적으로 두 이더넷 사이에서 생성하는 트래픽의 총합을 알려고 한다고 가정해보자 .

Page 6: IP Accounting

6

주소에 따른 어카운팅주소에 따른 어카운팅 (3)(3)

인터페이스 주소

ppp0 라는 인터페이스를 통해 어느 방향이건 1772.16.3/24 의주소를 발신지 도는 주신지 주소로 가지고 이동하는 모든 데이터를 계산하라 .

인터페이스 주소 넷마스크eth0eth1

172.16.3.0172.16.4.0

255.255.255.0255.255.255.0

Page 7: IP Accounting

7

주소에 따른 어카운팅주소에 따른 어카운팅 (2)(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

Page 8: IP Accounting

8

주소에 따른 어카운팅주소에 따른 어카운팅 (4)(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

부서 네트워크 중 한 쪽에 발신지 주소를 가지고 다른 쪽의 주소를 목적지 주소로 가진 모든 데이터그램을 계산한다 .

Page 9: IP Accounting

9

서비스 포트에 따른 어카운팅서비스 포트에 따른 어카운팅(1)(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

Page 10: IP Accounting

10

서비스 포트에 따른 어카운팅서비스 포트에 따른 어카운팅(2)(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

Page 11: IP Accounting

11

서비스 포트에 대한 어카운팅서비스 포트에 대한 어카운팅(3)(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

Page 12: IP Accounting

12

서비스 포트에 대한 어카운팅서비스 포트에 대한 어카운팅(4)(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

Page 13: IP Accounting

13

서비스 포트에 대한 어카운팅서비스 포트에 대한 어카운팅(5)(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) 을 제외한 모든 것에 적용한다 .

Page 14: IP Accounting

14

ICMP ICMP 데이터그램의 어카운팅데이터그램의 어카운팅(1)(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

Page 15: IP Accounting

15

ICMP ICMP 데이터그램의 어카운팅데이터그램의 어카운팅(2)(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 이 어디에서 오는지에 관한 정보를 얻을 수 있다 .

Page 16: IP Accounting

16

프로토콜을 통한 어카운팅프로토콜을 통한 어카운팅 (1)(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

Page 17: IP Accounting

17

프로토콜을 통한 어카운팅프로토콜을 통한 어카운팅 (2)(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- 들어오는 흐름과 내보내는 흐름이 구분되어 있다 .

Page 18: IP Accounting

18

IP Accounting IP Accounting 결과 사용결과 사용 (1)(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 옵션으로 확장된 출력 형식을 사용하면

적용할 수 있는 인터페이스명도 같이 출력한다 .

Page 19: IP Accounting

19

IP Accounting IP Accounting 결과 사용결과 사용 (2)(2)

출력결과에 있는 몇 가지 필드 설명– dir : 룰을 적용하는 방향 . 값에는 in, out 또는 두 가지 모두를

가리키는 i/o 가 있음– Prot : 룰을 적용하는 프로토콜 .– opt : 실행 시 사용한 옵션의 부호화된 양식 .– ifname : 룰을 적용하는 인터페이스명 .– ifaddress : 룰을 적용하는 인터페이스 주소 .

확장 옵션을 사용하여 정확한 단위로 수집한 데이터를 표시– #ipfwadm –A –l –e -x

Page 20: IP Accounting

20

IP Accounting IP Accounting 결과 사용결과 사용 (3)(3)

ipchains 로 어카운팅 데이터 나열– #ipchains –L –V

-v 인자를 사용하면 어카운팅 데이터 (패킷과 바이트 카운터 ) 를 표시– #ipchains –l –v –x

-x 인자 ( 확장 출력 모드 ) 를 사용하여 패킷과 바이트 카운터를 정확한 값으로 표시

iptables 로 어카운팅 데이터 나열– #iptables –L –V ipchains 명령어와 매우 유사하게 동작한다 어카운팅 카운터를 보기위해 룰을 나열하려면 마찬가지로 – v를 사용해야

하며 , -x 인자를 지정하여 정확한 값이 있는 확장된 형식의 출력을 보여줌 .

Page 21: IP Accounting

21

카운터 리셋카운터 리셋 어카운팅 데이터를 정기적으로 읽어서 기록하고 다음 어카운팅 기간까지

어카운팅 데이터를 수집하는 것을 시작하기 위해 카운터를 다시 0 으로 리셋하면 된다 .

설정 룰– #ipfwadm –A –z– #ipchains –z– #iptables –z

어카운팅 데이터를 읽어버리지 않게 하는 룰– #ipfwadm –A –l –z– #ipchains –l –z– #iptables –l –z –v

• 먼저 어카운팅 데이터를 나열하고 그런 다음 카운터를 즉시 0 으로 만들고 카운팅을 재시작한다 .

• cron 명령어를 사용하여 스크립트를 정기적으로 실행한다 .

Page 22: IP Accounting

22

룰 세트 내버리기룰 세트 내버리기 설정한 IP 어카운팅 룰을 모두 내버리게 (flush) 하는것 . 리부팅할 필요 없이 룰 세트를 완전히 교체하고 싶을 때 유용함 . 룰 설정

– #ipfwadm –A –f– #ipchains –F– #iptables –F

* 설정한 IP 어카운팅 룰을 개별적으로 제거할 필요 없이 한 번에 모두 제거한다 . * Ipchains 로 룰 를 내버리는 것은 사용자 정의 체인은 제거되지 않는다 .

* 단지 그 안의 룰만 제거된다는 점을 주위해야 한다 .

Page 23: IP Accounting

23

어카운팅 데이터 간접 수집어카운팅 데이터 간접 수집 이터넷에 연결되어 있다면 전송하는 것 혹은 목적지를 가진

데이터뿐만 아니라 세그먼트의 모든 데이터에 어카운팅 룰을 적용할 수 있다 .

IP forwarding 을 꺼서 수신하는 데이터그램을 라우팅 하려고 시도하지 않게 해야 한다 .

설정 룰– #echo 0 >/proc/sys/net/ipv4/ip_forward 머신이 라우터라면 IP 포워딩을 꺼버리기 때문에 라우팅을 멈추게 된다 . 그러므로 물리적으로 하나의 네트워크 인터페이스가 있는 머신에서 만 설정해야 된다는 것을 주위 .

Ifconfig 명령어를 사용하여 이더넷 인터페이스에 promiscuous모드를 켠다 .