linux服务防火墙设置,Linux服务器防火墙设置

## 防火墙的配置

>[success] 服务器中,防火墙的配置是十分必要的!

在这里以Centos的iptables为例,进行讲解

### iptables 介绍(iptables 内置了4个表,5个链)

#### 五个规则链

1. PREROUTING (路由前)

2. INPUT (数据包流入口)

3. FORWARD (转发管卡)

4. OUTPUT(数据包出口)

5. POSTROUTING(路由后)

>[danger] 这是NetFilter规定的五个规则链,任何一个数据包,只要经过本机,必将经过这五个链中的其中一个链。

### 四个表(提供特定功能)

1. fileter 用于数据的过滤

2. nat 用于对数据包的源、目标地址进行修改

3. mangle 用于数据包进行高级修改

4. raw 该项优先级最高,但一般不做设置,一量设置一般是为了不再让iptables做数据包的连接跟 踪。

### 防火墙的策略

>[success]防火墙策略一般分为两种,一种叫“通”策略,一种叫“堵”策略

### 使用率较高的功能

>[success] 现在用的比较多个功能有3个

1. filter 定义允许或者不允许的

2. nat 定义地址转换的

3. mangle功能:修改报文原数据

### iptables 的规则是针对表和链进行操作的,但不是所有表在所有链上都能做防火墙设置

>[danger] 对于filter来讲一般只能做在3个链上:INPUT ,FORWARD ,OUTPUT

对于nat来讲一般也只能做在3个链上:PREROUTING ,OUTPUT ,POSTROUTING

而mangle则是5个链都可以做:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING

### iptables 基本命令

**查看是否安装防火墙**

~~~

whereis iptables

~~~

**查看防火墙规则列表**

~~~

iptables -L

~~~

**临时清空防火墙(重启失效)**

~~~

iptables -F

~~~

**永久保存防火墙配置**

~~~

service iptables save

~~~

**启动防火墙**

~~~

service iptables start

~~~

**重启防火墙**

~~~

service iptables restart

~~~

**停止防火墙**

~~~

service iptables stop

~~~

**查看iptables状态**

~~~

service iptables status

~~~

**查看iptables是否开机启动**

~~~

chkconfig iptables --list

~~~

**设置iptables开机启动/不启动**

~~~

chkconfig iptables on

chkconfig iptables off

~~~

### iptables语法

#### iptablse介绍

名称:iptables

使用权限:root(其它用户需要授权)

使用方式:iptalbes [-t 表格名称] 指令 条件 [目标|链]

说明:显示当前登录系统用户的信息,可以轻松显示登录账号,使用的终端,登录时间和来源IP

参数:iptables的参数较多,分为指令集,目标集和条件集。

#### 指令集表

| 参数 | 含义 |

| --- | --- |

| -N | 建立一个新的(自定义)链 |

| -P | 改变一条链的原则 |

| -F | 清除一条链中的所有规则 |

| -I | 在链内的某一个位置插入(insert)一条新规则 |

| -D | 在链内某个位置删除一条规则 |

| -X | 删除一个空链 |

| -L | 列出一个链中的规则 |

| -A | 在一个链的最后面新增(append)一条规则,也要追加规则 |

| -R | 在链内某个位置替换(replace)一条规则 |

#### 目标集表

| 参数| 含义|

| -- |--|

| ACCEPT| 通过链检验,接受这个数据包|

| DROP| 未通过链检验,立即丢弃这个封包|

| QUEUE| 将封包重导至本机队列|

| RETURN| 通过链的检验,回到原来的链中|

| TOS| 改变封包TOS字段的值|

| REJECT| 未通过链检验,丢弃数据包|

| SNAT| 改变封包来源IP字段的值|

| DNAT| 改变封包目标IP字段的值|

| MASQUERADE| 动态地根据中由参数修改Source socket|

| TTL| 改变封TTL字段的值|

#### 条件集表

| 参数|含义|

|--|--|

| -i -o| 网络接口匹配|

| -p| 匹配所属协议(tcp、udp、icmp等,可以使用all指定所有协议)|

| -m state| 清除一条链中的所有规则|

| --tcp-flags| 封包类型|

| --icmp-type| 封包类型|

| -s| 匹配数据包源IP|

| --sport| 匹配数据包的源端口|

| --dport| 匹配数据包的目的端口|

| INPUT| 封包在防火墙中的流向|

| OUTPUT| 封包在防火墙中的流向|

| FORWARD| 封包在防火墙中的流向|

| -j| 跳至目标或自定义链|

### 常用规则

>[success]最为常用的就是追加新规则

#### 语法:

~~~

iptables -A chain firewall-rule

# -A chain 指定要追加的规则链

# firewall-rule 为具体的规则参数

~~~

#### 常用实例:

1. 插入一条规则允许22号端口的所有数据进入

~~~

shell>iptables -I INPUT 3 -p tcp --dport 22 -j ACCEPT

# -I: 插入规则

# INPUT: 输入链

# 3: 规则排序

#-p tcp:指定表,指定协议规则

# dport 22:指定端口

# -j ACCEPT 运行

~~~

>[danger]防火墙规则设置后立即生效,所以在设置一些规则的时侯必须谨慎,比如说ssh,一旦我们自身采用的是远程访问,但是又拒绝了ssh的INPUT,我们马上会被拒之门外。

2. 防止别人ping

~~~

shell>iptables -A INPUT -p icmp -j DROP

~~~

>[danger]规则设置原则:

规则的次序非常关键,谁的规则越严格,应该放的越靠前,而检查规则的时候,是按照从上往下的方式进行检查的

### 防火墙执行顺序

>[danger]在这里一定要注意,防火墙规则,是按照从上到下的顺进行匹配的,如果遇到匹配的就执行,如果没有匹配的,就继续执行下一条。

所以,如果规则中,同时写了如下两条件:

~~~

iptables -A INPUT -p icmp -j DROP

iptables -A INPUT -p icmp -j ACCEPT #这一条是无效的

~~~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值