Welcome 微信登录

首页 / 操作系统 / Linux / Linux管理员应该了解的20条IPTables防火墙规则用法

管理网络流量是系统管理员必需处理的最棘手工作之一,我们必需规定连接系统的用户满足防火墙的传入和传出要求,以最大限度保证系统免受攻击。很多用户把 Linux 中的 IPTables 当成一个防火墙,从严格意见上来说 IPTables 只是能够帮助管理员定义各种规则并与 Linux Kernel 进行沟通的一个命令行工具。它只是帮助管理员配置网络流量的传入、传出规则列表,具体的实现其实是在 Linux 内核当中。IPTables 包括一组内置和由用户定义规则的「链」,管理员可以在「链」上附加各种数据包处理规则。
  • FILTER 默认过滤表,内建的链有:
    • INPUT:处理流入本地的数据包
    • FORWARD:处理通过系统路由的数据包
    • OUTPUT:处理本地流出的数据包
  • NAT 实现网络地址转换的表,内建的链有:
    • PREROUTING:处理即将接收的数据包
    • OUTPUT:处理本地产生的数据包
    • POSTROUTING:处理即将传出的数据包
  • MANGLE 此表用于改变数据包,共 5 条链:
    • PREROUTING:处理传入连接
    • OUTPUT:处理本地生成的数据包
    • INPUT:处理报文
    • POSTROUTING:处理即将传出数据包
    • FORWARD:处理通过本机转发的数据包
接下来我们将由简入难介绍 25 条 Linux 管理员最常会用到的 IPTables 规则。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 restart2、查看IPtables防火墙策略你可以使用如下命令来查看 IPtables 防火墙策略:
iptables -L -n -v以上命令应该返回数据下图的输出:以上命令是查看默认的 FILTER 表,如果你只希望查看特定的表,可以在 -t 参数后跟上要单独查看的表名。例如只查看 NAT 表中的规则,可以使用如下命令:
iptables -t nat -L -v –n更多iptables相关教程见以下内容:CentOS 7.0关闭默认防火墙启用iptables防火墙  http://www.linuxidc.com/Linux/2015-05/117473.htmiptables使用范例详解 http://www.linuxidc.com/Linux/2014-03/99159.htmLinux防火墙iptables详细教程 http://www.linuxidc.com/Linux/2013-07/87045.htmiptables的备份、恢复及防火墙脚本的基本使用 http://www.linuxidc.com/Linux/2013-08/88535.htmLinux下防火墙iptables用法规则详解 http://www.linuxidc.com/Linux/2012-08/67952.htmLinux下iptables防火墙设置 http://www.linuxidc.com/Linux/2015-10/123843.htm3、屏蔽某个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 DROP4、解封某个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 ACCEPT6、使用Multiport控制多端口使用 multiport 我们可以一次性在单条规则中写入多个端口,例如:
iptables -A INPUT  -p tcp -m multiport --dports 22,80,443 -j ACCEPT
iptables -A OUTPUT -p tcp -m multiport --sports 22,80,443 -j ACCEPT7、在规则中使用 IP 地址范围在 IPtables 中 IP 地址范围是可以直接使用 CIDR 进行表示的,例如:
iptables -A OUTPUT -p tcp -d 192.168.100.0/24 --dport 22 -j ACCEPT8、配置端口转发有时我们需要将 Linux 服务器的某个服务流量转发到另一端口,此时可以使用如下命令:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 25 -j REDIRECT --to-port 2525上述命令会将所有到达 eth0 网卡 25 端口的流量重定向转发到 2525 端口。9、屏蔽HTTP服务Flood攻击有时会有用户在某个服务,例如 HTTP 80 上发起大量连接请求,此时我们可以启用如下规则:
iptables -A INPUT -p tcp --dport 80 -m limit --limit 100/minute --limit-burst 200 -j ACCEPT上述命令会将连接限制到每分钟 100 个,上限设定为 200。10、禁止PING对 Linux 禁 PING 可以使用如下规则屏蔽 ICMP 传入连接:
iptables -A INPUT -p icmp -i eth0 -j DROP11、允许访问回环网卡环回访问(127.0.0.1)是比较重要的,建议大家都开放:
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT12、屏蔽指定MAC地址使用如下规则可以屏蔽指定的 MAC 地址:
iptables -A INPUT -m mac --mac-source 00:00:00:00:00:00 -j DROP13、限制并发连接数如果你不希望来自特定端口的过多并发连接,可以使用如下规则:
iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 3 -j REJECT以上规则限制每客户端不超过 3 个连接。更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2016-03/128920p2.htm
  • 1
  • 2
  • 下一页
File Roller/Unzip 解压中文 Zip 文件名乱码VMware虚拟机安装CentOS 7图文教程相关资讯      IpTables  IPTables防火墙规则 
  • CentOS Samba 服务器 Iptables 和   (今 07:14)
  • iptables超全详解  (09月01日)
  • Iptables防火墙 基础知识