iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >linux配置防火墙的详细步骤
  • 529
分享到

linux配置防火墙的详细步骤

2023-06-13 03:06:33 529人浏览 独家记忆
摘要

本篇内容介绍了“linux配置防火墙的详细步骤”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!通过iptables我们可以为我们的Linux服

本篇内容介绍了“linux配置防火墙的详细步骤”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!


通过iptables我们可以为我们的Linux服务器配置有动态的防火墙,能够指定并记住为发送或接收信息包所建立的连接的状态,是一套用来设置、维护和检查Linux内核的IP包过滤规则的命令包。iptables定义规则的方式比较复杂,本文对Linux防火墙Iptables规则写法进行详细介绍:
linux配置防火墙的详细步骤


⑴、Iptables规则写法的基本格式是:
  
  Iptables [-ttable] COMMAND chain CRETIRIA -j ACTioN
  
⑵、Iptables规则相关参数说明:
  
  -t table:3个filter nat mangle
  
  :定义如何对规则进行管理
  
  chain:指定你接下来的规则到底是在哪个链上操作的,当定义策略的时候,是可以省略的;
  
  CRETIRIA:指定匹配标准;
  
  -j ACTION:指定如何进行处理;
  
⑶、Iptables规则其他写法及说明:
  
  Iptables -L -n -v #查看定义规则的详细信息
  
  Iptables是Linux服务器上防火墙配置必备的设置工具,是我们在做好服务器安全及部署大型网络时,常会用到的重要工具,很好的掌握iptables,可以让我们对Linux服务器整个网络的结构有一个比较透彻的了解,更能够很好的掌握Linux服务器的安全配置技巧。

我们来配置一个filter表的防火墙.

(1)查看本机关于IPTABLES的设置情况

代码如下:


