Linux系统安全配置iptables服务介绍
Linux系统安全配置Iptables服务
Linux防火墙介绍
Linux系统防火墙功能是由内核实现的,从2.4版本之后的内核中,包过滤机制是netfilter,管理工具是iptables
netfilter
位于系统内核中的包过滤防火墙功能体系,被称为Linux防火墙的“内核态”
iptables
位于/sbin/iptables,是用来管理防火墙的命令工具,被称为linux防火墙的“用户态”
iptables的表与链介绍
链是防火墙规则或策略的集合,对于数据包进行过滤或处理,要把处理机制的不同,将各种规则放入不同的“链”中
默认的5种链如下:
INPUT:处理入站的数据包
OUTPUT:处理出站的数据包
FORWARD:处理转发数据包
POSTROUTING:在进行路由选择后处理数据包
PREROUTING:在进行路由选择前处理数据包
表是规则链的集合,具有某一类相似作用的规则,按不同的机制到不同的链之后,再被收入到不同的表中
默认的4个表如下:
raw表:确定是否对数据包进行状态跟踪
mangle表:为数据设置标记
nat表:修改数据包中的源、目IP或端口
filter表:过滤数据包或对数据包进行相关处理
iptables的表与链的结构如下
Iptables数据包过滤匹配介绍
表与表之间的优先顺序
raw---> mangle-->nat--->filter
链之间的匹配顺序
入站数据:PREROUTING-->INPUT
出站数据:OUTPUT--->POSTROUTING
转发数据:PRETOUTING-->FORWARD--->POSTROUTINGS
链内的匹配顺序
1、按顺序依次检查,找到匹配的规则就停止检查
2、找不到匹配的规则,则按默认的策略处理
数据包匹配的流程图如下
iptables管理与配置
命令语法格式
iptables [-t 表名] 选项 [链名] [匹配条件] [-j 目标动作]
注:不指定表名时默认是filter表
不指定链名时默认是表内的所有链
除设置链的默认策略,否则需要指定匹配条件
[root@host ~]# iptables -t filter -A INPUT -p tcp -j ACCEPT
[root@host ~]# iptables -I INPUT -p udp -j ACCEPT
[root@lhost ~]# iptables -I INPUT 2 -p icmp -j ACCEPT
[root@host ~]# iptables -P INPUT DROP
[root@host ~]# iptables -L INPUT --line-numbers
Chain INPUT (policy DROP)
num target prot opt source destination
1 ACCEPT udp -- anywhere anywhere
2 ACCEPT icmp -- anywhere anywhere
3 ACCEPT tcp -- anywhere anywhere
配置匹配数据包的条件命令
协议匹配(tcp/udp/icmp)
-p 协议名
iptables -A FORWARD -p ! icmp -j ACCEPT
iptables -A FORWARD -p tcp -j ACCEPT
地址匹配
-s 源地址 -d 目标地址
iptables -A FORWARD -s 10.0.0.0/24 -j ACCEPT
iptables -A INPUT -i eth0 -s 100.0.0.100 -j ACCEPT
端口匹配
--sport 源端口 --dport 目标端口
iptables -A FORWARD -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 20:80 -j ACCEPT
常见数据包的处理动作
ACCEPT:放行数据包
DROP:丢弃数据包
REJECT:拒绝数据包
iptables规则导入、导出管理
导出:iptables-save >/etc/sysconfig/iptables
导入:iptables-restore </etc/sysconfig/iptables
- Shapes and line types for R
- Python基本常用包整理(data analysis and machine learning),附查询包版本语句
- 一次 PyTorch 的踩坑经历,以及如何避免梯度成为NaN
- 递归与伪递归区别,Python 实现递归与尾递归
- N元分词算法
- 基于典型相关分析的词向量
- 分享一波关于做 Kaggle 比赛,Jdata,天池的经验,看完我这篇就够了。
- system表空间不足的问题分析(r6笔记第66天)
- 挑战数据结构和算法面试题——最大间隔
- 一则orabbix报警的分析(r6笔记第65天)
- 中科院计算所开源深度文本匹配开源工具 MatchZoo
- 简单易学的机器学习算法——线性回归(1)
- 当主键碰到NULL(r6笔记第64天)
- 记一次dg故障的处理总结(r6笔记第63天)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法