惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

SecWiki News
SecWiki News
I
InfoQ
The Cloudflare Blog
人人都是产品经理
人人都是产品经理
博客园 - Franky
T
Tailwind CSS Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
量子位
博客园_首页
罗磊的独立博客
V
V2EX
李成银的技术随笔
大猫的无限游戏
大猫的无限游戏
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
True Tiger Recordings
Vercel News
Vercel News
Cyberwarzone
Cyberwarzone
Cisco Talos Blog
Cisco Talos Blog
F
Fox-IT International blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
M
Microsoft Research Blog - Microsoft Research
Know Your Adversary
Know Your Adversary
爱范儿
爱范儿
The Register - Security
The Register - Security
G
Google Developers Blog
The Hacker News
The Hacker News
Malwarebytes
Malwarebytes
S
Securelist
博客园 - 三生石上(FineUI控件)
Jina AI
Jina AI
T
Threat Research - Cisco Blogs
T
The Exploit Database - CXSecurity.com
S
SegmentFault 最新的问题
博客园 - 叶小钗
F
Fortinet All Blogs
Apple Machine Learning Research
Apple Machine Learning Research
宝玉的分享
宝玉的分享
博客园 - 聂微东
T
Threatpost
博客园 - 【当耐特】
D
Docker
P
Privacy & Cybersecurity Law Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
G
GRAHAM CLULEY
V
Visual Studio Blog
C
Cisco Blogs
IT之家
IT之家
S
Security Archives - TechRepublic
Latest news
Latest news
阮一峰的网络日志
阮一峰的网络日志

