Linux学习笔记之防火墙设置

简介:   在上节的笔记中,大家还记得那条防火墙的设置命令么?为什么要使用防火墙呢?Linux 系统中,安全的第一道防线就是它。跟 Windows中防火墙一样,都是要设置端口的开放与关闭。那除了增加的命令之外,还有没有其它的操作呢?是如何实现的?那我们本节进行简单地讲解一下与防火墙有关的笔记内容。  防火墙的配置,在 Centos 6 以前是使用命令iptables,而到了 Centos 7以之后的版本,改成了 firewall-cmd命令,为了大家更方便的理解,我把整个过程分解成(查看状态、增加端口操作、其它安全设置)三个方面给大家讲解,让大家尽可能明白防火墙是如何去配置的。

  在上节的笔记中,大家还记得那条防火墙的设置命令么?为什么要使用防火墙呢?Linux 系统中,安全的第一道防线就是它。跟 Windows中防火墙一样,都是要设置端口的开放与关闭。那除了增加的命令之外,还有没有其它的操作呢?是如何实现的?那我们本节进行简单地讲解一下与防火墙有关的笔记内容。

  防火墙的配置,在 Centos 6 以前是使用命令iptables,而到了 Centos 7以之后的版本,改成了 firewall-cmd命令,为了大家更方便的理解,我把整个过程分解成(查看状态、增加端口操作、其它安全设置)三个方面给大家讲解,让大家尽可能明白防火墙是如何去配置的。

  1、iptables 版本命令:

  启动: service iptables start

  关闭: service iptables stop

  查看状态: service iptables status

  设置开机禁用 : chkconfig iptables off

  设置开机启用 : chkconfig iptables on

  iptables 配置文件目录/etc/sysconfig/iptables,如果不想使用命令,也可以直接使用 vim/vi 来编辑配置文件,使用 cat 命令来查看配置内容。

  实例:

  [root@localhost ~]# service iptables status //查看防火墙状态,开了就会有下面的内容

  表格:filter

  Chain INPUT (policy ACCEPT) //接入的端口信息

  num target prot opt source destination

  1 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:8089

  Chain FORWARD (policy ACCEPT) //

  num target prot opt source destination

  Chain OUTPUT (policy ACCEPT) //接出允许信息

  num target prot opt source destination

  [root@localhost ~]# service iptables status //没开防火墙的提示

  iptables:未运行防火墙。

  [root@localhost ~]# service iptables stop //关闭防火墙

  iptables:将链设置为政策 ACCEPT:filter [确定]

  iptables:清除防火墙规则: [确定]

  iptables:正在卸载模块: [确定]

  [root@localhost ~]# service iptables start //开启防火墙

  iptables:应用防火墙规则: [确定]

  [root@localhost ~]#

  2firewall-cmd 版本命令

  这里要对 systemctl 这个命令注释一下:

  systemctl 命令结合了 service 与 chkconfig 两个命令的功能,是 Centos 7版本后用来对卖二手游戏账号“服务”进行管理的一个命令。而 service 与 chkconfig 两个命令之后版本都没再出现过。

  启动服务:systemctl start firewalld

  关闭服务:systemctl stop firewalld

  重启服务:systemctl restart firewalld

  显示服务的状态:systemctl status firewalld

  开机时启用服务:systemctl enable firewalld

  开机时禁用服务:systemctl disable firewalld

  实例:

  [root@localhost ~]# systemctl status firewalld //已开启防火墙状态

  ● firewalld.service - firewalld - dynamic firewall daemon

  Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)

  Active: active (running) since 三 2021-10-13 22:43:01 CST; 3 weeks 6 days ago

  Docs: man:firewalld(1)

  Main PID: 840 (firewalld)

  //或者使用以下命令也可以查看

  [root@localhost ~]# firewall-cmd --state

  running

  [root@localhost ~]# systemctl state firewalld //未开启防火墙的提示

  Unknown operation 'state'.

  [root@localhost ~]# systemctl status firewalld

  ● firewalld.service - firewalld - dynamic firewall daemon

  Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)

  Active: inactive (dead) since 三 2021-11-10 17:50:09 CST; 17s ago

  Docs: man:firewalld(1)

  Process: 840 ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS (code=exited, status=0/SUCCESS)

  Main PID: 840 (code=exited, status=0/SUCCESS)

  [root@localhost ~]# firewall-cmd --state //另外一种提示命令

  not running

  防火墙的端口开放与关闭,是运维工作当中常用的操作,安全配置上也有相关的要求。因此我们要比较熟悉的学习到这一块的内容。当连接数据库或远程登陆等与网络相关的故障,我们都要第一时间想到防火墙的配置问题,可以让我们走少很多的弯路。

  iptables命令增加端口的实际应用

  #允许本地回环接口(即运行本机访问本机)

  iptables -A INPUT -i lo -j ACCEPT //就是把LO本地连接加入防火墙

  # 允许已建立的或相关连的通行

  iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

  #允许所有本机向外的访问

  iptables -P INPUT ACCEPT

  iptables -A OUTPUT -j ACCEPT

  # 允许访问22端口 //这个则是SSH远程的默认端口,建议更换高位数

  iptables -A INPUT -p tcp --dport 22 -j ACCEPT

  iptables -A INPUT -p tcp -s 10.159.1.0/24 --dport 22 -j ACCEPT

  注:-s后可以跟IP段或指定IP地址 //不同的参数可以增加不同的内容

  #允许访问80端口 //WEB服务器一定要设置的

  iptables -A INPUT -p tcp --dport 80 -j ACCEPT

  #允许FTP服务的21和20端口 //FTP服务器也是一样开这些

  iptables -A INPUT -p tcp --dport 21 -j ACCEPT

  iptables -A INPUT -p tcp --dport 20 -j ACCEPT

  #如果有其他端口的话,规则也类似,稍微修改上述语句就行

  #允许ping

  iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

  #禁止其他未允许的规则访问 //这个是安全的设置,一般要做

  iptables -A INPUT -j REJECT #(注意:如果22端口未加入允许规则,SSH链接会直接断开。)

  iptables -A FORWARD -j REJECT

  另外iptables还有一些高级不常用的命令集,大家也可以拿来参考一下!有时间也练习一下。有时能救命。

  #屏蔽单个IP的命令

  iptables -I INPUT -s 123.45.6.7 -j DROP

  #封整个段即从172.16.10.1到172.16.10.254的命令

  iptables -I INPUT -s 172.16.10.0/24 -j DROP

  #查看已有的规则//就是防火墙已经开放或关闭的内容

  iptables -L -n //-n 只显示IP与端口,不显示域名

  #如果上面的结果要加上序号显示

  iptables -L -n --line-numbers

  #然后可以直接删除序号的那条规则

  iptables -D INPUT 8//数字就是序号

  操作完成,记得一定要重启防火墙服务才会生效。

  firewall-cmd命令

  //命令--permanent参数表示永远生效,没加就是重启服务器前生效。

  [selly@localhost ~]$ firewall-cmd --zone=public --add-port=80/tcp --permanent

  success

  //重启防火墙服务

  [root@localhost sysconfig]# firewall-cmd --reload

  success

  //查看已经增加的端口命令

  [root@localhost sysconfig]# firewall-cmd --zone=public --list-ports

  80/tcp

  //删除端口开放命令

  [root@localhost sysconfig]#firewall-cmd --zone=public --remove-port=80/tcp --permanent

  //这条命令,大家还是保存来用吧,太长了,是给同一个IP地址增加多个端口的命令

  [root@localhost sysconfig]#firewall-cmd --permanent --add-rich-rule="rule family="ipv4"

  source address="10.159.60.29" port protocol="tcp" port="1:65535" accept"

  三、其它的安全配置说明

  防火墙的配置,可以说是服务器安全运维的最重要的一环。如果大家不去注意这个配置与熟悉应用,特别是应用服务器与数据库服务器不同一台机器的时候,很容易导致无法正常连接数据库或应用。希望大家多花点时间这里。

