如何設置一臺新的雲伺服器? 以 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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...