iptables理解

一、iptables相关概念理解
名词含义对比
Netfilter/iptables是表的容器国家
表(table)表是用来存放链的容器
链(chain)链 存放规则的容器
规则(policy)准许/拒绝访问区/县
二、四表五链
2.1 四表及其作用

Filter :过滤,默认的表,防火墙功能
NAT :实现NAT转化:1.共享上网(SNAT功能) 2.端口转发(DNAT功能)
mangle: 根据规则修改数据包的一些标志位,以便其他规则或程序可以利用这种标志对数据包进行过滤或策略路由
raw

2.2 五链
  • INPUT :当收到访问防火墙本地地址的数据包时,应用此链的规则
  • OUTPUT :当防火墙本机向外发出数据时,应用此链的规则
  • FORWARD :当收到要通过防火墙发送给其他网络地址的数据包时,应用此链的规则
  • PREROUTING :在对数据包进行路由选择之前,应用此链的规则
  • POSTROUTING :在对数据包做路由选择之后,应用此链的规则

四表五链
在这里插入图片描述

三、iptables常用命令及参数
command后跟的值和含义
-t指定表 filter(默认) nat
-Aappend 把规则追加到末尾
-I(大写字母i ) insert,把规则插入到规则的第1条 (添加拒绝类规则的时候)
-pprotocal 指定协议,tcp /udp/icmp
–dportdestination port 目标端口
–sportsource port,源端口
-ddest ip address,目标ip地址
-ssource ip address,源ip地址
-jjump 方法,DROP (拒绝)、 ACCEPT(准许) 、REJECT(拒绝)
-F清除链中所有规则
-X清空自定义链的规则
-Z清空计数器
-n不要把端口解析服务名字
-L显示表中的规则
–line-number给每个链中的规则加上行号
-D删除规则 根据规则的号码进行删除
四、iptables 常用指令
  1. 查看当前的防火墙规则
[root@Apache ~]# iptables-save
  1. 查看防火墙的默认规则
[root@Apache ~]# cat /etc/sysconfig/iptables
  1. 设置INPUT链默认策略为drop丢弃
[root@Apache ~]# iptables -P INPUT DROP
[root@Apache ~]# iptables -nL  --line-number
Chain INPUT (policy DROP)
num  target     prot opt source               destination         
1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
2    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
3    INPUT_direct  all  --  0.0.0.0/0            0.0.0.0/0           
4    INPUT_ZONES_SOURCE  all  --  0.0.0.0/0            0.0.0.0/0           
5    INPUT_ZONES  all  --  0.0.0.0/0            0.0.0.0/0           
6    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
7    REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited
8    DROP       tcp  -- !192.168.31.0/24      0.0.0.0/0           

  1. 允许协议为tcp,目的端口为22的数据包流量进入本机
[root@Apache ~]#iptables -A INPUT -p tcp --dport 22 -j ACCEPT
  1. INPUT链丢弃协议是TCP,但端口非80、443、22的流量
    "!"是非的意思
[root@Apache ~]# iptables -I INPUT -p tcp -m multiport ! --dport 80,443,22 -j DROP
[root@Apache ~]# 
[root@Apache ~]# iptables -nL  --line-number
Chain INPUT (policy DROP)
num  target     prot opt source               destination         
1    DROP       tcp  --  0.0.0.0/0            0.0.0.0/0            multiport dports  !80,443,22
2    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
3    DROP       tcp  -- !192.168.31.0/24      0.0.0.0/0           

  1. 将去往目的地址为:10.0.0.61,目标端口为:8080的数据包转换成目标地址为10.0.0.11,目的端口为22的数据包,需要先开启路由转发功能
[root@Apache ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
[root@Apache ~]# sysctl -p

[root@Apache ~]# iptables -t nat -A PREROUTING -d 10.0.0.61 -p tcp --dport 8080 -j DNAT --to-destination 10.0.0.11:22
[root@Apache ~]# iptables -nL --line-number -t nat
Chain PREROUTING (policy ACCEPT)
num  target     prot opt source               destination         
1    PREROUTING_direct  all  --  0.0.0.0/0            0.0.0.0/0           
2    PREROUTING_ZONES_SOURCE  all  --  0.0.0.0/0            0.0.0.0/0           
3    PREROUTING_ZONES  all  --  0.0.0.0/0            0.0.0.0/0           
4    DNAT       tcp  --  0.0.0.0/0            10.0.0.61            tcp dpt:8080 to:10.0.0.11:22

  1. 将源地址为172.16.1.0/24,从本机eth0网卡出去的数据包进行SNAT转换成源地址为本机的网卡地址10.0.0.61
[root@Apache ~]# iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -o eth0 -j SNAT --to-source 10.0.0.61
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值