UFW,允许从wlan到eth

我想用我的ubuntu 12.04笔记本作为我的smatphone的wifi hotsport。 一切顺利,使用dnsmasq和hostapd并允许UFW上的端口68和53。 但要访问网络,必须禁用UFW。 连接正常(wifi连接,IP正确接收,dns查询转发…)在UFW完整日志中,我看到:

Oct 3 17:09:41 ccd-7840l kernel: [28302.397796] [UFW AUDIT] IN=wlan1 OUT=eth8 MAC=8c:...:00 SRC=192.168.0.59 DST=74.125.234.196 LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=22391 DF PROTO=TCP SPT=46279 DPT=443 WINDOW=14600 RES=0x00 SYN URGP=0 Oct 3 17:09:41 ccd-7840l kernel: [28302.397841] [UFW BLOCK] IN=wlan1 OUT=eth8 MAC=8c:...:00 SRC=192.168.0.59 DST=74.125.234.196 LEN=60 TOS=0x00 PREC=0x00 TTL=63 ID=22391 DF PROTO=TCP SPT=46279 DPT=443 WINDOW=14600 RES=0x00 SYN URGP=0 

然后,我添加了以下规则:

 sudo ufw allow from 192.168.0.59 sudo ufw allow in on wlan1 from 192.168.0.48/28 

但它仍然是封锁的。 我不知道在谷歌上搜索什么来解决这个问题:)

这个解决方案对我有用。

首先,需要在ufw中启用数据包转发。 需要调整两个配置文件,在/ etc / default / ufw中将DEFAULT_FORWARD_POLICY更改为“ACCEPT”:

DEFAULT_FORWARD_POLICY = “接受”

然后编辑/etc/ufw/sysctl.conf并取消注释:(我猜你的启动虚拟热点的脚本已经设置了IP转发。所以你可以跳过这一步。或者可能想从你的脚本中删除IP转发线。)

 net/ipv4/ip_forward=1 

同样,对于IPv6转发取消注释:

 net/ipv6/conf/default/forwarding=1 

现在我们将为/etc/ufw/before.rules文件添加规则。 默认规则仅配置filter表,并且需要配置伪装nat表。 在标题注释之后将以下内容添加到文件的顶部:(再次,如果您有用于启动热点的脚本,则可以或者可能应该从那里删除与伪装相关的任何行。)

 ># nat Table rules >*nat >:POSTROUTING ACCEPT [0:0] ># Forward traffic through eth8. >-A POSTROUTING -s 192.168.0.0/24 -o eth8 -j MASQUERADE ># don't delete the 'COMMIT' line or these nat table rules won't be processed >COMMIT 

评论并非绝对必要,但记录您的配置被认为是一种好习惯。 此外,在修改/ etc / ufw中的任何规则文件时,请确保这些行是每个修改的表的最后一行:

 # don't delete the 'COMMIT' line or these rules won't be processed COMMIT 

对于每个表,都需要相应的COMMIT语句。 在这些示例中,仅显示了nat和filter表,但您也可以为raw表和mangle表添加规则。 [注意]

在上面的示例中,将eth8和192.168.0.0/24替换为适用于您的网络的接口和IP范围。

最后,禁用并重新启用ufw以应用更改:

 sudo ufw disable && sudo ufw enable 

现在应该启用IP伪装。 您还可以向/etc/ufw/before.rules添加任何其他FORWARD规则。 建议将这些附加规则添加到ufw-before-forward链中。