前端新手的ubuntu初始化設定

野生爬山虎發表於2018-09-25

遠端登入,增加使用者,提升許可權

linux允許多人、同時、在不同的地點,操作同一臺伺服器。
可以設定多個使用者,分組,可以修改設定每個使用者的許可權。
通過ssh協議進行遠端連結,登入雲主機。

當擁有了一臺雲主機後:

  1. 先用root賬戶進行ssh遠端登入
    ssh -p [port] username@ip_address
  2. 用命令新增其他使用者,並將使用者拉入更高許可權的組。
    useradd manager -m 增加名為manager的使用者,-m引數會同時在/home目錄下建立manager目錄
    passwd manager設定manager使用者的密碼
    gpasswd -a manager sudo 將manager新增到sudo組,-a參數列示新增使用者到組
  3. 在sudoers檔案中設定新增使用者的許可權,開啟sudoers檔案
    vi /etc/sudoers
  4. 在root ALL=(ALL:ALL) ALL的下面一行,新增一行
    manager ALL=(ALL:ALL) ALL

我在實作中執行完第3步後,不執行第4步,該使用者也是具有管理員許可權的。

要使用ssh進行遠端免密連結,需要在我們的本地機上生成ssh的公鑰和私鑰。
這兩把鑰匙檔案,其中公鑰檔案將交給遠端伺服器儲存。
每次本地機進行ssh連結遠端主機時,本地機會先用自己的私鑰進行加密,而遠端主機會用儲存的本地機的公鑰進行解密,確認對方的身份之後就可允許對方登入。
這麼做就實現了免密登入。如果遠端主機沒有持有對方的公鑰,那麼本地機就需要輸入自己的使用者密碼登入。

安裝git

主要使用git將本地機程式碼push到伺服器上。或者在伺服器上從github clone程式碼。

  1. 首先更新apt-get的源,順便升級已安裝的軟體,接著安裝git包。
    apt-get update
    apt-get upgrade
    apt-get install git
  2. 給manager使用者在伺服器上生成一個ssh公鑰和私鑰
    ssh-keygen該命令會在使用者根目錄下建立.ssh目錄,並生成id_rsa和id_rsa.pub檔案
  3. 在本地機使用者目錄下的.ssh資料夾內,啟動命令列工具,將本地機的公鑰儲存到伺服器上
    ssh-copy-id manager@id_address -p [port] 這行命令會在遠端manager目錄下生成一個authorized_keys檔案。
    cat .ssh/authorized_keys 在manager的使用者根目錄中(/home/manager)用cat命令列印出該檔案內容
  4. 將伺服器的ssh公鑰儲存到github上

嘗試使用git
這裡以push一個本地hexo靜態站為例:

  1. 建立遠端倉庫
    cd /var/repo
    git init --bare hexo-blog.git
    mkdir /var/www/hexo
    vim /var/repo/hexo_static.git/hooks/post-receive 建立一個hooks鉤子檔案,在檔案中新增如下兩行
    #!/bin/bash
    git --work-tree=/var/www/hexo --git-dir=/var/repo/hexo_static.git checkout -f
    chmod +x /var/repo/hexo_static.git/hooks/post-receive 儲存後使檔案具有可執行許可權
  2. 在hexo中設定倉庫地址
    在配置檔案中修改如下資訊

    deploy:
    type: git
    repo: ssh://[uername]@[ip_address]:[port]/var/repo/hexo_static.git
    branch: master
  3. 執行hexo d,將hexo靜態站推到遠端倉庫

hexo建站可參考網路文章,或我的這篇

設定防火牆

主要設定iptables的配置項。
這裡羅列一個簡單的入門配置。
該配置能達到以下防護:

以下具體的埠號(如3989,8080,19898)可根據個人業務修改

  1. 只允許80埠和8080埠的http請求
  2. 只允許3989 19898埠的ssh訪問
  3. 遮蔽對80埠在60s內訪問超過150次的敏感ip
*filter

# allow all connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# allow out traffic
-A OUTPUT -j ACCEPT

# allow http https
-A INPUT -p tcp --dport 443 -j ACCEPT
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 8080 -j ACCEPT

# allow ssh port login
-A INPUT -p tcp -m state --state NEW --dport 3989 -j ACCEPT
-A INPUT -p tcp -m state --state NEW --dport 19898 -j ACCEPT

# ping
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

# log denied calls
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied:" --log-level 7

# drop incommin sensitive connections
-A INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --set
-A INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --update --seconds 60 --hitcount 150 -j DROP

# reject all other inbound
-A INPUT -j REJECT
-A FORWARD -j REJECT
COMMIT

開啟iptables設定規則 iptables-restore < /etc/iptables.up.rules

設定nginx

  1. 安裝nginx
    sudo apt-get install nginx
  2. 設定nginx的配置檔案
    在/etc/nginx/conf.d下新建一個配置檔案,命名為test-8080.conf的檔案,填充類似如下內容。將達到這些效果:能夠將訪問app.test.cn的域名轉發到8080埠的應用去處理;對blog.test.cn的訪問將用hexo的靜態站呈現

    upstream test {
      server 127.0.0.1:8080;
    }
    server {
      listen 80;
      server_name app.test.cn;
      location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-Nginx-Proxy true;
        proxy_pass http://test;
        proxy_redirect off;
    
      }
    }
    server {
      listen 80;
      listen [::]:80 ipv6only=on;
      server_name blog.test.cn;
      root /var/www/hexo;
      index index.html index.htm;
    }
  3. 在dns解析中新增相應域名解析的a記錄
  4. 過載nginx的設定
    sudo nginx -s reload

這時我們的hexo靜態站應該就可以通過blog.test.cn訪問了。

設定mongodb

  1. 參閱官網的安裝教程進行mongodb的安裝
  2. 修改mongodb的預設埠
    sudo vi /etc/mongod.conf 在該檔案將port更改為你想更改的port
  3. 去/etc/iptables.up.rules增加你設定的埠
  4. 過載iptables設定
    iptables-restore < /etc/iptables.up.rules
    如遇錯誤可嘗試重啟伺服器,在進行過載
  5. 啟動mongodb
    sudo service mongod restart
  6. 開啟mongo命令列工具
    mongo --host 127.0.0.1:[port]

成功連結資料庫說明安裝配置正確

相關文章