如何設置一臺新的雲伺服器? 以 CentOS7 為例

来源:https://www.cnblogs.com/wbourne/archive/2022/11/26/16927730.html
-Advertisement-
Play Games

我們拿到一臺新的雲伺服器之後, 應該如何設置, 使伺服器更適合自己使用? 本文將以 CentOS7 為例, 介紹如何設置新伺服器. ...


1. 引言

我們拿到一臺新的雲伺服器之後, 應該如何設置, 使伺服器更適合自己使用? 本文將以 CentOS7 為例, 介紹如何設置新伺服器.

2. 雲伺服器網站設置

本章節的操作都是在雲服務商所提供的網頁控制臺上操作.

2.1 防火牆

除了Linux系統的防火牆, 大部分雲服務提供商還額外加了一道防火牆, 這個防火牆是通過雲服務提供商來配置的: 如果我們想訪問伺服器, 需要先經過雲服務提供商的防火牆, 還需要再通過Linux系統的防火牆, 才能訪問到伺服器.

我所使用的某訊雲防火牆和iptables等防火牆工具比起來, 功能比較簡單, 適合不太瞭解防火牆的人使用.

因為後面我們會通過命令行來配置防火牆, 所以雲服務提供商的防火牆就可以關了, 有一個防火牆就夠了. 雲服務提供商的防火牆關了的意思是, 把所有埠都放開, 如下圖所示. 各位讀者可以根據自身實際情況選擇.

2.2 root密碼

其次我們還需要知道root密碼. 我所使用的某訊雲是需要自己預設密碼.

其他的雲服務商, 如果預設了root密碼則找到預設的密碼, 如果沒有設置root密碼則需要設置密碼, 否則, 沒有密碼我們登錄不了伺服器.

3. 伺服器設置

設置好密碼後, 我們就可以登錄伺服器了, 本章節都是通過root用戶在伺服器上的操作.

3.1 用戶管理

部分雲服務提供商會預設一個用戶, 比如某訊雲輕量伺服器的lighthouse. 使用預設用戶, 有較大安全的風險, 所以我們需要刪除預設用戶, 並自己創建一個用戶.

通過以下命令找到預設用戶, 第一個欄位是用戶名, 第三個欄位小於1000的是Linux系統的預設用戶, 大於等於1000就是雲服務提供商預設的用戶了, 我們要刪除的是雲服務提供商預設的用戶.

$ cat /etc/passwd
...
lighthouse:x:1000:1000::/home/lighthouse:/bin/bash
...

我們使用userdel命令刪除用戶, -r選項表示將用戶的家目錄也一併刪除

$ userdel -r lighthouse

使用useradd新增一個用戶:

  • -d選項指定家目錄
  • -G選項指定組, 加入到wheel, 是因為wheel組中的所有用戶都可以擁有sudoer許可權, 而無需在去修改sudoers文件了
  • -s選項指定預設shell
  • 最後的xxx表示用戶名
$ useradd -d /home/ypl/ -G wheel -s /bin/bash xxx

添加好用戶之後, 需要修改新用戶的密碼

$ passwd xxx

3.2 sshd配置

接下來配置sshd, 也是為了提高安全性. 修改配置文件之前備份下, 這是個好習慣

$ cp /etc/ssh/sshd_config /etc/ssh/sshd_config.org

備份好之後, 再來修改sshd的配置文件, 下麵是我常用的配置, 各位讀者可以根據自己的習慣來配置.

$ vim /etc/ssh/sshd_config

$ cat /etc/ssh/sshd_config
......
Port 13513                # 監聽埠
MaxAuthTries 3            # 登錄嘗試次數
PrintLastLog yes          # 顯示最後一次登錄的日期和時間
PermitRootLogin no        # 禁止root登錄
PasswordAuthentication no # 禁止密碼登錄
PermitEmptyPasswords no   # 禁止空白密碼登錄
PubkeyAuthentication yes  # 使用密鑰登錄
AllowTcpForwarding yes    # 用於埠轉發, 允許埠轉發
GatewayPorts yes          # 用於埠轉發
TCPKeepAlive yes          # 保持連接
ClientAliveInterval 20    # 心跳時間, 單位為s
ClientAliveCountMax 3     # 心跳失敗次數

修改後重啟sshd服務, 使剛剛的修改生效

