linux下iptables讲解
iptables(netfilter网络过滤器)
iptables是linux上特有的防火墙机制,功能非常强大。CentOS默认是没有iptables规则。
iptables命令可用于配置Linux的包过滤规则,常用于实现防火墙、NAT。
常用选项:
iptables -nvL 查看规则(-n为数字显示输出的ip地址和端口 -v 为可视化显示 -L为列出所有的规则)
iptables -F 清除规则(flush清除);清除只是临时的,重启系统或者重启iptables服务后还会加载已经保存的规则。清除之后要保存规则。
/etc/init.d/iptables save 或 service iptables save 保存规则
防火墙规则保存在配置文件 /etc/sysconfig/iptables
iptables -Z 计数器清零(zero)
service iptables stop 暂停防火墙服务,并清除防火墙规则,但是重启后会读取/etc/sysconfig/iptables 从而启动防火墙。即使我们停止防火墙,但是一旦添加任何一条规则,它也会开启。
iptables -t 指定表名(table),默认不加-t 则是filter表;
直观图便于理解,4个表,5个链;
filter 这个表主要用于过滤包的,是系统预设的表,内建三个链INPUT、OUTPUT以及FORWARD。INPUT作用于进入本机的包;OUTPUT作用于本机送出的包;FORWARD作用于那些跟本机无关的包。
nat 主要用处是网络地址转换、端口映射,也有三个链。PREROUTING 链的作用是在包刚刚到达防火墙时改变它的目的地址,如果需要的话。OUTPUT链改变本地产生的包的目的地址。POSTROUTING链在包就要离开防火墙之前改变其源地址。
mangle 主要用于修改数据包的TOS(Type Of Service,服务类型)、TTL(Time ToLive,生存周期)值以及为数据包设置Mark标记,以实现Qos (Quality of Service,服务质量)调整以及策略路由等应用,由于需要相应的路由设备支持,因此应用并不广泛。 五个链:PREROUTING、POSTROUTING、INPUT、OUTPUT、FORWARD
raw 对报文设置一个标志,决定数据包是否被状态跟踪机制处理 只有两个链:OUTPUT、PREROUTING
iptables规则相关:
查看规则 iptables -t nat -nvL
清除规则 iptables -t nat -F
增加/删除规则 iptables -A/-D INPUT -s 10.72.11.12 -p tcp --sport 1234 -d 10.72.137.159 --dport 80 -j DROP
插入规则 iptables -I INPUT -s 1.1.1.1 -j DROP/ACCEPT/REJECT
iptables -nvL --line-numbers 查看规则带有id号
iptables -D INPUT 1 根据规则的id号删除对应规则
iptables -P INPUT DROP 用来设定默认规则,默认是ACCEPT ,一旦设定为DROP后,只能使用 iptables -P ACCEPT 才能恢复成原始状态,而不能使用-F参数;
把ip为192.168.20.0网段所有数据包都丢掉
1
|
[root@yong ~] # iptables -I INPUT -s 192.168.20.0 -j DROP
|
删除规则的话,要与添加规则的后缀一样才可以;
1
|
[root@yong ~] # iptables -D INPUT -s 192.168.20.0 -j DROP
|
把1.1.1.1 访问本地tcp协议80端口的所有数据包都丢掉;
1
|
[root@yong ~] # iptables -I INPUT -s 1.1.1.1 -p tcp --dport 80 -j DROP
|
把发送到10.0.1.14的22端口的所有数据包丢掉;
1
|
[root@yong ~] # iptables -I OUTPUT -p tcp --dport 22 -d 10.0.1.14 -j DROP
|
使用这个命令查看规则带有id号显示;
1
2
3
4
5
|
[root@yong ~] # iptables -nvL --line-number
Chain INPUT (policy ACCEPT 84 packets, 5944 bytes)
num pkts bytes target prot opt in out source destination
1 0 0 DROP tcp -- * * 1.1.1.1 0.0.0.0 /0 tcp dpt:80
2 0 0 DROP all -- * * 192.168.20.0 0.0.0.0 /0
|
然后删除的时候使用iptables -D INPUT 1 删除上面的1规则,不用写很长的后缀。
禁止别人ping你的主机,你可以ping别人;只需要添加一条规则;icmp-type 8 可以实现;
[root@yong ~]# iptables -I INPUT -p icmp --icmp-type 8 -j DROP
示例,编一个脚本,针对filter表,所有的INPUT链DROP,其他两个链ACCEPT,然后针对192.168.20.0/24网段开通22端口可以连接主机;对所有网段开放80端口;对所有网段开通21端口;
1
2
3
4
5
6
7
8
9
10
|
[root@yong ~] # vim iptables.sh
#! /bin/bash
ipt= "/sbin/iptables"
$ipt -F
$ipt -P INPUT DROP
$ipt -P OUTPUT ACCEPT
$ipt -P FORWARD ACCEPT
$ipt -A INPUT -s 192.168.20.0 /24 -p tcp --dport 22 -j ACCEPT
$ipt -A INPUT -p tcp --dport 80 -j ACCEPT
$ipt -A INPUT -p tcp --dport 21 -j ACCEPT
|
1
|
[root@yong ~] # sh iptables.sh
|
运行脚本即可,如果想开机运行防火墙规则的话,在/etc/rc.d/rc.local 添加一行“/bin/sh /root/iptables.sh”
nat表应用:
路由器就是使用iptables的nat原理实现.
假设您的机器上有两块网卡eth0和eth1,其中eth0的IP为192.168.4.11,eth1的IP为192.168.20.1 。eth0连接了internet 但eth1没有连接,现在有另一台机器(192.168.20.10)和eth1是互通的,那么如何设置也能够让连接eth1的这台机器能够连接internet?
1
2
3
4
|
[root@yong ~] # cat /proc/sys/net/ipv4/ip_forward
0
[root@yong ~] # echo "1" > /proc/sys/net/ipv4/ip_forward
[root@yong ~] # iptables -t nat -A POSTROUTING -s 192.168.20.0/24 -o eth0 -j MASQUERADE
|
/proc/sys/net/ipv4/ip_forward 为内核参数相关的文件,默认为0,1为打开路由转发功能。
第2条命令为iptables对nat表做了一个IP转发的操作,-o 后面跟设备名,表示出口的网卡。MASQUERADE表示伪装的意思;让192.168.20.0网段通过eth0伪装出去连接上网。
iptables规则备份与恢复:
service iptables save 这样会保存到/etc/sysconfig/iptables ,如果以后遇到备份防火墙规则的任务,就是拷贝一份这个文件的副本。
iptables-save > myipt.rule 可以把防火墙规则保存到指定文件中;
iptables-restore < myipt.rule 这样可以恢复指定的规则;
1
2
3
4
5
6
|
[root@yong ~] # iptables-save > myipt.rule
[root@yong ~] # service iptables stop
iptables: Setting chains to policy ACCEPT: nat filter [ OK ]
iptables: Flushing firewall rules: [ OK ]
iptables: Unloading modules: [ OK ]
[root@yong ~] # iptables-restore < myipt.rule
|
转载于:https://www.cnblogs.com/yuzhaokai0523/p/4453098.html
linux下iptables讲解相关推荐
- Linux下iptables 禁止端口和开放端口
Linux下iptables 禁止端口和开放端口 转载于:https://www.cnblogs.com/lwmp/p/6972202.html
- linux下iptables和netfilter详解(4):洞悉实现流程及协议栈分析
(一)洞悉linux下的Netfilter&iptables:什么是Netfilter? 很多人在接触iptables之后就会这么一种感觉:我通过iptables命令配下去的每一条规则,到底是 ...
- linux iptables禁止端口,Linux下iptables 禁止端口和开放端口示例
1.关闭所有的 INPUT FORWARD OUTPUT 只对某些端口开放. 下面是命令实现: iptables -P INPUT DROP iptables -P FORWARD DROP ipta ...
- linux下iptables的编译及简单使用
前段时间搞openwrt,后来有另外的重要的部门任务安排,转行改公司经过几代迭代的架构的代码的警告,花了约一周时间,花这么久时间,一来代码多,二来绝大部分代码非小弟所写所熟,故个别地方要测试是否OK. ...
- redhat linux防火墙状态,RedHat Linux下iptables防火墙设置
一般情况下iptables已经包含在Linux发行版中. 运行 # iptables --version 来查看系统是否安装iptables 启动iptables: # service iptable ...
- linux下IPTABLES配置详解
转载自 http://www.cnblogs.com/JemBai/archive/2009/03/19/1416364.html 如果你的IPTABLES基础知识还不了解,建议先去看看. 开始配置 ...
- IPTABLES简单应用说明和Linux下IPTABLES配置详解
如果你的IPTABLES基础知识还不了解,建议先去看看. 开始配置一个filter表的防火墙. (1)查看本机关于IPTABLES的设置情况 [root@tp ~]# iptables -L -n C ...
- Linux下iptables防火墙配置
目录 一.Linux防火墙基础 1.1 防火墙概述 1.2 四表五链 二. iptables--命令 2.1 iptables的安装 2.2 iptables的配置方法 三.配置Filter表防火墙 ...
- Linux下iptables屏蔽IP和端口号
封单个IP的命令:iptables -I INPUT -s 124.115.0.199 -j DROP 封IP段的命令:iptables -I INPUT -s 124.115.0.0/16 -j D ...
最新文章
- 【bzoj5020】[THUWC 2017]在美妙的数学王国中畅游 泰勒展开+LCT
- appium+tidevice实现iOS自动化测试(Mac)
- Documentum常见问题10-修改特定Type的显示图标
- 在ASP.NET中UrlRewrite的实现(能隐藏扩展名)之一
- 括号匹配编码c语言,用c语言实现括号匹配算法
- linux pstree乱码,pstree下显示乱码解决
- 利用11行Python代码,盗取了室友的U盘,内容十分刺激!
- 数据分析师要会mysql_数据分析人员需要掌握sql到什么程度?
- lambdapython语法_Python中lambda表达式的语法与应用
- 成功恢复新网LINUX REISERFS 6块盘 RAID5邮件服务器
- DS证据理论基础研究--主要将其应用于旅游管理科学研究中
- 浅析浏览器书签的导入和导出
- Android 9.0 解决无法通过adb install 安装persistent app
- 洪磊父亲详述被拘细节:银行卡共100万
- C语言 十进制转换为二进制
- 硬件/操作系统/网络(九):了解常见linux服务器硬件配置
- STM8S103之tim1PWM输出
- C语言经典编程(浙大版C语言第三版)详解
- 零点和极点的物理意义
- 2022年全国PMP考试地点汇总,你都知道吗?
热门文章
- Verifying Checksum ... Bad Data CRC ERROR: can#39;t get kernel image!
- hive初识.docx
- freeswitch 把SIP注册信息数据库从SQLITE 改为MYSQL的方法
- 使用ADO操作数据库时一个好用的VARIANT类!
- ActivityManager: Warning: Activity not started, its current task has been brought to the front
- java.lang.Exception: Socket bind failed: [730048]
- v8学习笔记(八) 【JS与C++互调】
- 分布式离线计算—HiveSQL
- Android 8.0 targetsdkversion升级到26填坑
- resource.arsc二进制内容解析 之 Dynamic package reference