linux防火墙之Firewalls & iptables

Linux中有两种防火墙软件,ConterOS7.0以上使用的是firewall,ConterOS7.0以下使用的是iptables。

Firewalls

**Tips:*systemctl是CentOS7*的服务管理工具中主要的工具,融合之前service和chkconfig的功能于一体。

System V init 命令(RHEL 6) systemctl 命令(RHEL 7) 作用
service xxxx start systemctl start xxxx.service 启动服务
service xxxx stop systemctl stop xxxx.service 停止服务
service xxxx restart systemctl restart xxxx.service 重启服务
service xxxx reload systemctl reload xxxx.service 重新加载配置文件(不终止服务)
service xxxx status systemctl status xxxx.service 查看服务状态
chkconfig xxxx on systemctl enable xxxx.service 开机自启
chkconfig xxxx off systemctl disable xxxx.service 禁止开机自启
chkconfig xxxx systemctl is-enabled xxxx.service 查看特定服务是否为开机自启
chkconfig –list systemctl list-unit-files –type=service 查看各个级别下服务的启动与禁用情况

Tips: reload (重新加载),reload会重新加载配置文件,服务不会中断。而且reload时会测试conf语法等,如果出错会rollback用上一次正确配置文件保持正常运行。也叫平滑重启,不会对已经连接的服务造成影响。
restart (重启)(先stop后start),会重启服务。这个重启会造成服务一瞬间的中断,restart自然也就reload了。

Firewalls

firewall-cmd 是 firewalld的字符界面管理工具,firewalld是centos7的一大特性,最大的好处有两个:支持动态更新,不用重启服务;第二个就是加入了防火墙的“zone”概念。

相关常用命令

1
2
3
4
5
6
7
8
9
systemctl start  firewalld # 启动
systemctl stop firewalld # 关闭
systemctl status firewalld # 或者 firewall-cmd --state 查看状态
systemctl restart firewalld # 重启
firewall-cmd --reload # 重新加载配置文件
firewall-cmd --help #获取帮助
systemctl enable firewalld.service # 开机自启
systemctl disable firewalld.service # 禁用开机自启
systemctl is-enabled firewalld # 查看服务是否开机启动

1、开放端口

(1)如我们需要开启XShell连接时需要使用的22端口

临时增加 (reload之后消失):不需要reload

1
firewall-cmd --zone=public --add-port=22/tcp

永久增加reload后生效

1
firewall-cmd --zone=public --add-port=22/tcp --permanent

其中–permanent的作用是使设置永久生效,不加的话机器重启之后失效

(2)重新载入一下防火墙设置,使设置生效

1
firewall-cmd --reload

(3)可通过如下命令查看是否生效

1
firewall-cmd --zone=public --query-port=22/tcp

image-20211113230828367

(4)如下命令可查看当前系统打开的所有端口

1
firewall-cmd --zone=public --list-ports

image-20211113230901879

2、限制端口

(1)比如我们现在需要关掉刚刚打开的22端口

1
firewall-cmd --zone=public --remove-port=22/tcp --permanent

(2)重新载入一下防火墙设置,使设置生效

1
firewall-cmd --reload

(3)再去查看系统所有开放的端口,已经看到没有22端口了

1
firewall-cmd --zone=public --list-ports

3、批量开放或限制端口

(1)批量开放端口,如从100到500这之间的端口我们全部要打开

1
firewall-cmd --zone=public --add-port=100-500/tcp --permanent

4、服务相关

获取所有支持的服务:

1
firewall-cmd --get-services

image-20211113233042121

增加服务: (临时增加)

1
firewall-cmd --add-service=http

删除服务: (临时删除)

1
firewall-cmd --remove-service=http

查询服务 :

1
firewall-cmd --query-service=http

iptables

iptables 的最大优点是它可以配置有状态的防火墙,有四种有效状态,名称分别为 ESTABLISHED 、 INVALID 、 NEW 和 RELATED。

相关常用命令

1
2
3
4
5
6
7
8
service iptables start           //启动iptables
service iptables stop //关闭iptables
service iptables restart //重启iptables
service iptables status //查看iptables状态
cat /etc/sysconfig/iptables //查看iptables规则
vi /etc/sysconfig/iptables //修改iptables的规则
service iptables save //保存命令行中设置的iptables规则到iptables文件中
iptables -V (注意:V是大写字母V) //查看iptables版本

iptables简直是地狱中的地狱,我还是会开关就好了,告辞。

以上内容均来自百度各大佬文章进行总结归纳,也就图个自己查看方便,勿喷。

富婆 饿饿 饭饭
0%