Linux之Cent OS 7 服务管理和防火墙配置

本文涉及的产品
云防火墙,500元 1000GB
简介:

1 CentOS7最小化安装需要安装的基础工具包:

[zwj01@localhost ~]$ sudo yum install lrzsz tree net-tools nmap vim bash-completion lsof dos2unix nc telnet ntp wget rng-tools psmisc -y


2 服务管理:

从CentOS 7开始,服务管理和防火墙配置有了很大的变化。系统服务脚本目录是/usr/lib/systemd(软件包安装的单元)和/etc/systemd/(系统管理员安装的单元,优先级更高),有系统(system)和用户(user)之分,如需要开机没有登陆的情况下就能运行的程序,定义在系统(system)服务里,即/usr/lib/systemd/system目录下,每一个服务以.service结尾。

下面以Nginx服务为例,定义为系统服务:

1)安装Nginx(略)

2)创建Nginx服务文件

[zwj@localhost system]$ sudo vim /usr/lib/systemd/system/nginx.service

[Unit] 
Description=nginx
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target

配置文件说明:

[Unit]:服务的说明

Description:描述服务

After:描述服务类别

[Service]服务运行参数的设置

Type=forking是后台运行的形式

ExecStart为服务的具体运行命令

ExecReload为重启命令

ExecStop为停止命令

PrivateTmp=True表示给服务分配独立的临时空间

注意:[Service]的启动、重启、停止命令全部要求使用绝对路径

[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3

3)设置开机启动:

systemctl enable nginx.service

4)启动Nginx服务:

systemctl start nginx.service


查看所有已启动的服务:systemctl list-units --type=service


显示服务列表:systemctl list-unit-files  

值的说明:

enable:开机启动。被systemd启用了,即systemd已把它加载入内存里了。此时systemd认识(know)它

disable:禁止开机启动。没启用,即没有被systemd加载入内存,此时这个unit仅仅只是个文本文件

static:该unit文件里没用INSTALL项,也就不能设为开机启动。

masked:类似加锁,此时该unit无论如何都启动不了。


显示某项服务的当前状态:systemctl status crond.service

显示某项服务是否Active:systemctl is-active crond.service


停止某项服务:systemctl stop crond.service

开启某项服务:systemctl start crond.service

重启某项服务:systemctl restart crond.service

禁止某项服务自启动:systemctl disable crond.service

允许某项服务自启动:systemctl enable crond.service

查看某项服务是否开机启动:systemctl is-enabled crond.service


附 1:Sysvinit (CentOS 6)运行级别和 systemd (CentOS 7)目标的对应表

Sysvinit 运行级别 Systemd 目标 备注
0 runlevel0.target, poweroff.target 关闭系统。
1, s, single runlevel1.target, rescue.target 单用户模式。
2, 4 runlevel2.target, runlevel4.target, multi-user.target 用户定义/域特定运行级别。默认等同于 3。
3 runlevel3.target, multi-user.target 多用户,非图形化。用户可以通过多个控制台或网络登录。
5 runlevel5.target, graphical.target 多用户,图形化。通常为所有运行级别 3 的服务外加图形化登录。
6 runlevel6.target, reboot.target 重启
emergency emergency.target 紧急 Shell


附 2:服务类型

编写自定义的 service 文件时,可以选择几种不同的服务启动方式。启动方式可通过配置文件 [Service] 段中的 Type= 参数进行设置。

Type=simple(默认值):systemd认为该服务将立即启动。服务进程不会fork。如果该服务要启动其他服务,不要使用此类型启动,除非该服务是socket激活型。

Type=forking:systemd认为当该服务进程fork,且父进程退出后服务启动成功。对于常规的守护进程(daemon),除非你确定此启动方式无法满足需求,使用此类型启动即可。使用此启动类型应同时指定 PIDFile=,以便systemd能够跟踪服务的主进程。

Type=oneshot:这一选项适用于只执行一项任务、随后立即退出的服务。可能需要同时设置 RemainAfterExit=yes 使得 systemd 在服务进程退出之后仍然认为服务处于激活状态。

Type=notify:与 Type=simple 相同,但约定服务会在就绪后向 systemd 发送一个信号。这一通知的实现由 libsystemd-daemon.so 提供。

