iptables介绍

iptables 可以简单理解为 Linux 系统内核级防火墙 netfilter 的用户态客户端。
Linux 管理员通过调用 iptables 命令,配置 Linux 内核 netfilter 模块规则,对网络数据包的流动进行管理。iptables 有表 (tables) 的概念,每张表又包含不同链 (chains),大部分情况下我们仅需要使用 filter 和 nat 两张表的链就可以完成功能。
filter 表中有 3 条链: INPUT, FORWARD, OUTPUT。如果3 条链都没有任何规则存在,则网卡的网络数据包不会受到任何影响。
iptables链中的规则是从上到下依次执行的,因此一条规则在链中的位置十分重要。

例如一条拒绝全部连接的规则 -j REJECT 一定要放在链的最后,而允许通行的规则要放在这条规则之前。

否则所有网络数据包进入链后直接匹配到这条规则,将导致所有连接被拒绝。

禁止本机访问指定网站:

//参数解析 -I 添加规则到链的最前面, -p 匹配协议, -d 匹配目的地址, -j DROP 将匹配的数据包实施丢掉动作
sudo iptables -I OUTPUT -p icmp -d www.baidu.com -j DROP

查看已有(iptables过滤)规则:

sudo iptables -L -n

导出规则:

sudo iptables-save > /home/ubuntu/iptables_rules

导入规则:

sudo iptables-restore /home/ubuntu/iptables_rules

//清除已有规则

sudo iptables -F

//清除自建链

sudo iptables -X

//新建一个叫做 BLACKLIST 的链

sudo iptables -N BLACKLIST

//当访问的源 IP 地址是本机的时候进入 BLACKLIST 链

sudo iptables -A OUTPUT -s 10.135.166.86 -j BLACKLIST

//向 BLACKLIST 链添加 2 条规则

sudo iptables -A BLACKLIST -d 114.114.114.114 -j DROP
sudo iptables -A BLACKLIST -d 220.181.111.188 -j DROP

端口转发

//把8080端口转发到80端口
sudo iptables -t nat -A OUTPUT -p tcp -d 127.0.0.1 --dport 8080 -j DNAT --to 127.0.0.1:80
//把外网8080端口转发到80端口
sudo iptables -t nat -A PREROUTING -p tcp --dport 8080 -j REDIRECT --to-ports 80
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值