Linux_iptables

IPTABLES

一,iptables的原理:

当主机收到一个数据包后,数据包先在内核空间中处理,若发现目的地址是自身,则传到用户空间中交给对应的应用程序处理,若发现目的不是自身,则会将包丢弃或进行转发。

iptables实现防火墙功能的原理是:在数据包经过内核的过程中有五处关键地方,分别是PREROUTING、INPUT、OUTPUT、FORWARD、POSTROUTING,称为钩子函数,iptables这款用户空间的软件可以在这5处地方写规则,对经过的数据包进行处理,规则一般的定义为“如果数据包头符合这样的条件,就这样处理数据包”。

这里写图片描述

二,iptables的四表五连:

iptables的结构:iptables -> Tables -> Chains -> Rules. 简单地讲,tables由chains组成,而chains又由rules组成。

iptables中定义有表,分别表示提供的功能,有filter表(实现包过滤)、nat表(实现网络地址转换)、mangle表(实现包修改)、raw表(实现数据跟踪),这些表具有一定的优先级:raw–>mangle–>nat–>filter

iptables中定义有5条链,说白了就是上面说的5个钩子函数,因为每个钩子函数中可以定义多条规则,每当数据包到达一个钩子函数时,iptables就会从钩子函数中第一条规则开始检查,看该数据包是否满足规则所定义的条件。如果满足,系统就会根据该条规则所定义的方法处理该数据包;否则iptables将继续检查下一条规则,如果该数据包不符合钩子函数中任一条规则,iptables就会根据该函数预先定义的默认策略来处理数据包

103  systemctl disable firewalld.service 开机不启动火墙服务
  104  systemctl start iptables.service   打开iptables 服务
  105  systemctl enable iptables.service 
  106  iptables -nL  n 解析 L 列出
  107  iptables -F 刷新掉
  108  iptables -nL 
  109  service iptables save 保存
  110  vim /etc/sysconfig/iptables 
  104  iptables -nL
  105  iptables -A INPUT -p --dport 80 -j REJECT
  106  iptables -A INPUT -p tcp  --dport 80 -j REJECT
  107  iptables -nL
  108  iptables -I INPUT 1 -s 172.25.254.250 -p tcp --dport 80 -j ACCEPT
  109  iptables -nL
  110  iptables -I INPUT 1 -s 172.25.254.250 -p tcp --dport 22 -j ACCEPT
  111  iptables -D INPUT 2
  112  iptables
  113  iptables -nL
  114  iptables -D INPUT 2
  115  iptables -nL

这里写图片描述
可以看到 server的主机是连接不到的
这里写图片描述
当删除第二条 便可以登陆
这里写图片描述

 1  iptables -F 刷掉
    3  iptables -nL
    4  iptables -A INPUT -p tcp --dport 22 -j ACCEPT  允许22端口
    5  iptables -A INPUT -p tcp --dport 53 -j ACCEPT
    6  iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    7  iptables -A INPUT -p tcp --dport 3260 -j ACCEPT
    8  iptables -A INPUT -i lo -j ACCEPT
    9  iptables -I INPUT 1 -m state --state ESTABLISHED,RELATED -j ACCEPT 允许正在连接和已经连接过的
   10  iptables -nL
   11  service iptables save

这里写图片描述
关于源地址转换和目的地址转换:
环境:实验主机配置双网卡,eth0(192.168.122.84),eth1(192.168.2.84),eth1相当于路由器,可以实现内网和外网之间通信的桥梁。
测试主机配置ip为(192.168.2.83),相当于内网主机,配置网关为(192.168.2.84)

源地址转换:
[root@ ~]# sysctl -p | grep ip_forward
net.ipv4.ip_forward = 1
要保证此项值为1,如果为0,则不能实现路由转发
在/etc/sysctl.conf重添加即可
[root@ ~]# iptables -t nat -A POSTROUTING -o eth0 -j SNAT –to-source 192.168.122.1 #在主机84上添加策略:从本机上路由的数据包的源地址转变为1
目的地址转换:
[root@ ~]# iptables -t nat -A PREROUTING -i eth0 -d 192.168.122.84 -j DNAT –to-dest 192.168.122.1 #将访问目的是84的连接转向1

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值