Razeen`s Blog

Let's Encrypt 推出 Gen Y 根证书架构:揭示 Web PKI 的五大未来趋势 通过 Wi-Fi 自动备份你的 iPhone 到 Nas 管理培训感悟:从技术视角看管理之路 UPS 一拖多:保护你的 NAS 和 Linux 服务器 从影音中心到 AI 助手:我的50款 Homelab 服务清单 从SSL证书有效期将缩短到47天聊开去 部署一个自己的 Running Page 谈谈特斯拉 Model Y 用车一年的感受和费用分析 弃用 Disqus 评论,使用自建 Waline 使用 Prometheus 和 Grafana 搭建你的证书监控面板 服务器迁移记:一次磁盘换板引发的Linux分区与挂载的学习 改善信息来源, 利用 RSS 高效获取资讯 (RSShub + Reeder5 + WeWe RSS) 多种 Docker 镜像拉取解决方案与实践 App分享 | AppCleaner - Mac上的卸载神器 Azure OpenAI API 申请和使用 如何开通 OneKey 虚拟信用卡,并充值消费 如何拥有一个可长期在国内使用的国外手机号码 分享开通 ChatGPT Plus 过程 如何开通 Depay 虚拟信用卡,并充值消费 如何开通欧易Web3钱包, 交易入账 如何5分钟内1块钱注册 ChatGPT 科学上网 如何注册美区的 Apple ID (2023年/无需科学上网) NAS折腾记(11): NASTool3.0体验和降级 NAS折腾记(10): Docker版本的NASTool配置 NAS折腾记(9): NASTool与微信交互,微信发送消息远程下载电影【多图】 NAS折腾记(8):群晖安装 NASTool 实现影音半自动化【多图】 内网穿透(2):Tailscale 组网实现内网穿透,操作简单,无成本 内网穿透(1):总结了11中内网穿透的方式,总有一种适合你 NAS折腾记(7):从零开始设置(黑)群晖系统 NAS折腾记(6):黑群晖系统安装好后怎么洗白? NAS折腾记(5):群晖硬盘休眠设置与分析 NAS折腾记(4): 20分钟手把手带你完美安装 DS918+ 黑群晖7.1.1 NAS折腾记(3):NAS 装机 NAS折腾记(2):B360-ITX 双M.2 双2.5G网口 6 SATA主版 开箱 NAS折腾记(1):328元的4盘位Nas机箱开箱 Openwrt + Clash 全局科学上网 Newifi3 刷入 OpenWrt 固件 v21.02 利用 Markdown 画一些流程图、时序图、甘特图等 Homelab(8): 搭建自用 Gitlab 与 Docker 仓库 Nginx Tcp 转发保留客户端真实 IP (PROXY Protocol) Homelab (7):IPSec VPN(基于证书认证)客户端设置 Homelab (6): 基于自签发证书的 IPSec VPN 搭建 Homelab (5): DDNS 动态域名解析 Homelab (3): 整体网络与基础硬件介绍 Go学习笔记(十)老项目迁移 go module 大型灾难记录 Github Actions 初体验之自动化部署 Hexo 博客 记一次 Nginx DNS 缓存导致转发问题 Homelab (2): 电信悦me网关修改桥接模式,路由器拨号 Homelab (1):5分钟上手黑群晖 NAS 终极 Bash 脚本指南 Typora 自动上传图片到七牛云 Ubuntu 20.04 LTS 有线网卡驱动安装 折腾 Ubuntu 20.04 LTS 开发环境 Go学习笔记(九) 计时器的生命周期[译] 利用 git hook 规范你的代码与 commit message 规范 git commit message 与自动化版本控制 超详细 vim 配置 (with MacVim) Golang 中的 RESTful API 最佳实践 折腾服务器(开篇) 我的第一台个人服务器 Newifi3 实现低成本家庭级科学上网 Go学习笔记(八) | 使用 os/exec 执行命令 如何用 Go 调用 Windows API Mac OS 自动根据 WI-FI 名字改变网络位置 关于 Docker 清理 MIME Types 速查表 Go学习笔记(七) | 理解OAuth 2.0并实现一个客户端 我又又又把博客迁移了 Go学习笔记(六) | 使用swaggo自动生成Restful API文档 Go学习笔记(五) | 使用代码片段(snippets)提高编码效率 书单 - 2018 IPFS 初体验,利用 IPFS 托管你的静态网站 记一次 PostgreSQL LIKE 索引优化,联合字段 LIKE 查询优化。 Disqus 添加有趣的 Reactions 的功能 TLS 1.3 详解 (RFC 8446解读) gRPC在Go中的使用(三)gRPC实现TLS加密通信与流模式 gRPC在Go中的使用(二)gRPC实现简单通讯 gRPC在Go中的使用(一)Protocol Buffers语法与相关使用 CentOS 安装 tshark 抓包工具 Go学习笔记(四) | win上使用VSCode搭建Go开发环境 日常 Postgres 数据库点滴记录 简单了解 PKCS 规范 美食篇 | DIY戚风蛋糕(烤箱做蛋糕) Go学习笔记(三) | 怎么写Go基准测试(性能测试) TLS1.3正式更新,为Nginx添加TLS1.3的支持 一次诡异的数据库删除 GitHub Pages自定义域名开启HTTPS 证书透明度是什么?它是怎么工作的? Go学习笔记(二) | 我对 recover 的一点误解 搭建证书透明度(certificate-transparency)日志服务之从入门到放弃 修复远程登陆 Centos 时,出现 UTF-8 Warning HTTPS篇之SSL握手过程详解 Go学习笔记(一) | postgres与golang点点滴滴 AWS 命令行界面(aws-cli)从安装到快速上手 数字证书分类及怎么区分各类数字证书 常用 linux 命令小结(一)文件目录操作 云服务器搭建 hexo 博客,git hooks自动更新 SSH 免密登陆, SSH Config 配置 Golang CGO Mac 交叉编译 Windows 使用 goose 让数据库迁移更加轻松
Homelab (4): Linux 服务器基础环境准备
2021-08-20 · via Razeen`s Blog

服务器系统安装的是CentOS7, 这篇文章主要记录一下服务器上系统环境与基础软件的准备工作。

安装系统

系统安装的教程很多,这里不多写。

关闭 SELinux

SELinux (Security Enhanced Linux) , 安全加强Linux。可以简单理解为通过一些安全策略,限制访问权限,避免资源误用,在《鸟哥的Linux私房菜》

对 SELinux 有详细的介绍。

不过,这东西虽然安全,设置起来比较麻烦,不是我折腾的方向,且为了避免出现一些奇怪的问题,我直接关了。。。

  • 查看 SELinux 是否开启;

    $ getenforce
    Enforcing 
    # Enforcing 开启
    # Disabled 关闭
    
  • 永久关闭,修改配置文件 /etc/selinux/config

    $ vim /etc/selinux/config
    
    SELINUX=disabled
    

    服务器重启后生效。

  • 临时关闭,重启后恢复;

    $ setenforce 0
    

