请教iptables和SuSEfirewall2的关系
opensuse吧
全部回复
仅看楼主
level 12
16181218 楼主
我根据这篇文章http://www.jianshu.com/p/f688cdfa6947 用iptables配置ss-redir的全局代理上网,
首先是关闭SuSEfirewall2,iptables -F清空NAT,filter表,修改filter默认规则为ACEEPT
#创建一个叫SOCKS的链iptables -t nat -N SOCKS
过滤掉内网和vps的ip:
iptables -t nat -A SOCKS -d 172.16.0.0/12 -j RETURN
iptables -t nat -I SOCKS -d "vps的ip" -j RETURN
其他的都走ss-redir:
iptables -t nat -A SOCKS -p tcp -j REDIRECT --to-ports 1080
将SOCKS链生效:
iptables -t nat -A OUTPUT -p tcp -j SOCKS
配置完了可以正常通过ss-redir上网
但是我启动SuSEfirewall2后,重新执行上面的步骤,就不行了,抓包看到浏览器和1080端口交换ack后,浏览器就马上返回rst给1080端口了,
然后我在SuSEfirewall2还是启动的状态下清空NAT,filter表,修改filter默认规则为ACEEPT,重新执行添加SOCKS链的步骤,还是一样交换ack后浏览器给1080端口返回rst
只有关闭SuSEfirewall2才行,不知道SuSEfirewall2起到了什么作用让这个全局代理失败,SuSEfirewall2不是只生成iptables规则而已吗?求大神指导一下
2016年03月14日 10点03分 1
level 12
16181218 楼主
找到原因了,原来 SuSEfirewall2对iptables的raw表有默认配置:
-A PREROUTING -i lo -j CT --notrack
-A OUTPUT -o lo -j CT --notrack
所以开启SuSEfirewall2防火墙的时候没有对lo本地回环的数据进行跟踪,所以浏览器才会返回rst,
基础不扎实,没想到[狂汗]
2016年03月14日 14点03分 2
level 12
16181218 楼主
如果想在suse里面通过iptables实现全局代理而又不关闭SuSEfirewall2防火墙的话
补充一下搜索到的解决办法:
在vim /etc/sysconfig/SuSEfirewall2 (openSUSE Leap)文件里面的1134行开始有下面内容
1134 # Install NOTRACK target for interface lo in the raw table. Doing so
1135 # speeds up packet processing on the loopback interface. This breaks
1136 # certain firewall setups that need to e.g. redirect outgoing
1137 # packets via custom rules on the local machine.
1138 #
1139 # Defaults to "yes" if not set
1140 #
1141 FW_LO_NOTRACK=""
将FW_LO_NOTRACK=“”的值改为no就行了,
自定义的iptable规则就放在SuSEfirewall2-custom文件的fw_custom_after_chain_creation()里面vim /etc/sysconfig/scripts/SuSEfirewall2-custom
同时将 /etc/sysconfig/SuSEfirewall2文件里的878行改为 SuSEfirewall2-custom文件的路径即可FW_CUSTOMRULES="/etc/sysconfig/scripts/SuSEfirewall2-custom"
2016年03月15日 00点03分 3
1