前端新手的ubuntu初始化設置


遠程登錄,增加用戶,提升權限

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]

成功鏈接數據庫說明安裝配置正確

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章