CentOS7下配置 iptables

iptables也叫netfilter,是Linux下自带的一款免费且优秀的基于包过滤的防火墙工具,他的功能十分强大,使用也非常灵活,可以对流入、流出、流经服务器的数据包进行精细的控制。但是iptables在CentOS7的版本上已经被阉割掉了,我们需要自行安装,以下是在CentOS7下安装iptables和使用方式。

一、安装iptables

命令

systemctl status iptables

返回

-bash: systemctl: command not found

输出结果表示没有iptables的相关服务,我们需要安装

停止firewal

systemctl stop firewalld.service

禁止firewall开机启动

systemctl disable firewalld.service

关闭SELINUX

vi /etc/selinux/config
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加

保存退出

:wq!

使配置立即生效

setenforce 0

安装

yum install iptables-services

编辑防火墙配置文件

vi /etc/sysconfig/iptables
配置文件添加常用端口以后状态
# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 20 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

保存退出

:wq!

二、命令

系统命令
systemctl start iptables #启动
systemctl status iptables #查看运行状态
systemctl restart iptables.service #重启
systemctl stop iptables.service #停止
systemctl enable iptables.service #设置开机启动
systemctl disable iptables.service #禁止开机启动

常用命令
iptables -h #查询帮助
iptables -L -n #列出(filter表)所有规则
iptables -L -n –line-number #列出(filter表)所有规则,带编号
iptables -L -n -t nat #列出(nat表)所有规则
iptables -F #清除(filter表)中所有规则
iptables -F -t nat #清除(nat表)中所有规则
service iptables save #保存配置(保存配置后必须重启iptables)
systemctl restart iptables.service #重启

三、语法

filter表解析
filter表是iptables默认使用的表,负责对流入、流出本机的数据包进行过滤,该表中定义了3个链,分别是:INPUT、OUTPUT、FORWARD
INPUT:过滤进入主机的数据包
OUTPUT:处理从本机出去的数据包
FORWARD:负责转发流经本机但不进入本机的数据包,起到转发作用
3.2、iptables常用语法
-A:追加到规则的最后一条
-D:删除记录
-I:添加到规则的第一条
-p:(proto)规定通信协议,常见的协议有:tcp、udp、icmp、all
-j:(jump)指定要跳转的目标,常见的目标有:ACCEPT(接收数据包)、DROP(丢弃数据包)、REJECT(重定向)三种,但是一般不适用重定向,会带来安全隐患

常见案例

4.1、IP过滤
4.1.1、禁止192.168.1.3 IP地址的所有类型数据接入
iptables -A INPUT ! -s 192.168.1.3 -j DROP
4.2、开放端口
4.2.1、开放端口
iptables -A INPUT -p tcp –dport 80 -j ACCEPT #开放80端口
4.2.2、开放端口范围
iptables -I INPUT -p tcp –dport 22:80 -j ACCEPT #开发22-80范围的端口
4.2.3、不允许80端口流出
iptables -I OUTPUT -p tcp –dport 80 -j DROP

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Captcha Code