当前位置:首页 > 技术分享 > 正文内容

Linux的防火墙设置指南

admin1年前 (2023-12-08)技术分享1103

在上节的笔记中,大家还记得那条防火墙的设置命令么?为什么要使用防火墙呢?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 --staterunning[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 ACCEPTiptables -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 --reloadsuccess
//查看已经增加的端口命令
[root@localhost sysconfig]# firewall-cmd --zone=public --list-ports80/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"

三、其它的安全配置说明

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


扫描二维码推送至手机访问。

版权声明:本文由信安苑发布,如需转载请注明出处。

本文链接:http://www.cmznet.cn/?id=14

分享给朋友:

“Linux的防火墙设置指南” 的相关文章

用友NC的UMP服务检测、启动及配置

用友NC的UMP服务检测、启动及配置

一、查询云管理是否正常运行1、查看相关进程是否运行[root@localhost ump]# ps -ef | grep ump root      5052 &nbs...

等保3级的Windows Server服务器安全配置指南

等保3级的Windows Server服务器安全配置指南

关闭Administrator,guest账号注意:需要创建一个非明显被理解账号用途的账号,并给予Administrators组权限。本地安全策略:密码策略:密码必须符合复杂性要求(启用),密码长度(12),最长期限42天,强制密码历史1个锁定策略:6次无效登陆锁定,重置锁定计数器30分钟,锁定时间...

Linux 报错hung_task_timeout_secs disables this message处理方法

Linux 报错hung_task_timeout_secs disables this message处理方法

报错echo 0 > /proc/sys/kernel/hung_task_timeout_secs disables this message.    默认情况下, Linux会最多使用40%的可用内存作为文件系统缓存。当超过这个阈值后,文件系统会把将缓存中的内存全部...

Oracle数据库的导出expdp与导入impdp命令的使用与说明

Oracle数据库的导出expdp与导入impdp命令的使用与说明

一、注意事项:EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用。EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用。IMP只适用于EXP导出的文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出的文件,而不适用于EXP...

Linux远程连接SSH的BABY级别安全设置指南

Linux远程连接SSH的BABY级别安全设置指南

在上节,我们学习了网卡的配置,把网络配置好之后,接下来,我们就要开始配置我们的 SSH 远程连接了,毕竟我们不可能时时可以使用桌面或远程桌面的方式做运维。因此我们要学习一下,如何使用我们工具,通过 SSH 的连接方式,连接我们的服务器,对服务器进行运维。本节内容,要分两部分来讲解。本节内容是以 Ce...

Linux磁盘查看的命令lsblk/df/du不同特点及用法

Linux磁盘查看的命令lsblk/df/du不同特点及用法

一、lsblk1.功能:列出系统上的所有的磁盘列表2.命令格式lablk  [选项]  [设备文件名]3.选项-d:仅列出磁盘本身,并不会列出该磁盘的分区信息-f:同时列出该磁盘内的文件系统名称-i:使用ASCII的字符输出,不要使用使用复杂的编码(在某些环境...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。