Linux下iptables防火墙用法规则详解
- 管理网络流量是系统管理员必需处理的最棘手工作之一,我们必需规定连接系统的用户满足防火墙的传入和传出要求,以最大限度保证系统免受×××。很多用户把 Linux 中的iptables当成一个防火墙,从严格意见上来说 iptables只是能够帮助管理员定义各种规则并与 Linux Kernel 进行沟通的一个命令行工具。它只是帮助管理员配置网络流量的传入、传出规则列表,具体的实现其实是在 Linux 内核当中。
- 1、启动、停止和重启iptables
- 虽然 iptables并不是一项服务,但在 Linux 中还是可以像服务一样对其状态进行管理。
- 基于SystemD的系统
- systemctl start iptables
- systemctl stop iptables
- systemctl restart iptables
- 基于SysVinit的系统
- /etc/init.d/iptables start
- /etc/init.d/iptables stop
- /etc/init.d/iptables restart
- 2、查看IPtables防火墙策略
- 你可以使用如下命令来查看 IPtables 防火墙策略:
- iptables -L -n -v
- 以上命令是查看默认的 FILTER 表,如果你只希望查看特定的表,可以在 -t 参数后跟上要单独查看的表名。例如只查看 NAT 表中的规则,可以使用如下命令:
- iptables -t nat -L -v –n
- 3、屏蔽某个IP地址
- 如果你发布有某个 IP 向服务器导入×××或非正常流量,可以使用如下规则屏蔽其 IP 地址:
- iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP
- 注意需要将上述的 XXX 改成要屏蔽的实际 IP 地址,其中的 -A 参数表示在 INPUT 链的最后追加本条规则。(IPTables 中的规则是从上到下匹配的,一旦匹配成功就不再继续往下匹配)
- 如果你只想屏蔽 TCP 流量,可以使用 -p 参数的指定协议,例如:
- iptables -A INPUT -p tcp -s xxx.xxx.xxx.xxx -j DROP
- 4、解封某个IP地址
- 要解封对 IP 地址的屏蔽,可以使用如下命令进行删除:
- iptables -D INPUT -s xxx.xxx.xxx.xxx -j DROP
- 其中 -D 参数表示从链中删除一条或多条规则。
- 5、使用IPtables关闭特定端口
- 很多时候,我们需要阻止某个特定端口的网络连接,可以使用 IPtables 关闭特定端口。
- 阻止特定的传出连接:
- iptables -A OUTPUT -p tcp --dport xxx -j DROP
- 阻止特定的传入连接:
- iptables -A INPUT -p tcp --dport xxx -j ACCEPT
- 6、使用Multiport控制多端口
- 使用 multiport 我们可以一次性在单条规则中写入多个端口,例如:
- iptables -A INPUT -p tcp -m multiport --dports ,, -j ACCEPT
- iptables -A OUTPUT -p tcp -m multiport --sports ,, -j ACCEPT
- 7、在规则中使用 IP 地址范围
- 在 IPtables 中 IP 地址范围是可以直接使用 CIDR 进行表示的,例如:
- iptables -A OUTPUT -p tcp -d 192.168.100.0/ --dport -j ACCEPT
- 8、配置端口转发
- 有时我们需要将 Linux 服务器的某个服务流量转发到另一端口,此时可以使用如下命令:
- iptables -t nat -A PREROUTING -i eth0 -p tcp --dport -j REDIRECT --to-port
- 上述命令会将所有到达 eth0 网卡 25 端口的流量重定向转发到 2525 端口。
- 9、屏蔽HTTP服务Flood×××
- 有时会有用户在某个服务,例如 HTTP 80 上发起大量连接请求,此时我们可以启用如下规则:
- iptables -A INPUT -p tcp --dport -m limit --limit /minute --limit-burst -j ACCEPT
- 上述命令会将连接限制到每分钟 100 个,上限设定为 200。
- 10、禁止PING
- 对 Linux 禁 PING 可以使用如下规则屏蔽 ICMP 传入连接:
- iptables -A INPUT -p icmp -i eth0 -j DROP
- 11、允许访问回环网卡
- 环回访问(127.0.0.1)是比较重要的,建议大家都开放:
- iptables -A INPUT -i lo -j ACCEPT
- iptables -A OUTPUT -o lo -j ACCEPT
- 12、屏蔽指定MAC地址
- 使用如下规则可以屏蔽指定的 MAC 地址:
- iptables -A INPUT -m mac --mac-source ::::: -j DROP
- 13、限制并发连接数
- 如果你不希望来自特定端口的过多并发连接,可以使用如下规则:
- iptables -A INPUT -p tcp --syn --dport -m connlimit --connlimit-above -j REJECT
- 以上规则限制每客户端不超过 3 个连接。
- 14、清空IPtables规则
- 要清空 IPtables 链可以使用如下命令:
- iptables -F
- 要清空特定的表可以使用 -t 参数进行指定,例如:
- iptables -t nat –F
- 15、保存IPtables规则
- 默认情况下,管理员对 IPtables 规则的操作会立即生效。但由于规则都是保存在内存当中的,所以重启系统会造成配置丢失,要永久保存 IPtables 规则可以使用 iptables-save 命令:
- iptables-save > ~/iptables.rules
- 保存的名称大家可以自己改。
- 16、还原IPtables规则
- 有保存自然就对应有还原,大家可以使用 iptables-restore 命令还原已保存的规则:
- iptables-restore < ~/iptables.rules
- 17、允许建立相关连接
- 随着网络流量的进出分离,要允许建立传入相关连接,可以使用如下规则:
- iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
- 允许建立传出相关连接的规则:
- iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
- 18、丢弃无效数据包
- 很多网络×××都会尝试用×××自定义的非法数据包进行尝试,我们可以使用如下命令来丢弃无效数据包:
- iptables -A INPUT -m conntrack --ctstate INVALID -j DROP
- 19、IPtables屏蔽邮件发送规则
- 如果你的系统不会用于邮件发送,我们可以在规则中屏蔽 SMTP 传出端口:
- iptables -A OUTPUT -p tcp --dports ,, -j REJECT
- 20、阻止连接到某块网卡
- 如果你的系统有多块网卡,我们可以限制 IP 范围访问某块网卡:
- iptables -A INPUT -i eth0 -s xxx.xxx.xxx.xxx -j DROP
- 源地址可以是 IP 或 CIDR。
Linux下iptables防火墙用法规则详解的更多相关文章
- iptables防火墙相关命令详解
前提基础: 当主机收到一个数据包后,数据包先在内核空间中处理,若发现目的地址是自身,则传到用户空间中交给对应的应用程序处理,若发现目的不是自身,则会将包丢弃或进行转发. iptables实现防火墙功能 ...
- 【Linux学习】Linux下用户组、文件权限详解
原文地址:http://www.cnblogs.com/123-/p/4189072.html Linux下用户组.文件权限详解 用户组 在linux中的每个用户必须属于一个组,不能独立于组外.在li ...
- 【转】Linux下Android ADB驱动安装详解
原文网址:http://blog.csdn.net/zhenwenxian/article/details/5901350 Linux下Android ADB驱动安装详解 概述 最近由于内置的合作商比 ...
- 莱特币ltc在linux下的多种挖矿方案详解
莱特币ltc在linux下的多种挖矿方案详解 4.0.1 Nvidia显卡Linux驱动Nvidia全部驱动:http://www.nvidia.cn/Download/index.aspx?lang ...
- (转)Mysql数据库之Binlog日志使用总结Linux下用户组、文件权限详解
Linux下用户组.文件权限详解 原文:http://blog.csdn.net/sdulibh/article/details/51566772 用户组 在linux中的每个用户必须属于一个组,不能 ...
- 【Linux开发】Linux下jpeglib库的安装详解
Linux下jpeglib库的安装详解 首先要下载所需的库压缩包:jpegsrc.v6b.tar.gz或 jpegsrc.v8b.tar.gz 然后将下载的压缩包随便放在和解压到你喜欢的地方. # t ...
- Linux下的压缩解压缩命令详解
linux zip命令zip -r myfile.zip ./*将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件. 2.unzipunzip -o - ...
- linux中iptables配置文件及命令详解详解
iptables配置文件 直接改iptables配置就可以了:vim /etc/sysconfig/iptables. 1.关闭所有的 INPUT FORWARD OUTPUT 只对某些端口开放. 下 ...
- linux中iptables配置文件及命令详解
转自:https://www.cnblogs.com/itxiongwei/p/5871075.html iptables配置文件 直接改iptables配置就可以了:vim /etc/sysconf ...
随机推荐
- Logging模块总结 2018/5/30
日志的级别 Level 用处 数字级别 DEBUG 详细的信息,在调试过程中用于诊断错误 10 INFO 用于确认事件正在运行 20 WARNING 意外发生时予以提醒,或者预测一些未来可能发生的一些 ...
- oracle 创建一个用户,只能访问指定的对象
1>创建一个ORACLE 的用户 create user username identified by pws; 2>给用户授权 grant connect,resource to us ...
- Java程序员常用工具类库 - 目录
有人说当你开始学习Java的时候,你就走上了一条不归路,在Java世界里,包罗万象,从J2SE,J2ME,J2EE三大平台,到J2EE中的13中核心技术,再到Java世界中万紫千红的Framework ...
- [C++] const object
const object const 对象只能调用const函数 const函数不能改变一般成员变量的值,但是mutable的变量不受限制
- 向对象(OO)程序设计
http://www.uml.org.cn/mxdx/201208232.asp 前言 本文主要介绍面向对象(OO)程序设计,以维基百科的解释: 面向对象程序设计(英语:Object-oriented ...
- itunes win10应用商店安装 升级固件路径
win + r 在运行中输入: %localappdata%\Packages\AppleInc.iTunes_nzyj5cx40ttqa\LocalCache\Roaming\Apple Compu ...
- axure & Markman学习总结
最近学了几款有意思的软件,一款是axure,另一款是Markman.接下来聊聊自己的学习心得吧. 关于axure,百度上的解释是:是一个专业的快速原型设计工具.在我看来,它就是能快速把效果网页做给客户 ...
- 白盒测试实践--Day4 12.20
累计完成任务情况: 阶段内容 参与人 完成个人情况说明并提交作业 全体 汇总作业,查漏补缺,完成代码测试总结 小靳.小龙 完成测试小结 小黄.小尹 完成静态代码检查结果报告 小靳 完成JUnit脚本编 ...
- 微信第三方登录测试时报Scope参数错误或没有Scope权限解决方法
一 报错信息: 二 出现原因分析: 出现这种错误网上查出现有的原因是: 1. 订阅号没有相关的权限 2. 账号没有认证,没有相关的权限 那么这里遇到问题两种都不是.开发账号是 服务号,而且也是认证号. ...
- mongoTemplate查询
1.精确查询用“is” Criteria criteria=new Criteria("namespaceName"); criteria.is(namespaceName); Q ...