1. 管理网络流量是系统管理员必需处理的最棘手工作之一,我们必需规定连接系统的用户满足防火墙的传入和传出要求,以最大限度保证系统免受×××。很多用户把 Linux 中的iptables当成一个防火墙,从严格意见上来说 iptables只是能够帮助管理员定义各种规则并与 Linux Kernel 进行沟通的一个命令行工具。它只是帮助管理员配置网络流量的传入、传出规则列表,具体的实现其实是在 Linux 内核当中。
  2.  
  3. 1、启动、停止和重启iptables
  4.  
  5. 虽然 iptables并不是一项服务,但在 Linux 中还是可以像服务一样对其状态进行管理。
  6.  
  7. 基于SystemD的系统
  1. systemctl start iptables
  2.  
  3. systemctl stop iptables
  4.  
  5. systemctl restart iptables
  1. 基于SysVinit的系统
  1. /etc/init.d/iptables start
  2.  
  3. /etc/init.d/iptables stop
  4.  
  5. /etc/init.d/iptables restart
  1. 2、查看IPtables防火墙策略
  2.  
  3. 你可以使用如下命令来查看 IPtables 防火墙策略:
  1. iptables -L -n -v
  1. 以上命令是查看默认的 FILTER 表,如果你只希望查看特定的表,可以在 -t 参数后跟上要单独查看的表名。例如只查看 NAT 表中的规则,可以使用如下命令:
  1. iptables -t nat -L -v n
  1. 3、屏蔽某个IP地址
  2.  
  3. 如果你发布有某个 IP 向服务器导入×××或非正常流量,可以使用如下规则屏蔽其 IP 地址:
  1. iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP
  1. 注意需要将上述的 XXX 改成要屏蔽的实际 IP 地址,其中的 -A 参数表示在 INPUT 链的最后追加本条规则。(IPTables 中的规则是从上到下匹配的,一旦匹配成功就不再继续往下匹配)
  2.  
  3. 如果你只想屏蔽 TCP 流量,可以使用 -p 参数的指定协议,例如:
  1. iptables -A INPUT -p tcp -s xxx.xxx.xxx.xxx -j DROP
  1. 4、解封某个IP地址
  2.  
  3. 要解封对 IP 地址的屏蔽,可以使用如下命令进行删除:
  1. iptables -D INPUT -s xxx.xxx.xxx.xxx -j DROP
  1. 其中 -D 参数表示从链中删除一条或多条规则。
  2.  
  3. 5、使用IPtables关闭特定端口
  4.  
  5. 很多时候,我们需要阻止某个特定端口的网络连接,可以使用 IPtables 关闭特定端口。
  6.  
  7. 阻止特定的传出连接:
  1. iptables -A OUTPUT -p tcp --dport xxx -j DROP
  1. 阻止特定的传入连接:
  1. iptables -A INPUT -p tcp --dport xxx -j ACCEPT
  1. 6、使用Multiport控制多端口
  2.  
  3. 使用 multiport 我们可以一次性在单条规则中写入多个端口,例如:
  1. iptables -A INPUT -p tcp -m multiport --dports ,, -j ACCEPT
  2.  
  3. iptables -A OUTPUT -p tcp -m multiport --sports ,, -j ACCEPT
  1. 7、在规则中使用 IP 地址范围
  2.  
  3. IPtables IP 地址范围是可以直接使用 CIDR 进行表示的,例如:
  1. iptables -A OUTPUT -p tcp -d 192.168.100.0/ --dport -j ACCEPT
  1. 8、配置端口转发
  2.  
  3. 有时我们需要将 Linux 服务器的某个服务流量转发到另一端口,此时可以使用如下命令:
  1. iptables -t nat -A PREROUTING -i eth0 -p tcp --dport -j REDIRECT --to-port
  1. 上述命令会将所有到达 eth0 网卡 25 端口的流量重定向转发到 2525 端口。
  2.  
  3. 9、屏蔽HTTP服务Flood×××
  4.  
  5. 有时会有用户在某个服务,例如 HTTP 80 上发起大量连接请求,此时我们可以启用如下规则:
  1. iptables -A INPUT -p tcp --dport -m limit --limit /minute --limit-burst -j ACCEPT
  1. 上述命令会将连接限制到每分钟 100 个,上限设定为 200
  2.  
  3. 10、禁止PING
  4.  
  5. Linux PING 可以使用如下规则屏蔽 ICMP 传入连接:
  1. iptables -A INPUT -p icmp -i eth0 -j DROP
  1. 11、允许访问回环网卡
  2.  
  3. 环回访问(127.0.0.1)是比较重要的,建议大家都开放:
  1. iptables -A INPUT -i lo -j ACCEPT
  2.  
  3. iptables -A OUTPUT -o lo -j ACCEPT
  1. 12、屏蔽指定MAC地址
  2.  
  3. 使用如下规则可以屏蔽指定的 MAC 地址:
  1. iptables -A INPUT -m mac --mac-source ::::: -j DROP
  1. 13、限制并发连接数
  2.  
  3. 如果你不希望来自特定端口的过多并发连接,可以使用如下规则:
  1. iptables -A INPUT -p tcp --syn --dport -m connlimit --connlimit-above -j REJECT
  1. 以上规则限制每客户端不超过 3 个连接。
  2.  
  3. 14、清空IPtables规则
  4.  
  5. 要清空 IPtables 链可以使用如下命令:
  1. iptables -F
  1. 要清空特定的表可以使用 -t 参数进行指定,例如:
  1. iptables -t nat F
  1. 15、保存IPtables规则
  2.  
  3. 默认情况下,管理员对 IPtables 规则的操作会立即生效。但由于规则都是保存在内存当中的,所以重启系统会造成配置丢失,要永久保存 IPtables 规则可以使用 iptables-save 命令:
  1. iptables-save > ~/iptables.rules
  1. 保存的名称大家可以自己改。
  2.  
  3. 16、还原IPtables规则
  4.  
  5. 有保存自然就对应有还原,大家可以使用 iptables-restore 命令还原已保存的规则:
  1. iptables-restore < ~/iptables.rules
  1. 17、允许建立相关连接
  2.  
  3. 随着网络流量的进出分离,要允许建立传入相关连接,可以使用如下规则:
  1. iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
  1. 允许建立传出相关连接的规则:
  1. iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT
  1. 18、丢弃无效数据包
  2.  
  3. 很多网络×××都会尝试用×××自定义的非法数据包进行尝试,我们可以使用如下命令来丢弃无效数据包:
  1. iptables -A INPUT -m conntrack --ctstate INVALID -j DROP
  1. 19IPtables屏蔽邮件发送规则
  2.  
  3. 如果你的系统不会用于邮件发送,我们可以在规则中屏蔽 SMTP 传出端口:
  1. iptables -A OUTPUT -p tcp --dports ,, -j REJECT
  1. 20、阻止连接到某块网卡
  2.  
  3. 如果你的系统有多块网卡,我们可以限制 IP 范围访问某块网卡:
  1. iptables -A INPUT -i eth0 -s xxx.xxx.xxx.xxx -j DROP
  1. 源地址可以是 IP CIDR