开启防火墙

为了安全,防火墙肯定需要开启的。CentOS7 默认的防火墙软件是 firewalld, 管理命令是 firewall-cmd

这两篇文章对 firewalld 有一些详细的介绍:

日常我们只需要知道这几个命令就够了:

# 看防火墙是否开启, 如下我这就是默认开启了
$ 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 Fri 2021-08-13 01:42:54 CST; 1 weeks 1 days ago
...

# 设置自动开启
$ systemctl enable firewalld

# 开启防火墙
$ systemctl start firewalld
# 关闭防火墙
$ systemctl stop firewalld
# 关闭自启动
$ systemctl disable firewalld

# 查看默认区域的详情
$ firewall-cmd --list-all

# 永久开放端口 8888
$ firewall-cmd --permanent --zone=public -add-port=8888/tcp

# 开启后,reload一下
$ firewall-cmd --reload

设置最大文件打开数

Linux 最大文件打开数是操作系统对一个进程打开的文件句柄梳理的限制,有时我们遇到Can't open so many files类似的错误,一般都是这个有限制。

可以通过 ulimit -n 查看, 一般默认是 1024。

$ ulimit -n
1024

上面这个是对用户级别限制的,还有一个对系统的总限制的, 通过下面命令可以查看:

$ cat /proc/sys/fs/file-max
6469558

如下:我们直接把一个进程的最大文件打开数设置到 65535。

$ vim /etc/security/limits.conf

* soft nofile 65535
* hard nofile 65535
  • * 表示所有用户;
  • soft nofile 指最大打开的文件数软限制,也就是达到这个数量会告警;
  • hard nofile 指最大打开的文件数硬限制,就是实际的限制。

把非root用户的线程数量的限制也放开。

$ vim /etc/security/limits.d/20-nproc.conf
*          soft    nproc     65535
root       soft    nproc     unlimited

接着把系统的也调大。

# 临时生效
$ vim /proc/sys/fs/file-max
6553560

# 永久生效(重启后生效)
$ vim /etc/sysctl.conf
fs.file-max = 6553560

然而,上面的设置只对通过PAM(插入式认证模块,Pluggable Authentication Modules)登录用户启动的程序才生效,一些 systemctl 运行的后台进程确不起作用,顾需要修改另外一个文件。

# 修改下面这两个文件中的两个配置
$ vim /etc/systemd/system.conf

# 默认最大文件打开数
DefaultLimitNOFILE=65535
# 默认进程最大打开数
DefaultLimitNPROC=65535

$ vim /etc/systemd/user.conf

# 默认最大文件打开数
DefaultLimitNOFILE=65535
# 默认进程最大打开数
DefaultLimitNPROC=65535

改完后,可以重启一下。

如果不想重启系统,可以在需要设置的service文件中设置如下:

LimitNOFILE=1048576
LimitNPROC=1048576

修改历史执行命令的格式与数量

平常我们运行history看到的是这样的:

$ history
 1004  vim /etc/selinux/config
 1005  getenforce
 1006  cat /proc/sys/fs/file-max
 1007  ulimit -a
 1008  systemctl status firewalld.service
 1009  firewall-cmd --state
 1010  firewall-cmd --get-active-zones
 1011  firewall-cmd --list-all
 1012   cat /proc/sys/fs/file-max
 1013  ulimit -n
 1014  vim /etc/security/limits.d/20-nproc.conf
 1015   vim /etc/security/limits.conf
 1016  vim /etc/systemd/system.conf
 1017  history

其实不方便排除,如果加上时间、用户就好了。只要在/etc/profile 加一行代码就好了。

$ vim /etc/profile
export HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S  `whoami` "

# 然后 source 一下就好了
$ source /etc/profile

下次再看记录就方便排查了。

安装基础包

$ yum install -y vim unzip zip wget gzip zlib zlib-devel lsof gcc-c++ make

安装 docker

为了在软件安装上少花点时间,我准备大部分的软件都用 docker 安装。直接按照 Docker 官方文档安装。

$ yum install -y yum-utils
$ yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
$ yum install docker-ce docker-ce-cli containerd.io
$ systemctl start docker

到这里,我们整个服务器的基础环境就准备好了,后面可以愉快的折腾其他软件了。