验证和优化IPTable和squid防火墙规则

时间:2018-05-19 20:20:32

标签: networking iptables squid hotspot

我的要求:

我需要从电脑上运行一个wifi热点。连接到热点的人应该能够在访问互联网时以全速和节流的速度访问PC上运行的本地Web服务器。我尝试使用下面列出的软件工具设置系统。我在低功耗电脑上运行它。所以我希望它尽可能优化。我需要你检查并确认我是否正在做这一切。

  • 连接到wlan0的人应该全速访问127.0.0.1:80。
  • 连接到wlan0的人应该通过eth0访问互联网 50KBps。

界面和PC设置:

  • eth0 - 有线互联网连接
  • wlan0 - 充当热点 - 使用hostapd
  • 用于dhcp的dnsmasq和用于热点的dns
  • 本地Web服务器运行于127.0.0.1:80
  • 用于限制网络传输速率的鱿鱼

dnsmasq配置文件:(用于ip范围和dns设置)

interface=wlan0      # Use interface wlan0
except-interface=lo
listen-address=172.24.1.1 # Explicitly specify the address to listen on
bind-interfaces      # Bind to the interface to make sure we aren't sending things elsewhere
server=8.8.8.8       # Forward DNS requests to Google DNS
domain-needed        # Don't forward short names
bogus-priv           # Never forward addresses in the non-routed address spaces.
dhcp-range=172.24.1.50,172.24.1.150,12h # Assign IP addresses between 172.24.1.50 and 172.24.1.150 with a 12 hour lease time

用于路由流量

IP表条目

的Rule1

Squid(throttling networkspeed)服务器在端口3128中运行。因此,将eth0(互联网提供接口名称)tcp端口80和443路由到squid服务器以限制网络速度。所以squid就像代理服务器一样运行。

 sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 172.24.1.1:3128
 sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j DNAT --to 172.24.1.1:3128

 

规则2

这里将wlan0(客户端)请求路由到在端口3128中运行的squid代理服务器

sudo iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 80 -j REDIRECT --to-port 3128
sudo iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 443 -j REDIRECT --to-port 3128

 

规则3

有助于为与wlan0

连接的客户提供回复
sudo iptables --t nat -A POSTROUTING --out-interface wlan0 -j MASQUERADE

 

Rule4

将特定的ip请求路由到lo(本地服务器在127.0.0.1:80中运行)

iptables -t nat -A PREROUTING -i wlan0 -p tcp -d 172.24.1.1 -j DNAT --to-destination 127.0.0.1:80

鱿鱼配置

acl test src 172.24.1.2/24

delay_pools 1

delay_class 1 1

delay_parameters 1 100000/100000 #100kilobyte per second

delay_access 1 allow test

所有这些看起来都有效,但有时PC和网络变慢,当很多人访问热点时肯定会很慢。

另外,我如何对此防火墙系统进行性能分析?

1 个答案:

答案 0 :(得分:1)

您是否确认客户端请求不会超过网络接口的最大吞吐量?从而导致硬件瓶颈?