• Home
  • About
    • Tardis In The Moon photo

      Tardis In The Moon

      Moon is a minimal, one column jekyll theme for your blog.

    • Learn More
    • Github
  • Posts
    • All Posts
    • All Tags
  • Projects

FQ

29 Mar 2017

Reading time ~1 minute

简单的企业翻墙方案

0x001 vps 搭建ss-server服务端

带不带混淆都可以,反正client和server端对应就行。推荐shadowsocks-libev的C语言版本。

cat config.json

{
	"server"        :       "x.y.z.w",
	"server_port"	:	12345,
	"password"	:	"*********",
	"timeout"	:	300,
	"method"	:	"aes-256-cfb",
	"fast_open"	:	false
}
  • fast_open只有在linux内核3.7以上才可以使用, 打开前需要echo 3 > /proc/sys/net/ipv4/tcp_fastopen &&echo 'net.ipv4.tcp_fastopen = 3' >>/etc/sysctl.conf。 然后在以上ss的json配置文件中把fast_open一项设为true,方可开启。

0x002 内网Linux主机开启ss-redir

CentOS6为例。

  • 保证在/etc/sysctl.conf中有net.ipv4.ip_forward = 1开启,sysctl -p生效。

  • 此linux主机推荐单独配置外网ip,以免FQ导致ip被封弄得办公出口挂掉,不过ss比较隐蔽,还好。

  • 开启ss-redir服务,监听本地端口,例如10086。

  • 在/etc/sysconfig/iptables中增加:

-A PREROUTING -s 192.168.0.0/16 -p tcp -m tcp -m multiport --dports 80,443 -j REDIRECT --to-ports 10086

其中80,443是需要转发的端口,只针对web访问,其他特殊服务也可以针对端口添加。192.168.0.0/16是指定内网环境,可自行更改。如果主机没有配置外网ip的话,可以不用指定内网段。

  • 重启iptables,/etc/init.d/iptables restart

0x003 路由指向

这一步我觉得是比较暴力也不是很科学的一步,要做到透明FQ,也没有其他好办法。

首先可以递归查询出google的spf记录, nslookup -q=TXT google.com 8.8.8.8, 得到的返回是:

text = "v=spf1 include:_spf.google.com ~all"

继续往下查nslookup -q=TXT _spf.google.com 8.8.8.8,得到:

_spf.google.com text = "v=spf1 include:_netblocks.google.com include:_netblocks2.google.com include:_netblocks3.google.com ~all

继续 nslookup -q=TXT _netblocks.google.com 8.8.8.8, nslookup -q=TXT _netblocks2.google.com 8.8.8.8 等 可以查询到谷歌几乎所有的ip。

然后就要在办公网的核心路由上把这些ip的吓一跳统统转到上一步内网的Linux主机上。

其他需要翻墙的ip地址可以用类似的方式或者直接dns查询一下得到。或者也可以考虑直接将所有海外ip的整段加入核心路由的转发策略,有点暴力。

另外还有个dns污染的问题,也是头疼的,只能内部劫持了。



linuxfqshadowsocks Like Tweet +1