一、基本介绍
CentOS防火墙命令是CentOS中自带的一款防火墙程序,通过管理iptables实现对CentOS系统中进出网络的流量进行管理和控制。iptables是一种基于内核的Linux防火墙工具,可以用于控制网络流量、保护服务器免受攻击。
iptables是由网络管理员和开发者维护的开源项目,在安全领域具有广泛的应用。CentOS防火墙命令是对iptables的封装,方便管理CentOS防火墙,可以理解成CentOS防火墙命令就是iptables的命令调用。
二、CentOS防火墙命令的使用
1、启动/关闭CentOS防火墙
启动和关闭CentOS防火墙非常简单,只需执行以下命令:
启动CentOS防火墙:
iptables -F
iptables -X
iptables -Z
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
关闭CentOS防火墙:
/etc/init.d/iptables stop
上述命令中,-F 表示清除所有规则;-X 表示删除所有用户自定义的链;-Z 表示将所有计数器归零;-P 表示设置默认链的策略。
2、添加/删除规则
添加规则可以让管理员在防火墙中指定哪些端口是允许访问的,哪些是禁止访问的。删除规则则可以取消管理员之前设置的规则。下面分别介绍添加和删除规则的命令:
添加规则:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
- 参数A:表示添加一条规则
- 参数INPUT:表示应用规则的链名
- -p tcp:表示应用规则的协议为TCP
- --dport 80:表示协议端口号为80
- -j ACCEPT:表示执行接受操作
删除规则:
iptables -D INPUT -p tcp --dport 80 -j ACCEPT
- 参数D:表示删除一条规则
- 参数INPUT:表示应用规则的链名
- -p tcp:表示应用规则的协议为TCP
- --dport 80:表示协议端口号为80
- -j ACCEPT:表示执行接受操作
添加规则和删除规则的操作相反,其中-p表示协议,可以是tcp或udp。--dport表示端口。如果要允许多个端口,可以将端口号用逗号隔开。
3、查看规则
为了验证规则设置是否正确,需要经常查看已经设置的规则。下面介绍这个命令的使用方法:
查看规则:
iptables -L [-t 表名] [-vn]
- 参数-L:表示列出所有已经设置的规则
- 参数-t:表示要操作的表名,默认为filter表
- 参数-v:表示显示详细信息
- 参数-n:表示不对ip和端口进行反解析,提升速度
三、高阶用法
1、IP地址屏蔽
IP地址屏蔽是一种常见的防护方式,可以屏蔽一段IP地址的访问。下面介绍如何屏蔽IP地址:
屏蔽IP地址:
查找需要屏蔽的ip地址:whois IP地址
#屏蔽所有来自192.168.1.0/24网段的访问:
iptables -I INPUT -d 192.168.1.0/24 -j DROP
whois IP地址可以帮助我们查找到需要屏蔽的IP地址所属的网络段。-d表示目标地址。将DROP替换为ACCEPT,则可以允许特定IP段的访问。
2、端口映射
端口映射是一种常见的网络编程技术,将内部的端口映射到外部网络上,如将内部的80端口映射到外部的8080端口。下面介绍如何进行端口映射:
端口映射:
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.0.2:80
- 参数-A:表示添加规则
- 参数PREROUTING:表示在路由前修改
- 参数-t nat:表示使用nat表
- 参数-i eth0:表示转发流量的网络接口
- -p tcp:表示数据协议为TCP
- --dport 80:表示数据端口为80
- -j DNAT:表示转发到新的地址
- --to 192.168.0.2:80:表示转发到的新的地址和端口
上述命令中-i表示使用的网络接口,--dport表示端口。如果要映射多个端口,可以将端口号用逗号隔开。
3、限速
在网络中,为了防止某个服务损耗过多网络资源,可以使用限速来限制服务运行的带宽和速度。下面介绍如何进行限速:
限速:
iptables -A OUTPUT -p tcp -o eth0 --dport 80 -m limit --limit 500/s -j ACCEPT
- 参数-A:表示添加规则
- 参数OUTPUT:表示输出的链名
- -p tcp:表示协议为TCP
- -o eth0:表示限制该网卡的带宽
- --dport 80:表示端口为80
- -m limit:表示增加一个模块限制
- --limit 500/s:表示限制每秒钟处理量为500
- -j ACCEPT:表示接收操作
上述命令中,-p表示协议,可以是tcp或udp。-o表示限制该网卡的带宽,--dport表示端口。--limit表示每秒钟允许处理的流量。将ACCEPT替换为DROP,则表示拒绝超出限制的请求。