1

On a linux server with dhcpd that acts as the internet gateway for all clients of the LAN: how can I monitor the internet usage based on IP/MAC address, and deny internet access if a certain bandwidth consumption has been exceeded?

2
  • Which distro are you using? Some distros provide gui tools for this.
    – Usi
    Mar 1, 2016 at 6:47
  • @Magus In my case it's debian 8. I use i3 and XFCE desktop.
    – ig-dev
    Mar 1, 2016 at 7:11

2 Answers 2

2

On Linux, you could get this done with some scripting:

  • Create firewall rules with iptables so that all bandwidth for each client passes through a separate rule. The firewall subsystem in the kernel will count network packets and bytes that a particular rule matched. You can see the counters if you run iptables -vL. You might want to use the -n option too, for performance: iptables -vnL
  • Write a script that runs from cron and which checks how much data has been used by every client. Then if it's over a particular amount, have the script modify the firewall so that the client can not access the Internet anymore

Note that iptables' counters get reset when the firewall is cleared (i.e., after reboot, or when you do iptables -F. As such, you might want to have the script state its conclusions to some database or something.

0

Your answer is given here on Serverfault for limiting traffic

https://serverfault.com/questions/174010/limit-network-bandwith-for-an-ip

and for monitoring that traffic install iftop

7
  • 2
    I believe the question was about bandwidth consumption (i.e., number of bytes sent over a large period of time, like a month or so) rather than immediate bandwidth usage. In that case, it's not a duplicate Mar 1, 2016 at 7:22
  • Yes, but I'm wary of using iptables to do this. Your method will produce network errors on the user's end.
    – Usi
    Mar 1, 2016 at 7:24
  • The top answer gives a way to do this without stopping the connection. Not a duplicate, but it answers the question.
    – Usi
    Mar 1, 2016 at 7:25
  • I believe that's what the OP wants, but hey Mar 1, 2016 at 7:26
  • Ok. I agree with you. I'm voting your answer up.
    – Usi
    Mar 1, 2016 at 7:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.