学习Linux第八天(iptables)

iptables
其实iptables服务并不是真正的防火墙,只是用来定义防火墙功能的防火墙管理工具,将定义好的规则交给内核里面的netfilter功能,即网络过滤器来读取,从而真正实现防火墙功能

iptables 抵挡封包的方式:

  1. 拒绝让internet 包进入linux主机的某些port
  2. 拒绝让某些来源ip封包进入
  3. 拒绝让带有某些flag标记的包进入
  4. 分析硬件地址mac来提供服务

五链
iptables命令中设置了数据过滤或者是处理数据包的策略,叫做规则。将多个规则合成一个链,叫规则链,规则链则依据数据包位置不同分成5类
PREROUTING //在进行路由判断之前所要进行的规则(DNAT/REDIRECT)
INPUT //处理入站的数据包
OUTPUT //处理出站的数据包
FORWARD //处理转发的数据包
POSTROUTING //在进行路由判断之后所要进行的规则(SNAT/MASQUERADE)
四表:
iptables中的规则表是用于容纳规则链,规则表默认是允许状态的,那么规则链就是设置被禁止的规则,而反之如果规则表是禁止状态的,那么规则链就是设置被允许的规则。
raw表
确定是否对该数据包进行状态跟踪
mangle表
为数据包设置标记(较少使用)
nat表
修改数据包中的源、目标IP地址或端口
filter表
确定是否放行该数据包(过滤)
在这里插入图片描述
规则表的先后顺序:raw→mangle→nat→filter
规则链的先后顺序:
入站顺序
PREROUTING→INPUT
出站顺序
OUTPUT→POSTROUTING
转发顺序
PREROUTING→FORWARD→POSTROUTING
在这里插入图片描述
iptables 命令中能常见的控制类型
ACCEPT 允许通过
LOG 记录日志,传递给下一条规则
REJECT 拒绝通过,可以给提示
DROP 直接丢弃,不给回应

iptables的用法格式
iptables [-t 表名] 选项 [链名] [条件] [-j 控制类型]
iptables –[A|I 链] [-i|o 网络接口] [-p 协议] [-s 来源ip/网域] [-d 目标ip/网域] –j[ACCEPT|DROP]

在这里插入图片描述
查看规则

[root@localhost ~]# iptables [-t tables] [-L] [-nv]

参数:
-t 后面接table,例如nat或filter,如果省略,默认显示filter
-L 列出目前的table的规则
-n 不进行IP与主机名的反查,显示信息的速度会快很多
-v 列出更多的信息,包括封包数,相关网络接口等
删除规则

[root@localhost ~]# iptables [-t tables] [-FXZ]

参数:
-F 清除所有的规则
-X 清除所有自定义规则
-Z 将计数与流量统计清零
默认策略修改

[root@localhost ~]# iptables [-t tables] -P [链名] [ACCEPT/DROP]

案例1:

[root@localhost ~]# iptables -A INPUT -i lo -j ACCEPT

#所有的来自 lo 这个网口的封包,都予以接受

[root@localhost ~]# iptables -A INPUT -s 192.168.1.200 -j ACCEPT

#目标来自 192.168.1.200 这个 IP 的封包都予以接受

[root@localhost ~]# iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
[root@localhost ~]# iptables -A INPUT -s 192.168.1.10 -j DROP

#192.168.1.0/24 可接受,但 192.168.1.10 丢弃


[root@localhost ~]# iptables -L -n --line-numbers

Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80
2    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
3    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
4    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
5    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22
6    REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited
7    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
8    ACCEPT     all  --  192.168.1.200        0.0.0.0/0           
9    ACCEPT     all  --  192.168.1.0/24       0.0.0.0/0           
10   DROP       all  --  192.168.1.10         0.0.0.0/0           

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         
1    REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination  

删掉INPUT中第10条规则

[root@localhost ~]# iptables -D INPUT 10

