日常运维---(0416任务)

12 firewalld和netfilter

永久关闭selinux :   vi /etc/selinux/config

s

临时关闭selinux:

f

netfilter  平时是关闭的。需要关闭firewalled,再开启netfilter.

1. 关闭firewalled. 

systemctl  disable  firewalld

2. 然后再停止服务:systemctl stop firewalled

3. 再开启netfilter。 首先安装netfilter  命令包

yum   install   -y  iptables-services

4. 启动iptables 服务

systemctl  enable iptables

systemctl   start  iptables

iptables 是netfilter的一种工具而已。

13 netfilter5表5链介绍

file

netfilter的5个表:

1. filter 表主要用于过滤包,是系统预设的表,该表内建3个链:

INPUT、OUTPUT以及FORWARD。  

INPUT 链作用于本机的包,OUTPUT链作用于本机送出的包,FORWARD链作用于那些跟本机无关的包。

2. nat 表主要用于网络地址转换,它有3个链。

PREROUTING、OUTPUT、POSTROUTING

PREROUTING 链的作用是在包到达防火墙时改变它的目的地址(如果需要的话),OUTPUT链的作用是改变本地产生的包的目的地址,POSTROUTING链的作用是在包即将离开防火墙时改变其源地址。

3. mangle 表主要用于给数据表做标记,然后根据标记去操作相应的包。

4. raw 表可以实现不追踪某些数据包,默认系统的数据包都会被追踪,但追踪势必消耗一定的资源,可以用raw表来指定某些端口的包不被追踪。

5. security 表在centOS6中是没有的,它用于强制访问控制(MAC)的网络规则。

netfilter的5个链:

5个链分别是:PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING

PREROUTING: 数据包进入路由表之前

INPUT: 通过路由表后目的地为本机

FORWARDING: 通过路由表后,目的地不为本机。

OUTPUT:由本机产生,向外转发。

POSTROUTING :发送到网卡接口之前

14. iptables 基本语法

iptables 是一个非常复杂和功能丰富的工具,语法很有特点。

1. 查看规则以及清除规则:

# iptables -t nat -nvl

-t 选项后面跟表名,-nvl表示查看该表的规则。 其中-n 表示不针对ip反解析主机名,-L 表示列出,-v表示列出的信息更加信息。

#iptables -F 表示把所有的规则全部删除,如果不加-t指定表,默认只清除filter表规则。

#iptables -z 表示把包以及流量计数器置零。

2. 增加/删除一条规则

     以下这些规则参数用于描述数据包的协议、源地址、目的地址、允许经过的网络接口,以及如何处理这些数据包。这些描述是对规则的基本描述。

  

-p 协议(protocol)

  • 指定规则的协议,如tcp, udp, icmp等,可以使用all来指定所有协议。
  • 如果不指定-p参数,则默认是all值。这并不明智,请总是明确指定协议名称。
  • 可以使用协议名(如tcp),或者是协议值(比如6代表tcp)来指定协议。映射关系请查看/etc/protocols
  • 还可以使用–protocol参数代替-p参数

-s 源地址(source)

  • 指定数据包的源地址
  • 参数可以使IP地址、网络地址、主机名
  • 例如:-s 192.168.1.101指定IP地址
  • 例如:-s 192.168.1.10/24指定网络地址
  • 如果不指定-s参数,就代表所有地址
  • 还可以使用–src或者–source

-d 目的地址(destination)

  • 指定目的地址
  • 参数和-s相同
  • 还可以使用–dst或者–destinatio

-j 执行目标(jump to target)

  • -j代表”jump to target”
  • -j指定了当与规则(Rule)匹配时如何处理数据包
  • 可能的值是ACCEPT, DROP, QUEUE, RETURN,MASQUERADE
  • 还可以指定其他链(Chain)作为目标
  • 注:MASQUERADE,地址伪装,算是snat中的一种特例,可以实现自动化的snat。

-i 输入接口(input interface)

  • -i代表输入接口(input interface)
  • -i指定了要处理来自哪个接口的数据包
  • 这些数据包即将进入INPUT, FORWARD, PREROUTE链
  • 例如:-i eth0指定了要处理经由eth0进入的数据包
  • 如果不指定-i参数,那么将处理进入所有接口的数据包
  • 如果出现! -i eth0,那么将处理所有经由eth0以外的接口进入的数据包
  • 如果出现-i eth+,那么将处理所有经由eth开头的接口进入的数据包
  • 还可以使用–in-interface参数

-o 输出(out interface)

  • -o代表”output interface”
  • -o指定了数据包由哪个接口输出
  • 这些数据包即将进入FORWARD, OUTPUT, POSTROUTING链
  • 如果不指定-o选项,那么系统上的所有接口都可以作为输出接口
  • 如果出现! -o eth0,那么将从eth0以外的接口输出
  • 如果出现-i eth+,那么将仅从eth开头的接口输出
  • 还可以使用–out-interface参数

–sport 源端口(source port)针对 -p tcp 或者 -p udp

  • 缺省情况下,将匹配所有端口
  • 可以指定端口号或者端口名称,例如”–sport 22″与”–sport ssh”。
  • /etc/services文件描述了上述映射关系。
  • 从性能上讲,使用端口号更好
  • 使用冒号可以匹配端口范围,如”–sport 22:100″
  • 还可以使用”–source-port”

–-dport 目的端口(destination port)针对-p tcp 或者 -p udp

  • 参数和–sport类似
  • 还可以使用”–destination-port”

-–tcp-flags TCP标志 针对-p tcp

  • 可以指定由逗号分隔的多个参数
  • 有效值可以是:SYN, ACK, FIN, RST, URG, PSH
  • 可以使用ALL或者NONE

-–icmp-type ICMP类型 针对-p icmp

  • –icmp-type 0 表示Echo Reply
  • –icmp-type 8 表示Echo

15.iptables  filter 表案例

16-18  iptables nat 表应用

猜你喜欢

转载自blog.csdn.net/weixin_40876986/article/details/89348423