Type=dbus:若以此方式启动,当指定的 BusName 出现在DBus系统总线上时,systemd认为服务就绪。

Type=idle: systemd会等待所有任务(Jobs)处理完成后,才开始执行idle类型的单元。除此之外,其他行为和Type=simple 类似


3 防火墙管理:

firewalld 将配置储存在 /usr/lib/firewalld/ (系统配置,尽可能不去修改)和 /etc/firewalld/ (用户配置)中的各种 XML 文件里

安装:yum install firewalld

启动:systemctl start firewalld.service

停止:systemctl stop firewalld.service

禁止自启动:systemctl disable firewalld.service

查看当前详细状态:systemctl status firewalld.service

显示状态:firewall-cmd --state


关于区域(区域定义了网络连接的可信等级,可以把网卡对应到不同的区域。默认区域为public)

获取支持的区域列表:[root@localhost ~]# firewall-cmd --get-zones

work drop internal external trusted home dmz public block

获取活动的区域:[root@localhost ~]# firewall-cmd --get-active-zones

public

  interfaces: ens160

获取默认区域:firewall-cmd --get-default-zone

设置默认区域:firewall-cmd --set-default-zone=public

修改接口所属区域:firewall-cmd --zone=home --change-interface=lo

将接口增加到区域:firewall-cmd --zone=public --add-interface=lo

显示接口所在的区域:firewall-cmd --get-zone-of-interface=lo

从区域移除一个接口:firewall-cmd --zone=public --remove-interface=lo

启用区域中的某个服务:firewall-cmd --zone=public --add-service=http


端口管理:

开启端口:firewall-cmd --zone=public --add-port=80/tcp --permanent(--permanent参数表示永久生效,否则重启后则失效)也可以直接指定服务:firewall-cmd --zone=public --add-service=http

删除端口:firewall-cmd --zone=public --remove-port=23/tcp --permanent

重新加载:firewall-cmd --reload

显示开启的服务和端口:firewall-cmd --list-all

获取所有支持的服务:firewall-cmd --get-services


端口转发

启用区域的伪装功能(用于IP和端口映射):firewall-cmd --zone=public --add-masquerade --permanent

查询区域伪状态:firewall-cmd --zone=public  --query-masquerade

IP和端口转发:firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toaddr=192.168.180.131:toport=80 --permanent

本机端口转发:firewall-cmd  --zone=public  --add-forward-port=port=80:proto=tcp:toport=8080


应急模式

启用应急模式阻断所有网络连接:firewall-cmd --panic-on 

禁用应急模式:firewall-cmd --panic-off

查询应急模式:firewall-cmd --query-panic


禁止某个IP访问服务器:

firewall-cmd --permanent --zone=public --add-rich-rule='rule family=ipv4 source address="37.49.16.122" drop'


4 网络设置

永久性修改主机名:

hostnamectl set-hostname <主机名>


内网网卡配置:

TYPE=Ethernet

BOOTPROTO=static

DEFROUTE=yes

PEERDNS=yes

PEERROUTES=yes

IPV4_FAILURE_FATAL=no

#IPV6INIT=yes

#IPV6_AUTOCONF=yes

#IPV6_DEFROUTE=yes

#IPV6_PEERDNS=yes

#IPV6_PEERROUTES=yes

#IPV6_FAILURE_FATAL=no

NAME=eno33559296

UUID=fda7f900-0e7d-4b1a-8d45-76c13a

DEVICE=eno33559296

ONBOOT=yes

IPADDR=192.168.10.100

NETMASK=255.255.255.0


外网网卡配置:

TYPE=Ethernet

BOOTPROTO=static

DEFROUTE=yes

PEERDNS=yes

PEERROUTES=yes

#IPV4_FAILURE_FATAL=no

#IPV6INIT=yes

#IPV6_AUTOCONF=yes

#IPV6_DEFROUTE=yes

#IPV6_PEERDNS=yes

#IPV6_PEERROUTES=yes

#IPV6_FAILURE_FATAL=no

NAME=eno16780032

UUID=f75f56c4-ebc5-4394-b5b5-37ebd49

DEVICE=eno16780032

ONBOOT=yes

IPADDR=183.3.221.149

NETMASK=255.255.255.128

GATEWAY=183.3.221.129

 

或(可以把DNS写进去)

TYPE=Ethernet

