linux iptables配置
防火墙
硬件防火墙
软件防火墙:
应用层防火墙
网络层防火墙:linux包过滤防火墙
linux包过滤防火墙
netfilter:位于linux内核中的包过滤功能体系,称为linux防火墙的“内核态”
iptables:位于/sbin/iptables,管理规则的工具,称为linux防火墙“用户态”
iptables的表,链结构:
—————————————————————————————
raw表 | mangle表 | nat表 | filter表 |
PREROUTING | PREROUTING | PREROUTING | 第一条规则 |
OUTPUT | POSTROUTING | POSTROUTING | 第二条规则 |
| INPUT | OUTPUT | INPUT |
| OUTPUT | | FORWARD |
| FORWARD | | OUTPUT |
—————————————————————————————
规则表解析:
表的用途:存放不同的规则链
表的分类依据:防火墙规则的作用相似
包括四个规则表
raw表:确定是否对数据包进行状态追踪
mangle表:为数据包设置标记
nat表:修改数据包的源/目标地址或端口
filter表:确定是否放行该数据包
规则链解析:
链的用途:存放一条一条防火墙规则
链的分类依据:处理数据包的不同时机
默认包括五种规则链
INPUT:处理入站数据包
OUTPUT:处理出站数据包
FORWARD:处理转发数据包
POSTROUTING:路由选择之后处理
PREROUTING:路由选择之前处理
包过滤匹配流程
规则表之间的顺序
raw——》——mangle——》nat——》filter
规则链之间的顺序
入站:PREROUTING——》INPUT
出站:OUTPUT——》POSTROUTING
转发:PREROUTING——》FORWARD——》POSTROUTING
规则链内的匹配顺序
顺序比对,匹配即停止(LOG除外)
若无任何匹配,则按该链的默认策略处理
——————————————————————————————————————————
iptables基本用法
管理程序位置:/sbin/iptables
注意事项/整体规律
可以不指定表,默认为filter表
可以不指定链,默认为对应表的所有链
除非设置默认策略,否则必须指定匹配条件
选项/链名/目标操作,用大写字母,其余都小写
指令组成
iptables[-t 表名] 选项 [链名] [条件] [-j 目标操作]
-p:协议号或协议名
[root@stu ~]# iptables -t filter -A INPUT -p tcp -j ACCEPT(在末尾添加一条规则,使tcp可以通过)
[root@stu ~]# iptables -t filter -I INPUT -p udp -j ACCEPT
[root@stu ~]# iptables -t filter -I INPUT 2 -p icmp -j ACCEPT
[root@stu ~]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT udp -- anywhere anywhere
ACCEPT icmp -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere
基本的目标操作
ACCEPT:允许通过/放行
DROP:直接丢弃,不给出任何回应
REJECT:拒绝通过,必要时会给出提示
LOG:记录日志,然后传给下一条规则(匹配即停止,规律的唯一例外)
设置默认规则
所有链的初始默认规则为ACCEPT,通过-P选项可重置默认规则
-ACCEPT或者DROP
[root@stu ~]# iptables -t filter -P INPUT DROP
常用的管理选项:
——————————————————————————————————————
类别 选项 用途 |
添加规则 -A 在链的末尾追加一条规则 |
-I 在链的开头(或指定序号)插入一条规则 |
|
查看规则 -L 列出所有的规则条目 |
-n 以数字形式显示地址,端口等信息 |
--line-numbers 查看规则时,显示规则的序号 |
|
删除规则 -D 删除链内指定序号(或内容)的一条规则 |
-F 清空所有的规则 |
|
默认策略 -P 为指定的链设置默认规则 |
——————————————————————————————————————
filter表控制
主机/网络型防护,根据对象(本机,其他主机)区分
主机型防火墙
出站数据—》防火墙
入站数据—》防火墙
网络型防火墙
转发数据——》防火墙
基本的匹配条件
通用匹配:
可直接使用,不依赖于其他条件或扩展,
包括网络协议,ip地址,网络接口等条件
隐含匹配:
要求一特定的协议匹配作为前提
包括端口,tcp标记,icmp类型
———————————————————————————————————
类别 选项 用法 |
通用匹配 协议匹配 -p 协议名 |
地址匹配 -s 源地址,-d 目标地址 |
接口匹配 -i 收数据的网卡 ,-o 发数据的网卡 |
|
隐含匹配 端口匹配 --sport 源端口,--dport 目标端口 |
ICMP类型匹配 --icmp-type ICMP类型 |
TCP标记匹配 --tcp-flags 检查哪些位 哪些位被设置 |
———————————————————————————————————
(需要取反条件时,用叹号!)
实列:
禁止从客户机174.16.16.120远程访问登陆到本机
iptable -t filter -A INPUT -s 174.16.16.120 -p tcp --dport 22 -j DROP
禁止从客户机174.16.16.120访问svr5上的任何服务
iptable -t filter -A FORWARD -s 174.16.16.120 -d 192.168.4.30 -j DROP
保护特定网络服务
限制对指定服务端口的访问
iptable -t filter -A FORWARD -s 174.16.16.120 -p tcp --dport 20:50 -j DROP
(连续的端口范围可以用冒号分隔)
实列
允许访问wbe服务
[root@svr5 ~]# iptables -A INPUT -p tcp --dport 80 -j ACCEPT
允许访问ftp服务
[root@svr5 ~]# iptables -A INPUT -p tcp --dport 20:21 -j ACCEPT
允许174.16.16.0网段远程登陆192.168.4.30访问ssh
[root@svr5 ~]# iptables -A INPUT -s 174.16.16.0/24 -p tcp --dport 22 -j ACCEPT
拒绝其他任何入站访问
[root@svr5 ~]# iptables -P INPUT DROP
禁ping相关策略处理
临时:
echo 1 > /prot/sys/net/ipv4/icmp_echo_ignore_all
或者
sysctl -w net.ipv4.icmp_echo_ignore_all=1
永久:
vim /etc/sysctl.conf
net.ipv4.icmp_echo_ignore_all=1
允许本机ping其他主机,禁止其他主机ping本机
[root@svr5 ~]# iptables -A INPUT -p icmp --icmp-type echO-request -j DROP
[root@svr5 ~]# iptables -A INPUT -p icmp ! --icmp-type echO-request -j ACCEPT
扩展匹配
前提条件:有对应的防火墙模块支持
基本用法:
-m 扩展模块 --扩展条件 条件值
实列 -m mac --mac-source 00:0C:29:74:BE:21
常见的扩展条件类型
—————————————————————————————————
类别 选项 用 法 |
扩展匹配 状态匹配 -m state --state 状态值 |
mac地址匹配 -m mac --mac-source mac地址 |
|
多端口匹配 -m multiport --sport 源端口列表 |
-m multiport --dport 目标端口列表 |
|
ip范围匹配 -m iprange --src-range ip1-ip2 |
-m iprange --dst-range ip1-ip2 |
—————————————————————————————————
数据包状态跟踪
网络连接的五种状态
NEW:请求建立连接的包,完全陌生的包
ESTABLISHED:将要或者已经建立连接的包
RELATED:与已知某个连接相关联的包
INVALID:无对应连接,以及连接无效的包
UNTRACKED:为跟踪状态的包
丢弃陌生的TCP响应包
防止反弹式攻击
iptables -A INPUT -m state --state NEW -p tcp ! --syn -j DROP
iptables -A FORWARD -m state --state NEW -p tcp !--syn -j DROP
iptables转发ftp连接的时候
放行被动模式的数据包
启用状态跟踪模块 nf_conntrack_ftp
modprobe -a nf_conntrack_ftp
保护内部网络的通信
允许从内网访问外网的服务
iptable -A FORWARD -s 192.168.4.0/24 -o eth0 -j ACCEPT
iptable -A FORWARD -s 192.168.4.0/24 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
禁止从外网访问内网
iptables -A FORWARD -d 192.168.4.0/24 -i eth0 -m state --state NEW -j DROP
——————————————————————————————————————————————————————
linux iptables配置的更多相关文章
- Linux iptables 配置规则
Linux iptables 防火墙配置规则 前言:把网上我感觉不错iptables的访问规则都统一在这里,以后做参考. modprobe ipt_MASQUERADE modprobe ip_con ...
- Linux iptables配置错误导致ORA-12535 & ORA-12170
实验环境: 操作系统 : Red Hat Enterprise Linux Server release 5.7 (Tikanga) 数据库版本: Oracle Databa ...
- linux iptables 配置
1.查看已有配置 iptables -L -n 2.清除原有规则. iptables -F 清除预设表filter中的所有规则链的规则 iptables -X 清除预设表f ...
- linux篇-linux iptables配置
1 iptables默认系统自带 setup 2重启防火墙 /etc/init.d/iptables restart 3接受端口 Vi /etc/sysconfig/iptables -A INPUT ...
- linux iptables常用命令之配置生产环境iptables及优化
在了解iptables的详细原理之前,我们先来看下如何使用iptables,以终为始,有可能会让你对iptables了解更深 所以接下来我们以配置一个生产环境下的iptables为例来讲讲它的常用命令 ...
- linux下IPTABLES配置详解(转)
如果你的IPTABLES基础知识还不了解,建议先去看看. 开始配置 我们来配置一个filter表的防火墙. (1)查看本机关于IPTABLES的设置情况 [root@tp ~]# iptables - ...
- linux下IPTABLES配置详解(转)
如果你的IPTABLES基础知识还不了解,建议先去看看.开始配置我们来配置一个filter表的防火墙.(1)查看本机关于IPTABLES的设置情况[ ~]# iptables -L -nChain I ...
- linux下IPTABLES配置
如果你的IPTABLES基础知识还不了解,建议先去看看. 开始配置 我们来配置一个filter表的防火墙. (1)查看本机关于IPTABLES的设置情况 [root@tp ~]# iptables - ...
- linux下IPTABLES配置详解
如果你的IPTABLES基础知识还不了解,建议先去看看. 开始配置 我们来配置一个filter表的防火墙. (1)查看本机关于IPTABLES的设置情况 [root@tp ~]# iptables - ...
随机推荐
- CGroup Namspace
CGroup 介绍 CGroup 是 Control Groups 的缩写,是 Linux 内核提供的一种可以限制.记录.隔离 进程组 (process groups) 所使用的物力资源 (如 cpu ...
- 过16道练习学习Linq和Lambda(转)
1. 查询Student表中的所有记录的Sname.Ssex和Class列. select sname,ssex,class from studentLinq: from s in Students ...
- 完全卸载SQL Server 2008r2
完全卸载SQL Server 2008r2 "五一"时进行了系统重装,在没有卸载SQL Server 2008情况下尝试安装SQL Server 2008r2 ,安装提示成功但 ...
- Win7系统下彻底删除无用服务的方法
win7系统下中有非常多的服务项,用户来满足不同行业用户间的所有需求,系统服务也是执行指定系统功能的程序,许多情况下我们想要运行软件或执行外接设备都无法离开系统服务,但并非所有系统服务都是我们用到的, ...
- console引起的eclipse 僵死/假死 问题排查及解决[转]
原文链接:http://www.iteye.com/topic/1133941 症状: 使用Eclipse win 64位版本,indigo及kepler都重现了,使用tomcat 6.0.39,jd ...
- 洛谷 P3672 小清新签到题 [DP 排列]
传送门 题意:给定自然数n.k.x,你要求出第k小的长度为n的逆序对对数为x的1~n的排列 $n \le 300, k \le 10^13$ 一下子想到hzc讲过的DP 从小到大插入,后插入不会对前插 ...
- [用CDQ分治解决区间加&区间求和]【习作】
[前言] 作为一个什么数据结构都不会只会CDQ分治和分块的蒟蒻,面对区间加&区间求和这么难的问题,怎么可能会写线段树呢 于是,用CDQ分治解决区间加&区间求和这篇习作应运而生 [Par ...
- BZOJ 2844: albus就是要第一个出场 [高斯消元XOR 线性基]
2844: albus就是要第一个出场 题意:给定一个n个数的集合S和一个数x,求x在S的$2^n$个子集从小到大的异或和序列中最早出现的位置 一开始看错题了...人家要求的是x第一次出现位置不是第x ...
- MySQL学习记录(不断更新)
MySQL设置数据集为UTF8仍无法输入中文的解决办法: 我们的机器默认为gbk,因此可在进入数据库之前,使用以下这条语句将默认编码改为gbk,注意没有单引号,也不要用分号. mysql -uroot ...
- react-native WebView 返回处理 (非回调方法可解决)
1.前言 项目中有些页面内容是变更比较频繁的,这些页面我们会考虑用网页来解决. 在RN项目中提供一个公用的Web页,如果是网页内容,就跳转到这个界面展示. 此时会有一个问题是,网页会有一级页面,二级页 ...