2.Iptables 开放tcp、udp端口
例:开放samba端口(udp137,138;tcp139,445

[root@localhost ~]# iptables –A INPUT –i eth0 –p udp --dport 137:138 –j ACCEPT
[root@localhost ~]# iptables –A INPUT –i eth0 –p tcp --dport 139 –j ACCEPT
[root@localhost ~]# iptables –A INPUT –i eth0 –p tcp --dport 445 –j ACCEPT

3.iptables匹配ICMP端口和ICMP类型
iptables –A INPUT –p icmp --icmp-type 类型 –j REJECT

参数:–icmp-type :后面必须要接 ICMP 的封包类型,也可以使用代号,
例如 8 代表 echo request 的意思。(可自查询ICMP-type对应表)
iptables -A INPUT -p icmp --icmp-type 8 -j REJECT
iptables -A INPUT -p icmp --icmp-type echo-request -j REJECT
ICMP类型
TYPE CODE Description
0 0 Echo Reply——回显应答(Ping应答)
3 0 Network Unreachable——网络不可达
3 1 Host Unreachable——主机不可达
3 2 Protocol Unreachable——协议不可达
3 3 Port Unreachable——端口不可达
3 4 Fragmentation needed but no frag. bit set——需要进行分片但设置不分片比特
3 5 Source routing failed——源站选路失败
3 6 Destination network unknown——目的网络未知
3 7 Destination host unknown——目的主机未知
3 8 Source host isolated (obsolete)——源主机被隔离(作废不用)
3 9 Destination network administratively prohibited——目的网络被强制禁止
3 10 Destination host administratively prohibited——目的主机被强制禁止
3 11 Network unreachable for TOS——由于服务类型TOS,网络不可达
3 12 Host unreachable for TOS——由于服务类型TOS,主机不可达
3 13 Communication administratively prohibited by filtering——由于过滤,通信被强制禁止
3 14 Host precedence violation——主机越权
3 15 Precedence cutoff in effect——优先中止生效
4 0 Source quench——源端被关闭(基本流控制)
5 0 Redirect for network——对网络重定向
5 1 Redirect for host——对主机重定向
5 2 Redirect for TOS and network——对服务类型和网络重定向
5 3 Redirect for TOS and host——对服务类型和主机重定向
8 0 Echo request——回显请求(Ping请求)
9 0 Router advertisement——路由器通告
10 0 Route solicitation——路由器请求
11 0 TTL equals 0 during transit——传输期间生存时间为0
11 1 TTL equals 0 during reassembly——在数据报组装期间生存时间为0
12 0 IP header bad (catchall error)——坏的IP首部(包括各种差错)
12 1 Required options missing——缺少必需的选项
13 0 Timestamp request (obsolete)——时间戳请求(作废不用)
14 Timestamp reply (obsolete)——时间戳应答(作废不用)
15 0 Information request (obsolete)——信息请求(作废不用)
16 0 Information reply (obsolete)——信息应答(作废不用)
17 0 Address mask request——地址掩码请求
18 0 Address mask reply——地址掩码应答
4.Iptables --syn的处理方式

指定TCP匹配扩展
使用 --tcp-flags 选项可以根据tcp包的标志位进行过滤。

[root@localhost ~]# iptables -A INPUT -p tcp --tcp-flags SYN,FIN,ACK SYN
[root@localhost ~]# iptables -A FROWARD -p tcp --tcp-flags ALL SYN,ACK

上实例中第一个表示SYN、ACK、FIN的标志都检查,但是只有SYN匹配。第二个表示ALL(SYN,ACK,FIN,RST,URG,PSH)的标志都检查,但是只有设置了SYN和ACK的匹配。

[root@localhost ~]# iptables -A FORWARD -p tcp --syn

选项–syn相当于"–tcp-flags SYN,RST,ACK SYN"的简写。

[root@localhost ~]# iptables -A INPUT -m 模块名 --state 状态参数:

-m iptables的模块 state: 状态检查 mac:网卡硬件地址
–state 连接追踪中的状态: NEW: 新建立一个会话 ESTABLISHED:已建立的连接 RELATED: 有关联关系的连接 INVALID: 无法识别的连接

[root@localhost ~]# iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT

放行ssh的首次连接状态

[root@localhost ~]# iptables -A INPUT -m mac --mac-source 00:0C:29:56:A6:A2 -j ACCEPT

#对局域网内mac地址为00:0C:29:56:A6:A2主机开放其联机
本地端口转发

[root@localhost ~]# iptables -t nat -A PREROUTING -p tcp --dport 6666 -j REDIRECT --to-port 22

iptables保存和恢复
iptables-save > /etc/sysconfig/iptables 保存
iptables-restore /etc/sysconfig/iptables 恢复

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值