$ systemctl restart sshd.service 

最後添加個人電腦的公鑰, 就可以免密登錄伺服器了, root和剛剛創建的用戶都要加, 不要忘記了

$ cd ~
$ touch .ssh
$ chmod 700 .ssh/
$ cd .ssh/
$ touch authorized_keys
$ chmod 600 authorized_keys
$ vim authorized_key
# 此處需要註意, 因為我們是root用戶, 創建的文件也屬於root用戶, 配置好普通用戶的ssh設置後, 需要將創建的文件的所有者修改為普通用戶
$ chown -R xxx .ssh/

3.3 伺服器防火牆

首先檢查下防火牆有沒有啟動, 沒有啟動的話先啟動

$ systemctl enable firewalld.service 
$ systemctl start firewalld.service 

註意: 若剛纔防火牆沒有啟動, 手動啟動後會登入不了伺服器, 因為防火牆沒有做任何配置, 會拒絕所有入站流量!

但是不要慌, 有種登錄方式叫做VNC登錄, 通過VNC登錄可以繞過防火牆登錄上伺服器. 用通俗的話來說:

  • ssh登錄: 類似於Windows登錄後, 在通過QQ的使用遠程式控制制, QQ就相當於ssh, 需要經過防火牆
  • VNC登錄: 相當於雲服務提供商把伺服器屏幕投影給用戶, 類似於坐在電腦旁本地登錄Windows, 所以不會經過防火牆

接下來再把ssh的埠打開, 要和之前配置的一樣

$ firewall-cmd --add-port=13513/tcp --permanent 
$ firewall-cmd --reload
$ firewall-cmd --list-all

3.4 其他設置

通過以下命令設置主機名

$ hostnamectl set-hostname xxxxxx

安裝需要的軟體

$ yum install htop tree git 

檢查crontab, 刪除預設腳本

$ crontab -e

4. 結語

在本文結束前, 在告訴大家一個小技巧:

本地機器(不是伺服器, 就是自己的筆記本電腦)修改 hosts 文件, 之後就可以使用 功能變數名稱 的訪問伺服器了.