目录
相关文章
|
7月前
|
Ubuntu Linux 网络安全
在Linux云服务器上限制特定IP进行SSH远程连接的设置
温馨提示,修改iptables规则时要格外小心,否则可能导致无法远程访问你的服务器。最好在掌握足够技术知识和理解清楚操作含义之后再进行。另外,在已经配置了防火墙的情况下,例如ufw(Ubuntu Firewall)或firewalld,需要按照相应的防火墙的规则来设置。
393 24
|
7月前
|
Java 关系型数据库 MySQL
在Linux操作系统上设置JDK、Tomcat、MySQL以及J2EE后端接口的部署步骤
让我们总结一下,给你的Linux操作系统装备上最强的军队,需要先后装备好JDK的弓箭,布置好Tomcat的阵地,再把MySQL的物资原料准备好,最后部署好J2EE攻城车,那就准备好进军吧,你的Linux军团,无人可挡!
167 18
|
8月前
|
Linux Shell
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
698 25
|
10月前
|
网络协议 网络安全
华为openEuler欧拉系统的防火墙常用设置方法
在有防火墙的系统中,比如我们部署了一个WEB项目,我们需要给该WEB项目所需的端口放行。本文介绍了防火墙常用设置方法。
1723 81
|
9月前
|
Ubuntu Linux 网络安全
防火墙设置
本文介绍了Ubuntu和CentOS系统中防火墙的基本设置方法。对于Ubuntu,重点讲解了UFW(Uncomplicated Firewall)的使用,包括查看状态、开启/关闭防火墙、管理端口和IP地址以及服务配置。而对于CentOS,主要涉及firewalld的常用操作,如查看状态、启动/关闭防火墙、设置开机启动、管理端口和IP地址,以及服务允许等具体命令示例。内容简洁实用,适合系统管理员快速上手。
826 10
|
12月前
|
监控 安全 Linux
启用Linux防火墙日志记录和分析功能
为iptables启用日志记录对于监控进出流量至关重要
411 1
|
网络协议 Ubuntu 网络安全
|
监控 Oracle 关系型数据库
Linux平台Oracle开机自启动设置
【11月更文挑战第8天】在 Linux 平台设置 Oracle 开机自启动有多种方法,本文以 CentOS 为例,介绍了两种常见方法:使用 `rc.local` 文件(较简单但不推荐用于生产环境)和使用 `systemd` 服务(推荐)。具体步骤包括编写启动脚本、赋予执行权限、配置 `rc.local` 或创建 `systemd` 服务单元文件,并设置开机自启动。通过 `systemd` 方式可以更好地与系统启动过程集成,更规范和可靠。
831 2
|
Oracle Ubuntu 关系型数据库
Linux平台Oracle开机自启动设置
【11月更文挑战第7天】本文介绍了 Linux 系统中服务管理机制,并详细说明了如何在使用 systemd 和 System V 的系统上设置 Oracle 数据库的开机自启动。包括创建服务单元文件、编辑启动脚本、设置开机自启动和启动服务的具体步骤。最后建议重启系统验证设置是否成功。
427 1
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
736 3

热门文章

最新文章