Linux使用iptables实现内网隔断与外网控制

前言

笔者在内网部署了一台linux服务器,因是直接连接的路由器,不好搭建单独的内网,同时该服务器有存在重要资料,为保证网络环境的安全,故想切断该服务器与外网的连接,查阅网上资料,加上自己的实践与整理,经过不断的重启和配置及踩坑,最终得以实现,分享与需要的朋友。

1.先添加 22端口允许通行,否则会连不上 ssh,

添加input记录: iptables -A INPUT -p tcp --dport 22 -j ACCEPT
添加output记录:iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

2.保存规则文件

Ubuntu默认没有iptables配置文件,需通过iptables-save > /etc/network/iptables.up.rules生成

iptables-save > /etc/network/iptables.up.rules

因为linux重启后规则就会失效,后面重启后需要使用 iptables-apply进行重载文件 或者执行 iptables-restore < /etc/network/iptables.up.rules重置规则

3.添加允许的规则

因OUTPUT 拒绝出站,会把被动出站请求响应断掉,所以需要开启允许内网段的被动出站

# 接受192.168的被动出站,否则请求无法返回
iptables -A OUTPUT -s 192.168.0.0/16 -j ACCEPT
# 根据实际情况来配置
iptables -A OUTPUT -s 172.18.0.0/16 -j ACCEPT
4.限制其他外网的访问

执行前确保已经允许ssh入站和出站,否则将会无法连接主机,切记切记

iptables -A OUTPUT -d 0.0.0.0/0 -j DROP

后期若想允许某个规则可出站,则直接配置在该条前面即可

保存规则

iptables-save > /etc/network/iptables.up.rules

最后配置文件如下

*filter
:INPUT ACCEPT [1207:87648]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A OUTPUT -p tcp -m tcp --sport 22 -j ACCEPT
-A OUTPUT -d 192.168.0.0/16 -j ACCEPT
-A OUTPUT -d 172.18.0.0/16 -j ACCEPT
-A OUTPUT -j DROP

注意 要先配置允许的,然后才配置拒绝的,否则允许的规则将不生效

5.配置重启执行加载规则

因为linux重启后,所有规则将会消失,所有需要linux启动的时候执行以一下iptables-restore < /etc/network/iptables.up.rules

可以 /etc/rc.local中增加 该命令,重启的系统会执行一遍,ubuntu系统可能没有rc.local,需要添加,可自行百度添加,笔者这里不做重点赘述。

6.测试效果

ping 内网

# ping 192.168.2.193
PING 192.168.2.193 (192.168.2.193) 56(84) bytes of data.
64 bytes from 192.168.2.193: icmp_seq=1 ttl=128 time=2.62 ms
64 bytes from 192.168.2.193: icmp_seq=2 ttl=128 time=2.48 ms
64 bytes from 192.168.2.193: icmp_seq=3 ttl=128 time=2.36 ms

ping外网

ping 114.114.114.114
PING 114.114.114.114 (114.114.114.114) 56(84) bytes of data.
ping: sendmsg: Operation not permitted
ping: sendmsg: Operation not permitted
ping: sendmsg: Operation not permitted

以上即可完成内网访问外网的控制和隔绝

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值