LAN의 모든 클라이언트에 대한 인터넷 게이트웨이 역할을 하는 dhcpd가 있는 Linux 서버에서: IP/MAC 주소를 기반으로 인터넷 사용량을 모니터링하고 특정 대역폭 소비가 초과되면 인터넷 액세스를 거부하는 방법은 무엇입니까?
답변1
Linux에서는 일부 스크립트를 사용하여 이 작업을 수행할 수 있습니다.
iptables
각 클라이언트의 모든 대역폭이 별도의 규칙을 통과하도록 방화벽 규칙을 만듭니다 . 커널의 방화벽 하위 시스템은 특정 규칙과 일치하는 네트워크 패킷과 바이트를 계산합니다. 달리면 카운터가 보입니다iptables -vL
. 성능을 향상시키기 위해 다음 옵션을 사용할 수도 있습니다-n
.iptables -vnL
- 각 클라이언트가 얼마나 많은 데이터를 사용하는지 확인하기 위해 cron에서 실행되는 스크립트를 작성하세요. 그런 다음 특정 숫자를 초과하면 클라이언트가 더 이상 인터넷에 액세스할 수 없도록 스크립트에서 방화벽을 수정하도록 합니다.
iptables
방화벽이 지워지면(예: 재부팅 후 또는 이 작업을 수행할 때) 카운터가 재설정 됩니다 iptables -F
. 따라서 스크립트가 일부 데이터베이스 등에 대한 결론을 명시하도록 할 수 있습니다.
답변2
트래픽 제한에 대한 귀하의 답변은 Serverfault에 제공됩니다.
https://serverfault.com/questions/174010/limit-network-bandwith-for-an-ip
트래픽을 모니터링하려면 iftop을 설치하세요.