栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Linux系统配置(防火墙)

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux系统配置(防火墙)

目录

前言

一、iptables

1、策略表

(1)filter表

(2)nat表

(3)mangle表

(4)raw表

2、规则链

(1)INPUT链

(2)FORWARD链

(3)PREROUTING链

(4)POSTROUTING链

3、数据流向

(1)入站数据流向

(2)转发数据流向

(3)出站数据流向

二、配置

1、安装

2、命令参数

3、控制类型

4、常用配置

5、nat转换

结语


前言

     linux系统服务器如果作为网关服务器或网络服务器来使用时,配置规划防火墙能够很好的为服务器提供安全保障,Linux系统的RHEL7系列之前默认是通过iptables管理防火墙,现在的新版本都是默认通过firewalld管理防火墙,管理防火墙的工具有很多种,选其中一款即可

一、iptables

1、策略表

(1)filter表

     filter表用来对数据包进行过滤,根据具体的规则要求决定如何处理一个数据包,filter表对应的内核模块为iptable_filter,表内包含三个链,即INPUT、FORWARD、 OUTPUT,在使用iptables配置防火墙时如果不指定表就是默认的filter表

(2)nat表

     nat(Network Address Translation,网络地址转换)表主要用来修改数据包的IP地址、端口号等信息,nat表对应的内核模块为iptable_nat,表内包含三个链,即PREROUTING、POSTROUTING、OUTPUT

(3)mangle表

     mangle表用来修改数据包的TOS(Type Of Service,服务类型)、TTL(Time To Live,生存周期),或者为数据包设置Mark标记,以实现流量整形、策略路由等高级应用,mangle表对应的内核模块为iptable_mangle,表内包含五个链,即PREROUTING、POSTROUTING、INPUT、OUTPUT、FORWARD

(4)raw表

     raw表是自1.2.9以后版本的iptables新增的表,主要用来决定是否对数据包进行状态跟踪,raw表对应的内核模块为iptable_raw,表内包含两个链,即OUTPUT、PREROUTING

2、规则链

(1)INPUT链

     当收到访问防火墙本机地址的数据包(入站)时,应用此链中的规则,OUTPUT链:当防火墙本机向外发送数据包(出站)时,应用此链中的规则

(2)FORWARD链

     当接收到需要通过防火墙中转发送给其他地址的数据包(转发)时,应用此链中的规则

(3)PREROUTING链

     在对数据包做路由选择之前,应用此链中的规则

(4)POSTROUTING链

     在对数据包做路由选择之后,应用此链中的规则

     其中,INPUT、OUTPUT链主要用在“主机型防火墙”中,即主要针对服务器本机进行保护的防火墙;而 FORWARD、PREROUTING、POSTROUTING链多用在“网络型防火墙” 中,如使用Linux防火墙作为网关服务器,在公司内网与Internet之间进行安全控制

3、数据流向

     当数据包抵达防火墙时,将依次应用raw表、mangle表、nat表和filter表中对应链内的规则(如果存在),应用顺序为raw - mangle - nat - filter

(1)入站数据流向

     来自外界的数据包到达防火墙后,首先被PREROUTING链处理(是否修改数据包地址等),然后进行路由选择(判断该数据包应发往何处);如果数据包的目标地址是防火墙本机(如Internet用户访问网关的Web服务端口),那么内核将其传递给INPUT链进行处理(决定是否允许通过等),通过以后再交给系统上层的应用程序(如httpd服务器)进行响应

(2)转发数据流向

     来自外界的数据包到达防火墙后,首先被PREROUTING链处理,然后再进行路由选择;如果数据包的目标地址是其他外部地址(如局域网用户通过网关访问QQ服务器),则内核将其传递给FORWARD链进行处理(允许转发或拦截、丢弃),最后交给POSTROUTING链(是否修改数据包的地址等)进行处理