[root@tp ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination</p><p>Chain FORWARD (policy ACCEPT)
target     prot opt source       destination</p><p>Chain OUTPUT (policy ACCEPT)
target     prot opt source       destination</p><p>Chain RH-Firewall-1-INPUT (0 references)
target     prot opt source       destination
ACCEPT     all  --  0.0.0.0/0    0.0.0.0/0  
ACCEPT     icmp --  0.0.0.0/0    0.0.0.0/0   icmp type 255
ACCEPT     esp  --  0.0.0.0/0    0.0.0.0/0
ACCEPTah--0.0.0.0/00.0.0.0/0
ACCEPTudp--0.0.0.0/0224.0.0.251udpdpt:5353
ACCEPTudp--0.0.0.0/00.0.0.0/0udpdpt:631
ACCEPTall--0.0.0.0/00.0.0.0/0stateRELATED,ESTABLISHED
ACCEPTtcp--0.0.0.0/00.0.0.0/0stateNEWtcpdpt:22
ACCEPTtcp--0.0.0.0/00.0.0.0/0stateNEWtcpdpt:80
ACCEPTtcp--0.0.0.0/00.0.0.0/0stateNEWtcpdpt:25
REJECTall--0.0.0.0/00.0.0.0/0reject-withicmp-host-prohibited

可以看出我在安装linux时,选择了有防火墙,并且开放了22,80,25端口.
如果你在安装linux时没有选择启动防火墙,是这样的

代码如下:


[root@tp ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination        </p><p>Chain FORWARD (policy ACCEPT)
target     prot opt source               destination        </p><p>Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination  

什么规则都没有.

(2)清除原有规则.

不管你在安装linux时是否启动了防火墙,如果你想配置属于自己的防火墙,那就清除现在filter的所有规则.

代码如下:


[root@tp ~]# iptables -F      清除预设表filter中的所有规则链的规则
[root@tp ~]# iptables -X      清除预设表filter中使用者自定链中的规则

我们在来看一下

代码如下:


[root@tp ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination        </p><p>Chain FORWARD (policy ACCEPT)
target     prot opt source               destination        </p><p>Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination    

什么都没有了吧,和我们在安装linux时没有启动防火墙是一样的.(提前说一句,这些配置就像用命令配置IP一样,重起就会失去作用),怎么保存.

代码如下:


[root@tp ~]# /etc/rc.d/init.d/iptables save

这样就可以写到/etc/sysconfig/iptables文件里了.写入后记得把防火墙重起一下,才能起作用.

代码如下:


[root@tp ~]# service iptables restart


 
现在IPTABLES配置表里什么配置都没有了,那我们开始我们的配置吧
(3)设定预设规则

代码如下:


[root@tp ~]# iptables -P INPUT DROP
[root@tp ~]# iptables -P OUTPUT ACCEPT
[root@tp ~]# iptables -P FORWARD DROP

上面的意思是,当超出了IPTABLES里filter表里的两个链规则(INPUT,FORWARD)时,不在这两个规则里的数据包怎么处理呢,那就是DROP(放弃).应该说这样配置是很安全的.我们要控制流入数据包

而对于OUTPUT链,也就是流出的包我们不用做太多限制,而是采取ACCEPT,也就是说,不在着个规则里的包怎么办呢,那就是通过.

可以看出INPUT,FORWARD两个链采用的是允许什么包通过,而OUTPUT链采用的是不允许什么包通过.

这样设置还是挺合理的,当然你也可以三个链都DROP,但这样做我认为是没有必要的,而且要写的规则就会增加.但如果你只想要有限的几个规则是,如只做WEB服务器.还是推荐三个链都是DROP.

注:如果你是远程ssh登陆的话,当你输入第一个命令回车的时候就应该掉了.因为你没有设置任何规则.

怎么办,去本机操作呗!

(4)添加规则.

首先添加INPUT链,INPUT链的默认规则是DROP,所以我们就写需要ACCETP(通过)的链

为了能采用远程SSH登陆,我们要开启22端口.

代码如下:


[root@tp ~]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
[root@tp ~]# iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

 (注:这个规则,如果你把OUTPUT 设置成DROP的就要写上这一部,好多人都是望了写这一部规则导致,始终无法SSH.在远程一下,是不是好了.

其他的端口也一样,如果开启了web服务器,OUTPUT设置成DROP的话,同样也要添加一条链:

代码如下:


[root@tp ~]# iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT

 ,其他同理.

如果做了WEB服务器,开启80端口.

代码如下:


[root@tp ~]# iptables -A INPUT -p tcp --dport 80 -j ACCEPT

如果做了邮件服务器,开启25,110端口.

代码如下:


[root@tp ~]# iptables -A INPUT -p tcp --dport 110 -j ACCEPT
[root@tp ~]# iptables -A INPUT -p tcp --dport 25 -j ACCEPT

如果做了FTP服务器,开启21端口

代码如下:


[root@tp ~]# iptables -A INPUT -p tcp --dport 21 -j ACCEPT
[root@tp ~]# iptables -A INPUT -p tcp --dport 21 -j ACCEPT

如果做了DNS服务器,开启53端口

代码如下:


[root@tp ~]# iptables -A INPUT -p tcp --dport 53 -j ACCEPT

如果你还做了其他的服务器,需要开启哪个端口,照写就行了.

上面主要写的都是INPUT链,凡是不在上面的规则里的,都DROP

允许icmp包通过,也就是允许ping,

代码如下:


[root@tp ~]# iptables -A OUTPUT -p icmp -j ACCEPT (OUTPUT设置成DROP的话)
[root@tp ~]# iptables -A INPUT -p icmp -j ACCEPT  (INPUT设置成DROP的话)

允许loopback!(不然会导致DNS无法正常关闭等问题)

代码如下:


IPTABLES -A INPUT -i lo -p all -j ACCEPT (如果是INPUT DROP)
IPTABLES -A OUTPUT -o lo -p all -j ACCEPT(如果是OUTPUT DROP)

下面写OUTPUT链,OUTPUT链默认规则是ACCEPT,所以我们就写需要DROP(放弃)的链.

减少不安全的端口连接

代码如下:


[root@tp ~]# iptables -A OUTPUT -p tcp --sport 31337 -j DROP
[root@tp ~]# iptables -A OUTPUT -p tcp --dport 31337 -j DROP


有些些特洛伊木马会扫描端口31337到31340(即黑客语言中的 elite 端口)上的服务。既然合法服务都不使用这些非标准端口来通信,阻塞这些端口能够有效地减少你的网络上可能被感染的机器和它们的远程主服务器进行独立通信的机会

还有其他端口也一样,像:31335、27444、27665、20034 NetBus、9704、137-139(smb),2049(NFS)端口也应被禁止,我在这写的也不全,有兴趣的朋友应该去查一下相关资料.


当然出入更安全的考虑你也可以包OUTPUT链设置成DROP,那你添加的规则就多一些,就像上边添加

允许SSH登陆一样.照着写就行了.

下面写一下更加细致的规则,就是限制到某台机器

如:我们只允许192.168.0.3的机器进行SSH连接

代码如下:


[root@tp ~]# iptables -A INPUT -s 192.168.0.3 -p tcp --dport 22 -j ACCEPT

如果要允许,或限制一段IP地址可用 192.168.0.0/24 表示192.168.0.1-255端的所有IP.

24表示子网掩码数.但要记得把 /etc/sysconfig/iptables 里的这一行删了.

-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT 因为它表示所有地址都可以登陆.

或采用命令方式:

代码如下:


[root@tp ~]# iptables -D INPUT -p tcp --dport 22 -j ACCEPT

然后保存,我再说一边,反是采用命令的方式,只在当时生效,如果想要重起后也起作用,那就要保存.写入到/etc/sysconfig/iptables文件里.

代码如下:


[root@tp ~]# /etc/rc.d/init.d/iptables save

这样写 !192.168.0.3 表示除了192.168.0.3的ip地址

其他的规则连接也一样这么设置.

在下面就是FORWARD链,FORWARD链的默认规则是DROP,所以我们就写需要ACCETP(通过)的链,对正在转发链的监控.

开启转发功能,(在做NAT时,FORWARD默认规则是DROP时,必须做)

代码如下:


[root@tp ~]# iptables -A FORWARD -i eth0 -o eth2 -m state --state RELATED,ESTABLISHED -j ACCEPT
[root@tp ~]# iptables -A FORWARD -i eth2 -o eh0 -j ACCEPT


丢弃坏的TCP包

代码如下:


[root@tp ~]#iptables -A FORWARD -p TCP ! --syn -m state --state NEW -j DROP

处理IP碎片数量,防止攻击,允许每秒100个

代码如下:


[root@tp ~]#iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT

设置ICMP包过滤,允许每秒1个包,限制触发条件是10个包.

代码如下:


[root@tp ~]#iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT


我在前面只所以允许ICMP包通过,就是因为我在这里有限制.

二,配置一个NAT表放火墙

1,查看本机关于NAT的设置情况

代码如下:


[root@tp rc.d]# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination      
Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination      
SNAT       all  --  192.168.0.0/24       anywhere            to:211.101.46.235
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

我的NAT已经配置好了的(只是提供最简单的代理上网功能,还没有添加防火墙规则).关于怎么配置NAT,参考我的另一篇文章

当然你如果还没有配置NAT的话,你也不用清除规则,因为NAT在默认情况下是什么都没有的

如果你想清除,命令是

代码如下:


[root@tp ~]# iptables -F -t nat
[root@tp ~]# iptables -X -t nat
[root@tp ~]# iptables -Z -t nat

2,添加规则

添加基本的NAT地址转换,(关于如何配置NAT可以看我的另一篇文章),

添加规则,我们只添加DROP链.因为默认链全是ACCEPT.

防止外网用内网IP欺骗

代码如下:


[root@tp sysconfig]# iptables -t nat -A PREROUTING -i eth0 -s 10.0.0.0/8 -j DROP
[root@tp sysconfig]# iptables -t nat -A PREROUTING -i eth0 -s 172.16.0.0/12 -j DROP
[root@tp sysconfig]# iptables -t nat -A PREROUTING -i eth0 -s 192.168.0.0/16 -j DROP

如果我们想,比如阻止MSN,QQ,BT等的话,需要找到它们所用的端口或者IP,(个人认为没有太大必要)

例:

禁止与211.101.46.253的所有连接

代码如下:


[root@tp ~]# iptables -t nat -A PREROUTING  -d 211.101.46.253 -j DROP


禁用FTP(21)端口

代码如下:


[root@tp ~]# iptables -t nat -A PREROUTING -p tcp --dport 21 -j DROP


这样写范围太大了,我们可以更精确的定义.

代码如下:


[root@tp ~]# iptables -t nat -A PREROUTING  -p tcp --dport 21 -d 211.101.46.253 -j DROP


这样只禁用211.101.46.253地址的FTP连接,其他连接还可以.如web(80端口)连接.

按照我写的,你只要找到QQ,MSN等其他软件的IP地址,和端口,以及基于什么协议,只要照着写就行了.

最后:

drop非法连接

代码如下:


[root@tp ~]# iptables -A INPUT   -m state --state INVALID -j DROP
[root@tp ~]# iptables -A OUTPUT  -m state --state INVALID -j DROP
[root@tp ~]# iptables-A FORWARD -m state --state INVALID -j DROP

允许所有已经建立的和相关的连接

代码如下:


[root@tp ~]# iptables-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
[root@tp ~]# iptables-A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
[root@tp ~]# /etc/rc.d/init.d/iptables save


这样就可以写到/etc/sysconfig/iptables文件里了.写入后记得把防火墙重起一下,才能起作用.

代码如下:


[root@tp ~]# service iptables restart


别忘了保存,不行就写一部保存一次.你可以一边保存,一边做实验,看看是否达到你的要求,

上面的所有规则我都试过,没有问题

“linux配置防火墙的详细步骤”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: linux配置防火墙的详细步骤

本文链接: https://www.lsjlt.com/news/264868.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • linux配置防火墙的详细步骤
    本篇内容介绍了“linux配置防火墙的详细步骤”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!通过iptables我们可以为我们的Linux服...
    99+
    2023-06-13
  • linux设置iptables防火墙的详细步骤
    本篇内容介绍了“linux设置iptables防火墙的详细步骤”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!首先简单介绍一下什么是IPTab...
    99+
    2023-06-10
  • linux防火墙配置(基于yum仓的配置)详细步骤
    前言 此实验准备两台虚拟机便于调试,一台CentOs6,一台红帽6 1.首先确保yum仓的配置是否完好(CentOs6)  2.要求在centOs6中安装httpd和mo...
    99+
    2024-04-02
  • Centos7 防火墙配置详解(非常详细!)
    Centos7 防火墙配置详解(非常详细) 一. zone的概念1.1 预定义的zone1.2 将interface和source划分到某个zone1.3 zone配置文件 二. Service的概念2.1 service配置文...
    99+
    2023-08-19
    服务器 网络安全 centos
  • 防火墙配置【最详细的实验演示】
    目录 拓扑及拓扑分析 进入防火墙前准备工作         1.配置其他区域ip         2.如何进入防火墙 防火墙的安全域         1.防火墙的5个安全域         2.如何自定义安全域         3.接口加入...
    99+
    2023-09-01
    服务器 servlet 安全 网络 linux
  • linux防火墙iptables的详细教程
    本篇内容主要讲解“linux防火墙iptables的详细教程”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux防火墙iptables的详细教程”吧!1 框架图 -->PREROUTI...
    99+
    2023-06-10
  • 【防火墙】防火墙NAT Server的配置
    Web举例:公网用户通过NAT Server访问内部服务器 介绍公网用户通过NAT Server访问内部服务器的配置举例。 组网需求 某公司在网络边界处部署了FW作为安全网关。为了使私网Web服务器和FTP服务器能够对外提供服务,需要在F...
    99+
    2023-10-12
    网络
  • centos防火墙设置的步骤是什么
    在CentOS系统上设置防火墙有以下几个步骤: 安装防火墙软件:在CentOS系统上默认使用的防火墙软件是firewalld,可以...
    99+
    2024-04-09
    centos
  • Linux 防火墙配置(iptables和firewalld)
    目录 防火墙基本概念 Iptables讲解 Iptables表 Iptables规则链 Iptables控制类型 Iptables命令配置 firewalld讲解 Firewalld区域概念 Firewalld两种配置方法 firewall...
    99+
    2023-08-31
    linux 运维 服务器
  • linux防火墙设置
    在Linux系统中,可以使用iptables命令来设置防火墙规则。以下是一些常见的防火墙设置示例:1. 允许所有的流量通过:```s...
    99+
    2023-09-15
    LINUX
  • H3C防火墙配置
    <H3C>sys[H3C]int g1/0/1[H3C-GigabitEthernet1/0/1]ipadd 123.232.115.11 24[H3C-GigabitEthernet1/0/1]qu[H3C]int g1/0/...
    99+
    2023-01-31
    防火墙 H3C
  • linux apf 防火墙安装与配置
    APF(Advanced Policy Firewall)是 Rf-x Networks 出品的Linux环境下的软件防火墙,被大部分Linux服务器管理员所采用,使用iptables的规则,易于理解及使用。适合对iptables不是很熟悉...
    99+
    2023-06-05
  • 防火墙(firewall)详细介绍
    一、什么是防火墙 防火墙是由软件和硬件组成的系统,它处在安全的网络和不安全的网络之间(比如内网和外网之间),根据由系统管理员设置的规则,对数据流进行过滤。(你的个人电脑上的防火墙就是这样工作的,根据特定的规则过滤流量,可以自己查看)。 ...
    99+
    2023-10-21
    信息与通信 网络安全 web安全 安全架构
  • 如何用linux配置防火墙iptables
    如何用linux配置防火墙iptables,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。iptables一个详细实例代码如下:/etc/init.d/iptables star...
    99+
    2023-06-13
  • 如何在Linux中配置防火墙
    在Linux中配置防火墙可以使用iptables命令或者使用防火墙管理工具,如ufw或firewalld。1. 使用iptables...
    99+
    2023-08-23
    Linux
  • win7关闭防火墙的步骤教程
    我们都知道win7系统里面有自带防火墙,但是很多人也为了自己的电脑安全考虑,都会为自己的电脑再装上杀毒软件,可是最近不少用户发现电脑老是会自动弹窗提示系统程序有危险,是否要允许或禁止,今天来教大家win7关闭防火墙的步骤,大家一起来看看吧。...
    99+
    2023-07-16
  • H3C简单的防火墙配置
    这里写目录标题 实验拓扑实验需求配置过程1.配置ip地址(略)2.配置去往公网的默认路由3.将端口绑定在信任域和不信任域4.配置ipv4安全模板5.配置ospf将内网的连通性完成6.配置nat (easy ip的方式)使内网PC可以...
    99+
    2023-08-18
    网络 服务器 运维
  • 配置bond4详细步骤
     简介 bond是多块物理网卡虚拟为一块网卡,使多块网卡看起来像一块网卡。linux系统下配置bond,通过网卡绑定可增加服务器可靠性,同时可增加网络带宽,提供稳定的网络服务。 环境信息 CentOS Linux release 7.9.2...
    99+
    2023-09-10
    linux 服务器 运维
  • 防火墙在RAC上的配置
    RAC两台服务器的/etc/hosts都是如下 127.0.0.1             localhost local...
    99+
    2024-04-02
  • CentOS Linux防火墙配置及关闭方式
    这篇文章主要介绍“CentOS Linux防火墙配置及关闭方式”,在日常操作中,相信很多人在CentOS Linux防火墙配置及关闭方式问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”CentOS Linux防...
    99+
    2023-06-10
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作