Iptables 也叫netfilter,是Linux下自带的一款免费且优秀的基于包过滤的防火墙工具,功能强大,灵活,可以对流入、流出,流经服务器的数据包进行精细的控制
--关闭selinux
-- vi /etc/selinux/config
--配置本地yum源
安装iptables-services
-yum install iptables-services
--常用命令
- iptables -h #查询帮助
- Iptables -L -n #列出(filter表)所有规则
- Iptables -L -n --line-number #代编号
- Iptables -F#清楚规则
- service iptables save #保留配置
--语法:
filter表是iptables默认使用的表,负责对流入,流出本机的数据包进行过滤;该表定义了3个链路
INPUT:过滤进入主机的数据包
OUTPUT: 处理从本机流出的数据包
FORWARD:负责转发流经本机但不进入不进入本机的数据包起到转发功能
-A 追加到规则的最后一条
-D 删除记录
-l 添加到规则的第一条
-P protocol规定通信协议,tcp , ip ,udp
-J (jump)指定要跳转的目标。常见的目标有:ACCEPT(接收数据包),
DROP(丢弃数据包),REJECT(重定向)
--常见用法
启动iptables
-----systemctl start iptables.service
IP过滤,禁止192.168.1.3IP地址的所有类型数据接入
--iptables -A INPUT -s 192.168.1.3 -j DROP
#添加一条规则,对于流入本机的来自192.168.1.3 数据包都扔掉
开放端口,开放80端口 http
--iptables -I INPUT -p tcp --dport 80 -j ACCEPT
#添加到第一条规则,对于所有流入80端口的tcp数据类型都接受
开放端口范围,开放22号到80号端口
--iptables -I INPUT -p tcp --dport 22:80 -j ACCEPT
不允许80端口流出
---- iptables -I OUTPUT -p tcp --dport 80 -j DROP
开放3306端口
iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
以下举例:
不允许1000到1050端口有tcp数据流出
Iptables -I OUTPUT -p tcp --dport 1000:1050 -j DROP
将来自192.168.1.3的所有数据转发到192.168.1.10
iptables -A FORWARD -s 192.168.1.3 -d 192.168.1.10 -j REJECT
开放21号端口
iptables -A INPUT -p ftp --dport 21 -j ACCEPT
删除开放3306端口的规则(-D)
iptables -D INPUT -p tcp --dport 3306 -j ACCEPT
将来自192.168.1.3的tcp转发到192.168.1.10
iptables -A FORWARD -p tcp -s 192.168.1.3 -d 192.168.1.10 -j REJEC
关闭80端口
iptables -A OUTPUT -p tcp --dport 80 -j DROP
使用规则(简介):
Iptables [-t table] COMMAND chain CRETIRIA -j ACTION
[-t table]:三个filter nat mangle -A -I
COMMAND:定义如何对规则进行管理
Chain :指定你接下来的规则是在哪个链上操作的,当定义策略的时候。是可以省略的
CRETIRIA:指定匹配标准
-j ACTION:指定如何进行处理