(3)出站数据流向

     防火墙本机向外部地址发送的数据包(如在防火墙主机中测试公网 DNS服务时),首先进行路由选择,确定了输出路径后,再经由OUTPUT链处理,最后再交给POSTROUTING链(是否修改数据包的地址等)进行处理

二、配置

1、安装

yum -y install iptables安装
systemctl start iptables运行
systemctl enable iptables设置开机自启

2、命令参数

iptables[-t 表名]管理选项[链名][匹配条件][-j 控制类型]
-A在规则链的末尾加入新规则
-I 数字在规则链的头部加入新规则
-D 数字删除某一条规则
-L查看规则链
-F清空规则链
-P设置默认策略
-s匹配源地址
-d匹配目标地址
-i 网卡名称匹配从这块网卡流入的数据
-o 网卡名称匹配从这块网卡流出的数据
-p匹配协议,如TCP、UDP、ICMP
--dport 数字匹配目标端口号
--sport 数字匹配来源端口号
-t指定表,默认的表为filter

3、控制类型

ACCEPT规则验证通过,不再检查当前链的后续规则,直接跳到下一个规则链
DROP直接丢弃数据包,不给任何回应
REJECT拒绝数据包通过,会返回响应信息
SNAT源地址转换
DNAT目标地址转换

4、常用配置

iptables -L --line-number查看带有数字编号的防火墙规则
把INPUT规则链的默认策略设置为拒绝(INPUT规则没有允许的都将被拒绝连接,如果是通过ssh连接配置的话要先将ssh加入到INPUT规则里并设置ssh连接为ACCEPT)
iptables -P INPUT DROP
允许多个目标端口通过tcp连接访问本机服务器
iptables -A INPUT -p tcp -m multiport --dport 20,21,22 -j ACCEPT
iptables -A INPUT -p tcp --dport 20:22 -j ACCEPT
设置为只允许指定网段的主机访问本机的22端口
iptables -A INPUT -p tcp -s 192.168.10.0/24 --dport 22 -j ACCEPT
设置为允许范围ip的主机访问本机的22端口(--src-range为源ip范围,--dst-range为目标ip范围)
iptables -A INPUT -p tcp -m iprange --src-range 192.168.10.1-192.168.10.10 --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -m iprange --dst-range 192.168.10.1-192.168.10.10 --dport 22 -j ACCEPT
允许某个mac地址访问22端口
iptables -A INPUT  -p tcp -m mac mac-source mac地址 --dport 22 -j ACCEPT
防止syn攻击(限制单个ip的最大syn连接数)
iptables –A INPUT –p tcp --syn -m connlimit --connlimit-above 15 -j DROP
防止ping攻击
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/m -j ACCEPT
只允许自己ping别人,不允许别人ping自己
iptables -A OUTPUT -p icmp --icmp-type 8 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT
以上配置INPUT规则链的默认策略为拒绝

5、nat转换

启用IP路由转发功能
vi /etc/sysctl.conf 然后在文件内容里添加添加 net.ipv4.ip_forward = 1
最后使用sysctl -p命令启用路由转发功能
内网用户通过一个外网口上网,内网的地址转换为一个外网的IP以此来访问外网
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j SNAT --to-source 20.20.20.20
外网地址不固定,可将外网地址转换方式换成MASQUERADE(动态伪装),它可以实现自动读取外网网卡的IP地址
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j MASQUERADE
设置允许某外网ip访问内网ip对应端口
iptables -t nat -A PREROUTING -d 20.20.20.200 -p tcp --dport 80 -j DNAT --to-destination 192.168.10.200

结语

     如果让防火墙策略永久有效,可使用iptables-save命令或service iptables save命令,使用iptables防火墙需要使用systemctl stop firewalld和systemctl disable firewalld命令关闭firewalld防火墙,也可关闭核心防护,vi /etc/selinux/config然后修改为SELINUX=disabled,再使用命令setenforce 0关闭

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/730161.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号