RHEL7/CENTOS7 新特性(服务控制和防火墙)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RHEL7/CENTOS7 新特性(服务控制和防火墙)相关的知识,希望对你有一定的参考价值。
一 服务控制
1 简介 RHEL7 监视和控制 systemd 的主要命令是 systemctl,该命令可以 用于查 看系统状态和管理系统及服务。
RHEL7 的服务 systemctl 脚本存放在: /usr/lib/systemd/,有系统 ( system)
和用户( user)之分,像需要开机不登陆就能运行的程序, 存在系统服务 里,即:/usr/lib/systemd/system 目录下。 每一个服务以.service 结尾 ,一般会分为 3部分:[Unit]、[Service]和 [Install]
(1)[Unit]部分主要是对这个服务的说明。
(2)[Service]部分是服务的关键,是服务的一些具体运行参数的设置。
(3)[Install]部分是服务安装的相关设置,可设置为多用户的。
2定义 RHEL7 系统中 systemctl 是管制服务主要工具,它整合了 chkconfig 与 service 功能于一体。
systemctl 命令的基本操作格式是:systemctl 动作服务名.service
(1)分析系统状态:
① systemctl 或 systemctl list-units #输出激活的单元
② systemctl list-units --type=service#列出 active 状态的服务
③ systemctl list-unit-files 列出所有已安装服务
④ systemctl --failed #显示启动失败的服务
(2)使用 systemctl 控制单元
systemctl start <单元> #立即启动单元
systemctl stop <单元> #立即停止单元
systemctl restart <单元> #重启单元
systemctl mask <单元> #禁用单元
systemctl unmask <单元> #解禁单元
systemctl reload <单元> #重新读取单元配置
systemctl status <单元> #输出单元运行状态
systemctl is-enabled <单元> #检查单元是否配置为自动启动
systemctl enable <单元> #开机自动启动单元
systemctl disable <单元> #取消开机自动激活单元
systemctl is-active<单元> #查看单元是不是正在运行
systemctl daemon-reload #重新载入 systemd,扫描新的或有变动的单元
二 防火墙
1 定义: RHEL7 中有几种防火墙共存: firewalld、 iptables、 ebtables 等,默认使用 现在都使用firewalld 作为防火墙,管理工具是 :firewall-cmd。
2 管理工具: (1)system-config-firewall 防火墙模型是静态的,每次修改都要求防火墙完全重启。
(2) firewall-cmd 动态管理防火墙,不需要重启整个防火墙便可更改。
3 others (1)区域 :网络区域定义了网络连接的可信等级,一张网卡同时只能绑定一个zone。
(2)预定义的服务: 服务是端口和/或协议入口的组合。
端口和协议: 定义了 tcp 或 udp 端口,端口可以是一个端口或者端口范围。
4 一般应用
(1) 获取 firewalld 状态
(2)在不改变状态的条件下重新加载防火墙
(3)获取支持的区域列表
(4) 获取所有支持的服务
(5) 获取所有支持的 ICMP 类型 : firewall-cmd --get-icmptypes
(6) 查询当前防火墙策略 : firewall-cmd --list-all-zones
(7) 查看默认区域 : firewall-cmd --get-default-zone [默认:public]
(8) 设置默认区域 : firewall-cmd --set-default-zone=区域名 [也可在/etc/firewalld/firewalld.conf中定 义 ]
(9) 获取活动的区域 : firewall-cmd --get-active-zones
(10) 查看接口属于区域 :firewall-cmd --get-zone-of-interface=[接口名]
(11) 将接口(网卡) 增加到区域 :firewall-cmd [--zone=] --add-interface=接口名 [一个接口只能对应一个zone]
(12) 修改接口所属区域 : firewall-cmd [--zone=] --change-interface=接口名
(13) 从区域中删除一个接口: firewall-cmd [--zone=] --remove-interface=接口名
(14) 查询区域中是否包含某接口:firewall-cmd [--zone=] --query-interface=接口名
(15) 列举区域中启用的服务:firewall-cmd [ --zone= ] --list-services
(16) 启用应急模式:firewall-cmd --panic-on
(17) 禁用应急模式:firewall-cmd --panic-off
5 处理运行时区域
(1)给某个区域开启某个服务
firewall-cmd [--zone=区域] --add-service=服务 [--timeout=秒数]
(2)禁用区域中的某种服务即关闭某个服务
firewall-cmd [--zone=区域] --remove-service=服务
(3)查询区域中是否启用了特定服务
firewall-cmd [--zone=区域] --query-service=服务
(4)启用区域端口和协议组合
firewall-cmd [--zone=区域] --add-port=portid/protocol [--timeout=seconds]
(5)禁用端口和协议组合
firewall-cmd [--zone=区域] --remove-port=portid]/protocol
(6)查询区域中是否启用了端口和协议组合
firewall-cmd [--zone=区域] --query-port=portid/protocol
(7)启用区域中的 IP 伪装功能
firewall-cmd [--zone=区域] --add-masquerade [禁用:remove 查询:query]
(8)启用区域的 ICMP 阻塞功能
firewall-cmd [--zone=区域] --add-icmp-block=[ icmp 类型 ] [禁用:remove 查 询:query]
(9) 在区域中启用端口转发或映射 :
firewall-cmd [--zone=区域] --add-forward-port=port=[假 portid]:proto=[protocol]:toport=[原portid] :toaddress=[address /mask] 【禁用:remove 查询:query】
6 处理永久区域: 需reload
(1)获取永久选项所支持的服务
firewall-cmd --permanent --get-services
(2)获取永久选项所支持的 ICMP 类型列表
firewall-cmd --permanent --get-icmptypes
(3)获取支持的永久区域
firewall-cmd --permanent --get-zones
(4)配置防火墙在public区域永久开启服务
http firewall-cmd --permanent --zone=public --add-service=http
(5)防火墙开放 8080 端口在 public 区域
firewall-cmd --permanent --zone=public --add-port=8080/tcp
7 命令行配置富规则
(1)查看富规则: firewall-cmd --list-rich-rules
(2)仅允许部分 IP 访问本机服务配置
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.0.0/24" service name="http" accept"
(3)仅允许部分 IP 访问本机端口配置
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.0.0/24"port protocol="tcp" port="8080" accept"
(4)禁止远程 IP 访问 ssh
firewall-cmd --permanent --zone=public --add-rich-rule=’rule family=ipv4 source address=192.168.0.0/24 service name=ssh reject’
(5)【禁用:remove 查询:query】
8 图形化配置工具 :firewall-config
以上是关于RHEL7/CENTOS7 新特性(服务控制和防火墙)的主要内容,如果未能解决你的问题,请参考以下文章
RHEL7/CentOS7服务控制之systemctl命令
RHEL7/CentOS7服务控制之systemctl命令