Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a shared internet connection on my network which I currently manage using Smoothwall Express. I want to be able to allocate each of my housemates a certain amount of bandwidth per month. My ISP charges me per MB, so I want to extend that charge to those that are using it, while not alowing them to rip me off.

The best way to do this, I think, is to have them pay for a certan amount, and then allow them to use that much. When they've used their quota, they must be completely blocked until I allocate more bandwidth to them.

Is Smoothall Express sufficient for this? What plug-ins do I need? If it can't do it, what can?

share|improve this question

Not out-of-the-box, no - and the commercial version likely is both out of budget for this project, and still wouldn't be a perfect fit.

You could hack something together with express though.. but it would be a fair old project.

share|improve this answer

pfSense should be able to do this out of the box with the traffic shaper module. Looking at the Traffic Shaping Guide you should be able to do this with dynamic queue creation based on dummynet.


share|improve this answer

This wouldnt be smoothwall compatible but..

iptables contains a 'quota' module you can use to implement this.

In order to make use of it you'd need to identify each connection in. If your doing simple natting you could potentially do that with identifying each connection by ip, but thats really trivial to spoof.

If you want something more definite you could possibly use pppoe to authenticate to identify users then setup relevent firewall rules against that connections device. That can be done using scripts you can get pppd to call to configure quota for that connection.

This would work regardless of ip selected by the user.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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