因为xxx原因吧,这里断更了接近半个月,现在做篇三,静态NAT和防火墙的功能;
静态NAT可以用两种办法实现,一个是firewalld的方式,一个用的是DNAT的方式(两个方法使用场景一致,firewalld的方法只适用于静态IP的场景,DNAT的方式也只能适用于静态IP的方式;至于公网地址的方法我会在扩展中间讲到)
使用iptables的端口转发做一个操作(需要用到DNAT)
现在写个DNAT的方式
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 60000 -j DNAT --to-destination 192.168.199.22:22
/etc/init.d/iptables save
service iptables restart
这个是通过公网的方式访问内网的测试机,内网的测试机提前开好了SSH(安装了SSH并且启动了)
安装了SSH,下面我在我的笔记本上ssh测试路由器上的60000端口是不是我这台manjaro
可以看见路由器的IP+60000端口就使用ssh连接上了这个内网的测试机
上面的iptables命令解析
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 路由器端口 -j DNAT --to-destination 内网设备IP:内网端口
ACL的实现方法
这里不讲扩展ACL和ACL,因为运营商路由不归我们管,只能用路由禁止出站流量
下面我屏蔽一个114.114.114.114 DNS(至于114DNS的成分不用我多说吧?)
内网设备测试114能不能DNS请求 nslookup baidu.com 114.114.114.114
可以DNS请求到
下面使用这个命令对114.114.114.114封禁DNS功能
iptables -A FORWARD -s 192.168.199.0/24 -p udp --dport 53 -m state --state NEW -j DROP
iptables -A FORWARD -s 192.168.199.0/24 -p tcp --dport 53 -m state --state NEW -j DROP
/etc/init.d/iptables save
service iptables restart
DNS请求是53端口(53UDP 53TCP)所以这里直接封禁TCP53和UDP53
PS:需要在iptables的NAT表内使用FORWARD禁用,不能使用FITTER表(因为fitter表封禁的是本机地址,如果是NAT转换的地址段需要在NAT表内封禁)
测试我自己的站和baidu.com能不能被nslookup到
图片可以看到,114DNS无法解析,封禁了114DNS的53 TCP和UDP端口
下面放一些资料文章,感兴趣的可以看看:
端口转发
iptables资料1
iptables资料2
iptables资料3
iptables管理NAT表
Manjaro切换国内源
评论