## 防火墙的配置
>[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 #这一条是无效的
~~~
- 前言准备
- Linux新服务器的前期配置
- 认识linux下的Web服务器
- Linux的基本配置
- LNMP一键安装包快速部署web服务器
- LAMP服务器环境部署
- LAMP服务器管理
- LNMP服务器环境部署
- LNMP服务器管理
- lnmp一键安装包-常见问题
- 使用包管理器快速部署环境
- 包管理器快速部署LAMP服务器环境
- 升级php和mysql版本
- 包管理器快速部署LNMP服务器环境
- 使用源码包部署Linux服务器web环境
- 编译LAMP服务器环境部署
- apache安装与配置
- mysql的安装与配置
- PHP的安装与配置
- 编译LNMP服务器环境部署
- nginx服务启动脚本
- 源码安装常见问题
- Centos6与Centos7的区别
- 默认控制系统服务工具不同
- 设置开机启动的方式不同
- 编写service启动脚本
- 编写systemctl启动脚本
- 服务器安全
- 隐藏服务器信息
- Linux服务器防火墙设置
- 防火墙设置脚本
- 邮件发送
- 任务脚本的编写
- 服务器磁盘和服务器健康状态脚本
- 服务器登录报警脚本
- 数据库备份脚本
- 定时任务及应用
- 常见问题
- linux中使用ping命令不同的问题
- Linux中无法发送邮件
- mailx通过ssl方式发送邮件
- Mysql配置文件
- Linux TCP/UDP 常用端口
- Linux常见命令
- 系统信息
- 关机 (系统的关机、重启以及登出 )
- 文件和目录
- 文件搜索
- 挂载一个文件系统
- 磁盘空间
- 用户和群组
- 文件的权限
- 文件的特殊属性
- 打包和压缩文件
- RPM包
- YUM软件包升级器
- DEB 包 (Debian, Ubuntu 以及类似系统)
- APT 软件工具 (Debian, Ubuntu 以及类似系统)
- 查看文件内容
- 文本处理
- 字符设置和文件格式转换
- 文件系统分析
- 初始化一个文件系统
- SWAP文件系统
- 备份
- 光盘
- 网络-(以太网和WIFI无线)
- vi命令
- cut命令 截取
- Mysql
- MySQL备份-增量备与恢复命令实战
- mysqlbinlog
- mysql的安装
- 卸载mysql
- mysql多实例安装
- mysql 常用基础命令操作
- linux安装jdk、rpm安装mysql
- linux制作本地yum源
- shell脚本