開發web
應用的時候,經常需要配置伺服器。我在阮一峰老師的 linux伺服器的初步配置流程 的基礎上,整理了這篇筆記。節約以後配置伺服器的時間。
root
賬戶預設沒有密碼 安全起見 先初始化乙個
passwd
? 使用首先,新增乙個使用者組(這裡我自定義的 admin)。linux
伺服器的時候,盡量不要使用root
賬號,處理日常操作,我們新建乙個管理員賬號。
addgroup admin
然後,新增乙個新使用者(假定為 www)。
useradd -d /home/www -s /bin/bash -m www
上面命令中,引數d
指定使用者的主目錄,引數s
指定使用者的shell
,引數m
表示如果該目錄不存在,則建立該目錄。
接著,設定新使用者的密碼。
passwd www
將新使用者(www)新增到使用者組(admin)。
usermod -a -g admin www
接著,為新使用者設定sudo許可權。
sudo vi /etc/sudoers
找到下面這一行。
root all=(all:all) all
在這一行的下面,再新增一行。
root all=(all:all) all
www all=(all) nopasswd: all
上面的nopasswd
表示,切換 sudo 的時候,不需要輸入密碼。如果出於安全考慮,也可以強制要求輸入密碼。
root all=(all:all) all
www all=(all:all) all
最後,先退出root
使用者登入,再用新使用者的身份登入。
把自己電腦的ssh
公鑰,儲存到伺服器的~/.ssh/authorized_keys
檔案中
直接使用下面的命令
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
然後,進入伺服器,編輯ssh配置檔案/etc/ssh/sshd_config。
sudo cp /etc/ssh/sshd_config ~ (備份,復原時使用)
sudo vi /etc/ssh/sshd_config
在配置檔案中,將 ssh 的預設埠 22 改掉。假設使用 25000
port 25000
然後,檢查幾個設定是否設成下面這樣,確保去除前面的#號。
選項含義
protocol 2
ssh 協議使用新版的
permitrootlogin no
不允許 root 登入
permitemptypasswords no
不允許空密碼登入
passwordauthentication no
使用密碼授權登入
rsaauthentication yes
使用rsa演算法進行安全驗證
pubkeyauthentication yes
允許公鑰認證
usedns no
禁用dns反向解析 會加快速度
syslogfacility authpriv
記錄使用者登入資訊
上面主要是禁止root
使用者登入,以及禁止用密碼方式登入。
儲存後,退出檔案編輯。
接著,改變authorized_keys檔案的許可權。
sudo chmod 600 ~/.ssh/authorized_keys && chmod 700 ~/.ssh/
重啟 sshd
sudo service ssh restart
或者
sudo /etc/init.d/ssh restart
檢查伺服器的區域設定。
locale
如果結果不是en_us.utf-8
,建議都設成它。
sudo locale-gen en_us en_us.utf-8 en_ca.utf-8
sudo dpkg-reconfigure locales
然後,更新軟體
sudo apt-get update
sudo apt-get upgrade
最後,再根據需要,做一些安全設定,比如搭建防火牆,關閉http
、https
、ssh
以外的埠,詳細可參考這篇 《securing a linux server》。
阿里雲伺服器可以在控制台設定安全組規則。
什麼是安全組
簡單點,給大家舉個栗子?,我部署了乙個mongodb
的資料庫,我怕別人黑我資料庫,我就可以在安全組的規則裡設定公網入方向
拒絕訪問mongodb
使用的埠27017
。只允許本地locahost
訪問,禁止公網訪問。
下面是教科書版具體解釋
阿里雲產品介紹 請看這裡 安全組
安全組是一種虛擬防火牆,具備狀態檢測包過濾功能。安全組用於設定單台或多台雲伺服器的網路訪問控制,它是重要的網路安全隔離手段,用於在雲端劃分安全域。linux伺服器的初步配置流安全組是乙個邏輯上的分組,這個分組是由同乙個地域(region)內具有相同安全保護需求並相互信任的例項組成。每個例項至少屬於乙個安全組,在建立的時候就需要指定。同一安全組內的例項之間網路互通,不同安全組的例項之間缺省內網不通。可以授權兩個安全組之間互訪。
Linux伺服器初始化
選擇的作業系統是centos 7 x64,與ubuntu的區別詳見 一 ssh登入會報錯 當本機之前成功連線過伺服器時,若重灌伺服器後,用ssh登入報錯 warning remote host identification has changed!這是由於本機的known hosts是記錄遠端主機公...
雲伺服器初始化
使用雲伺服器也有一段時間了,每次使用都要進行一些相同的操作,每次還要查閱相應的部落格和教程,覺得做這些重複工作覺得十分麻煩,還是記錄一下。如果以後學習了shell程式設計,就可以把這些操作儲存成乙個initial.sh,每次新開雲伺服器的時候執行一下就可以了。yum update yum upgra...
ubuntu伺服器初始化配置lamp環境
1.安裝之前先更新系統 sudo apt get install software properties common sudo add apt repository ppa ondrej php sudo apt get update sudo apt update 2.安裝apache2 sud...