BOOTPROTO=none

DEFROUTE=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_FAILURE_FATAL=no

NAME=eth0

UUID=c342e706-d813-4157-b9c1-b76c6121f1a1

DEVICE=eth0

ONBOOT=yes

IPADDR=61.144.244.107

PREFIX=24

GATEWAY=61.144.244.254

DNS1=202.96.134.133

IPV6_PEERDNS=yes

IPV6_PEERROUTES=yes

IPV6_PRIVACY=no



本文转自 zengwj1949 51CTO博客,原文链接:http://blog.51cto.com/zengwj1949/1932758
相关文章
|
1月前
|
安全 Linux 数据安全/隐私保护
Vanilla OS:下一代安全 Linux 发行版
【10月更文挑战第30天】
57 0
Vanilla OS:下一代安全 Linux 发行版
|
16天前
|
开发框架 .NET PHP
网站应用项目如何选择阿里云服务器实例规格+内存+CPU+带宽+操作系统等配置
对于使用阿里云服务器的搭建网站的用户来说,面对众多可选的实例规格和配置选项,我们应该如何做出最佳选择,以最大化业务效益并控制成本,成为大家比较关注的问题,如果实例、内存、CPU、带宽等配置选择不合适,可能会影响到自己业务在云服务器上的计算性能及后期运营状况,本文将详细解析企业在搭建网站应用项目时选购阿里云服务器应考虑的一些因素,以供参考。
|
27天前
|
运维 安全 Linux
全面提升系统安全:禁用不必要服务、更新安全补丁、配置防火墙规则的实战指南
全面提升系统安全:禁用不必要服务、更新安全补丁、配置防火墙规则的实战指南
50 12
|
2月前
|
Web App开发 搜索推荐 Unix
Linux系统之MobaXterm远程连接centos的GNOME桌面环境
【10月更文挑战第21天】Linux系统之MobaXterm远程连接centos的GNOME桌面环境
405 4
Linux系统之MobaXterm远程连接centos的GNOME桌面环境
|
1月前
|
缓存 资源调度 安全
深入探索Linux操作系统的心脏——内核配置与优化####
本文作为一篇技术性深度解析文章,旨在引领读者踏上一场揭秘Linux内核配置与优化的奇妙之旅。不同于传统的摘要概述,本文将以实战为导向,直接跳入核心内容,探讨如何通过精细调整内核参数来提升系统性能、增强安全性及实现资源高效利用。从基础概念到高级技巧,逐步揭示那些隐藏在命令行背后的强大功能,为系统管理员和高级用户打开一扇通往极致性能与定制化体验的大门。 --- ###
65 9
|
1月前
|
安全 Linux 网络安全
nmap 是一款强大的开源网络扫描工具,能检测目标的开放端口、服务类型和操作系统等信息
nmap 是一款强大的开源网络扫描工具,能检测目标的开放端口、服务类型和操作系统等信息。本文分三部分介绍 nmap:基本原理、使用方法及技巧、实际应用及案例分析。通过学习 nmap,您可以更好地了解网络拓扑和安全状况,提升网络安全管理和渗透测试能力。
121 5
|
2月前
|
Linux 网络安全 数据安全/隐私保护
Linux系统之Centos7安装cockpit图形管理界面
【10月更文挑战第12天】Linux系统之Centos7安装cockpit图形管理界面
107 1
Linux系统之Centos7安装cockpit图形管理界面
|
2月前
|
Web App开发 网络协议 Linux
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
这篇文章是关于Linux命令的总结,涵盖了从基础操作到网络配置等多个方面的命令及其使用方法。
78 1
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
|
2月前
|
Linux Docker 容器
Centos安装docker(linux安装docker)——超详细小白可操作手把手教程,包好用!!!
本篇博客重在讲解Centos安装docker,经博主多次在不同服务器上测试,极其的稳定,尤其是阿里的服务器,一路复制命令畅通无阻。
1854 4
Centos安装docker(linux安装docker)——超详细小白可操作手把手教程,包好用!!!
|
1月前
|
安全 Linux 网络安全
centos7中firewall防火墙的常用命令总结
以上命令集覆盖了 `firewalld`的基本操作,是维护CentOS 7系统安全不可或缺的工具。对于更高级的配置需求或遇到特定问题
35 3