例如, 在hosts文件中加入192.168.1.xxx wbourne.com, 我們就可以通過ssh [email protected]來登錄伺服器了, 想怎麼取怎麼取!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、SpringBoot配置文件 1.什麼是SpringBoot配置文件 在SpringBoot項目中,資源文件夾下會有一個叫做application.properties的文件,這就是SpringBoot的配置文件。 2.SpringBoot配置文件的作用 因為SpringBoot的配置都經過自動 ...
  • 重載關係 一組函數要重載,必須處在同一個作用域中 ,而且函數名字相同,參數列表不同 代碼1中的Base中的 show() 和show(int) 屬於重載 代碼2中的Base中的 show() 和Derive中的show()不屬於重載不在同一個作用域下麵 隱藏的關係(主要是指作用域隱藏) 在繼承結構當 ...
  • 1、什麼是MQTT? MQTT(Message Queuing Telemetry Transport,消息隊列遙測傳輸協議),是一種基於發佈/訂閱(publish/subscribe)模式的"輕量級"通訊協議,該協議構建於TCP/IP協議上,由IBM在1999年發佈。MQTT最大優點在於,可以以極 ...
  • 問題: Win7下在嘗試搭建簡單http伺服器的時候,執行httpListener.Start();報錯HttpListener拒絕訪問異常 代碼如下: HttpListener httpListener = new HttpListener();//創建伺服器監聽 httpListener.Pre ...
  • 簡介 本文的初衷是希望幫助那些有其它平臺視覺演算法開發經驗的人能快速轉入Halcon平臺下,通過文中的示例開發者能快速瞭解一個Halcon項目開發的基本步驟,讓開發者能把精力完全集中到演算法的開發上面。 首先,你需要安裝Halcon,HALCON 18.11.0.1的安裝包會放在文章末尾。安裝包分開發和 ...
  • 進程信號介紹: 操作系統通過信號來通知進程系統中發生了某種預先規定好的事件(一組事件中的一個),它也是用戶進程之間通信和同步的一種原始機制。一個鍵盤中斷或者一個錯誤條件(比如進程試圖訪問它的虛擬記憶體中不存在的位置等)都有可能產生一個信號。Shell也使用信號向它的子進程發送作業控制信號 簡易來說,信 ...
  • 對於提供了MMU(存儲管理器,輔助操作系統進行記憶體管理,提供虛實地址轉換等硬體支持)的處理器而言,Linux提供了複雜的存儲管理系統,使得進程所能訪問的記憶體達到4GB。 進程的4GB記憶體空間被人為的分為兩個部分--用戶空間與內核空間。用戶空間地址分佈從0到3GB(PAGE_OFFSET,在0x86中 ...
  • 一、阻塞和非阻塞簡介 當應用程式對設備驅動進行操作的時候,如果不能獲取到設備資源,那麼阻塞式 IO 就會將應用程式對應的線程掛起,直到設備資源可以獲取為止。對於非阻塞 IO,應用程式對應的線程不會掛起,它要麼一直輪詢等待,直到設備資源可以使用,要麼就直接放棄。 二、阻塞訪問(等待隊列) 阻塞訪問最大 ...
一周排行
    -Advertisement-
    Play Games
  • Dapr Outbox 是1.12中的功能。 本文只介紹Dapr Outbox 執行流程,Dapr Outbox基本用法請閱讀官方文檔 。本文中appID=order-processor,topic=orders 本文前提知識:熟悉Dapr狀態管理、Dapr發佈訂閱和Outbox 模式。 Outbo ...
  • 引言 在前幾章我們深度講解了單元測試和集成測試的基礎知識,這一章我們來講解一下代碼覆蓋率,代碼覆蓋率是單元測試運行的度量值,覆蓋率通常以百分比表示,用於衡量代碼被測試覆蓋的程度,幫助開發人員評估測試用例的質量和代碼的健壯性。常見的覆蓋率包括語句覆蓋率(Line Coverage)、分支覆蓋率(Bra ...
  • 前言 本文介紹瞭如何使用S7.NET庫實現對西門子PLC DB塊數據的讀寫,記錄了使用電腦模擬,模擬PLC,自至完成測試的詳細流程,並重點介紹了在這個過程中的易錯點,供參考。 用到的軟體: 1.Windows環境下鏈路層網路訪問的行業標準工具(WinPcap_4_1_3.exe)下載鏈接:http ...
  • 從依賴倒置原則(Dependency Inversion Principle, DIP)到控制反轉(Inversion of Control, IoC)再到依賴註入(Dependency Injection, DI)的演進過程,我們可以理解為一種逐步抽象和解耦的設計思想。這種思想在C#等面向對象的編 ...
  • 關於Python中的私有屬性和私有方法 Python對於類的成員沒有嚴格的訪問控制限制,這與其他面相對對象語言有區別。關於私有屬性和私有方法,有如下要點: 1、通常我們約定,兩個下劃線開頭的屬性是私有的(private)。其他為公共的(public); 2、類內部可以訪問私有屬性(方法); 3、類外 ...
  • C++ 訪問說明符 訪問說明符是 C++ 中控制類成員(屬性和方法)可訪問性的關鍵字。它們用於封裝類數據並保護其免受意外修改或濫用。 三種訪問說明符: public:允許從類外部的任何地方訪問成員。 private:僅允許在類內部訪問成員。 protected:允許在類內部及其派生類中訪問成員。 示 ...
  • 寫這個隨筆說一下C++的static_cast和dynamic_cast用在子類與父類的指針轉換時的一些事宜。首先,【static_cast,dynamic_cast】【父類指針,子類指針】,兩兩一組,共有4種組合:用 static_cast 父類轉子類、用 static_cast 子類轉父類、使用 ...
  • /******************************************************************************************************** * * * 設計雙向鏈表的介面 * * * * Copyright (c) 2023-2 ...
  • 相信接觸過spring做開發的小伙伴們一定使用過@ComponentScan註解 @ComponentScan("com.wangm.lifecycle") public class AppConfig { } @ComponentScan指定basePackage,將包下的類按照一定規則註冊成Be ...
  • 操作系統 :CentOS 7.6_x64 opensips版本: 2.4.9 python版本:2.7.5 python作為腳本語言,使用起來很方便,查了下opensips的文檔,支持使用python腳本寫邏輯代碼。今天整理下CentOS7環境下opensips2.4.9的python模塊筆記及使用 ...