Linux下iptables防火墙用法规则详解的更多相关文章

  1. iptables防火墙相关命令详解

    前提基础: 当主机收到一个数据包后,数据包先在内核空间中处理,若发现目的地址是自身,则传到用户空间中交给对应的应用程序处理,若发现目的不是自身,则会将包丢弃或进行转发. iptables实现防火墙功能 ...

  2. 【Linux学习】Linux下用户组、文件权限详解

    原文地址:http://www.cnblogs.com/123-/p/4189072.html Linux下用户组.文件权限详解 用户组 在linux中的每个用户必须属于一个组,不能独立于组外.在li ...

  3. 【转】Linux下Android ADB驱动安装详解

    原文网址:http://blog.csdn.net/zhenwenxian/article/details/5901350 Linux下Android ADB驱动安装详解 概述 最近由于内置的合作商比 ...

  4. 莱特币ltc在linux下的多种挖矿方案详解

    莱特币ltc在linux下的多种挖矿方案详解 4.0.1 Nvidia显卡Linux驱动Nvidia全部驱动:http://www.nvidia.cn/Download/index.aspx?lang ...

  5. (转)Mysql数据库之Binlog日志使用总结Linux下用户组、文件权限详解

    Linux下用户组.文件权限详解 原文:http://blog.csdn.net/sdulibh/article/details/51566772 用户组 在linux中的每个用户必须属于一个组,不能 ...

  6. 【Linux开发】Linux下jpeglib库的安装详解

    Linux下jpeglib库的安装详解 首先要下载所需的库压缩包:jpegsrc.v6b.tar.gz或 jpegsrc.v8b.tar.gz 然后将下载的压缩包随便放在和解压到你喜欢的地方. # t ...

  7. Linux下的压缩解压缩命令详解

    linux zip命令zip -r myfile.zip ./*将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件. 2.unzipunzip -o - ...

  8. linux中iptables配置文件及命令详解详解

    iptables配置文件 直接改iptables配置就可以了:vim /etc/sysconfig/iptables. 1.关闭所有的 INPUT FORWARD OUTPUT 只对某些端口开放. 下 ...

  9. linux中iptables配置文件及命令详解

    转自:https://www.cnblogs.com/itxiongwei/p/5871075.html iptables配置文件 直接改iptables配置就可以了:vim /etc/sysconf ...

随机推荐

  1. Logging模块总结 2018/5/30

    日志的级别 Level 用处 数字级别 DEBUG 详细的信息,在调试过程中用于诊断错误 10 INFO 用于确认事件正在运行 20 WARNING 意外发生时予以提醒,或者预测一些未来可能发生的一些 ...

  2. oracle 创建一个用户,只能访问指定的对象

    1>创建一个ORACLE 的用户 create user username identified by pws; 2>给用户授权  grant connect,resource to us ...

  3. Java程序员常用工具类库 - 目录

    有人说当你开始学习Java的时候,你就走上了一条不归路,在Java世界里,包罗万象,从J2SE,J2ME,J2EE三大平台,到J2EE中的13中核心技术,再到Java世界中万紫千红的Framework ...

  4. [C++] const object

    const  object const 对象只能调用const函数 const函数不能改变一般成员变量的值,但是mutable的变量不受限制

  5. 向对象(OO)程序设计

    http://www.uml.org.cn/mxdx/201208232.asp 前言 本文主要介绍面向对象(OO)程序设计,以维基百科的解释: 面向对象程序设计(英语:Object-oriented ...

  6. itunes win10应用商店安装 升级固件路径

    win + r 在运行中输入: %localappdata%\Packages\AppleInc.iTunes_nzyj5cx40ttqa\LocalCache\Roaming\Apple Compu ...

  7. axure & Markman学习总结

    最近学了几款有意思的软件,一款是axure,另一款是Markman.接下来聊聊自己的学习心得吧. 关于axure,百度上的解释是:是一个专业的快速原型设计工具.在我看来,它就是能快速把效果网页做给客户 ...

  8. 白盒测试实践--Day4 12.20

    累计完成任务情况: 阶段内容 参与人 完成个人情况说明并提交作业 全体 汇总作业,查漏补缺,完成代码测试总结 小靳.小龙 完成测试小结 小黄.小尹 完成静态代码检查结果报告 小靳 完成JUnit脚本编 ...

  9. 微信第三方登录测试时报Scope参数错误或没有Scope权限解决方法

    一 报错信息: 二 出现原因分析: 出现这种错误网上查出现有的原因是: 1. 订阅号没有相关的权限 2. 账号没有认证,没有相关的权限 那么这里遇到问题两种都不是.开发账号是 服务号,而且也是认证号. ...

  10. mongoTemplate查询

    1.精确查询用“is” Criteria criteria=new Criteria("namespaceName"); criteria.is(namespaceName); Q ...