Dabao's Tech Blog
Archives
Label
About
GitHub
Facebook

[ Linux ] SSH 禁止 所有/特定/群組 的 Client 連線

logo

延續 SSH 連線的議題,假設今天有 user 離職,想保留他的檔案但又不想讓它登入的情況下可以這樣做。

禁止 所有/特定 user 登入

將以下內容貼在上一篇提到的 /etc/ssh/sshd_config 這個設定檔

# * 星號即全部的意思,在 DenyUsers 後面加上星號即封鎖全部
DenyUsers *

# 若是特定的 user 直接寫上,若是複數 user 用半形空白間隔
DenyUsers dabao1 dabao2 dabao3

# 若是特定的 group 直接寫上,若是複數 group 用半形空白間隔
DenyGroups master1 master2 master3

設定完後記得要重啟 ssh 服務

systemctl restart ssh

systemctl restart sshd

額外筆記

新增使用者群組

groupadd denyssh

編輯使用者群組

vim /etc/group

用編輯開啟 /etc/group 後會看到常見的群組名稱還有看不懂的設定

他們都使用 冒號 : 來間隔

※一個群組一定帶有一個 user,但是一個 user 可以同時屬於多個群組
  • 第一格 : 群組名稱
  • 第二格 : 群組密碼,通常是給「群組管理員」使用,密碼真實位置在 /etc/shadow,不管有無密碼都以x代替
  • 第三格 : 群組ID => GID,與 user 在 /etc/passwd 每一行的第四個欄位對應
  • 第四格 : 支援此群組權限的 user,複數以 逗號 , 間隔,沒有的話空著就可以了

修改的方式也很簡單

假設我要 dabao1 , dabao2 也能享有root群組的權限

root:x:0:dabao,dabao2

假設我現在登入的是 ubuntu 只要輸入 groups 就能看到使用者 ubuntu 的所在群組 !

參考

more

[ Linux ] SSH 逾時連線不要這麼快就斷線的設定

logo

延續 SSH 連線的議題,今天 user 跟我抱怨「連線時間太短了啦 ! 」,確實沒動幾下就被踢了,自己下去用也覺得很難用,哈哈,以下是設定過程,以及順便提一下其他項目的設定方法

ssh 的設定很有趣,有三個地方,個別有不同的作用,如下

Step 1 - ~/.ssh/config 針對 Client 的 ssh 連線設定

假設 user: ubuntu 是全新使用者的狀況下

用 ubuntu 下去設定

su ubuntu

建立 ssh 資料夾

mkdir ~/.ssh

限制它的權限 (700 是讓這檔案僅屬於自己)

chmod 700 ~/.ssh

建立一個空的檔案

touch ~/.ssh/config

編輯它

vim ./.ssh/config

加入以下內容 ↓

Host *
 ServerAliveInterval 100

Step 2 - /etc/.ssh/sshd_config 針對 整個伺服器 的 ssh 連線設定

編輯它

vim /etc/.ssh/sshd_config

找到以下兩行並拿掉註解或是新增它們

ClientAliveInterval 10
ClientAliveCountMax 0

設定完後記得要重啟 ssh, sshd 服務

systemctl restart ssh

systemctl restart sshd

以上就完成逾時不斷線的設定囉!

參考

more

[ Linux ] 替使用者建立不需要密碼的SSH連線機制

logo

延續上一篇提到的議題,要建立一個安全、方便控管且讓廠商能連線的帳號,給廠商一個 Key 並且每個帳號對應不同的 public key,這樣比一般的帳號密碼登入來的安全,此次適用於所有 Linux 版本,所以沒有特別寫出是哪一套 Linux

Step 1 - 產生 RSA 金鑰

因為我是 Windows 的環境,我是利用 git 自帶的 BASH command line 下 ssh-keygen 產出的金鑰

Enter file in which to save the key (/home/camel/.ssh/id_rsa): Enter(金鑰放的位置,要來這邊抓金鑰)
Enter passphrase (empty for no passphrase): Enter(不設定密碼)
Enter same passphrase again: Enter(不設定密碼)

確認金鑰是否有正常產出 ls -l ~/.ssh/

以上面的範例來說會看到下面兩個檔案

  • id_rsa : Private Key 私鑰,權限為600
  • id_rsa.pub : Public Key 公鑰,權限為644

Step 2 - 將公鑰上傳至目的伺服器

今天我想讓廠商從 webuser 帳號進入目的伺服器,所以我們要先以 webuser 的身分登入,在登入之前先把id_rsa.pub上傳至該台伺服器

  • webuser 登入目的伺服器,並移動到家目錄
  • 在家目錄 ~ 確認是否有 .ssh 資料夾,若沒有的話創建一個 mkdir .ssh,並修改他的權限 chmod 700 .ssh
  • 創一個空檔案放在 .ssh 資料夾底下 touch .ssh/authorized_keys
  • 複製內容 cat id_rsa.pub > .ssh/authorized_keys
  • authorized_keys 的權限必須設定為 644 chmod 644 .ssh/authorized_keys

到這邊就可以在本機用 ssh -i id_rsa webuser@123.45.67.89 做測試

配合上一篇將使用者新增到 sudo 的群組,就可以讓廠商擁有權限做事情了呦~

more

[ Linux ] Unbuntu 新增使用者與讓使用者擁有 sudo 的權限

logo

初學 Ubuntu 紀錄,今天有個需求是需要讓廠商連線至我在 AWS 的 某台 server,所以我想讓他用 ssh 的方式連進來,先從新增講起

Linux - Ubuntu

新增使用者

ubuntu# userad webuser

設定使用者密碼

ubuntu# passwd webuser

將指定的使用者塞進 sudo 的群組

ubuntu# usermod -aG sudo webuser

或是

ubuntu# adduser webuser sudo

將使用者從 sudo 群組移除

ubuntu# deluser webuser sudo

將使用者移除

ubuntu# deluser webuser

以下列出官方文件

用戶
  刪除普通用戶
  (deluser mike)
  
  --remove-home 刪除用戶的主目錄和信箱
  --remove-all-files 刪除用戶擁有的所有文件
  --backup 刪除前將文件備份
   - 備份到<DIR>備份的目標目錄。
     默認是當前目錄。
  --system只有當該用戶是系統用戶時才刪除。
  
delgroup GROUP
deluser --group GROUP
  從系統中刪除用戶組
  例如:deluser  -  group students
  
  --system 只有當該用戶組是系統用戶組時才刪除
  --only-if-empty 只有當該用戶組中無成員時才刪除
  
用戶組
  將用戶從一個組中刪除
  (學生)
  
常用選項:
  --quiet | -q 不會進程信息發給標準輸出
  --help | -h 幫助信息
  --version | -v 版本號和版權
  --conf | -c 文件以製定文件作為配置文件
more

[ Linux ] Red hat enterprice PHP 5.6 & MariaDB 安裝

logo

延續前幾篇文章提到,正在協助建置機房,安裝 Red Hat Enter price 時所做的筆記
  • 安裝的設備: DELL R610 Server
  • 使用的媒介: USB 2.0 4G DISK
  • BIOS 模式: UEFI
  • USB Maker: Rufus
  • O.S : Red hat enterprice 7

安裝過程就不贊述了,我是用 Rufus 製作開機 USB,安裝的檔案是 Red Hat Enterprise Linux 7.4 Binary DVD

除了上次提到的軟體源 mirror163.com,這次還會再新增一個 epel 來安裝 php5.6 版本

以下方法其他 php5.4, php5.5 也適用

Step1 - install/update epel-repo

# 安裝 epel 庫
yum install epel-release
# or
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

# 更新 Remi 庫
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

# 檢查有沒有 php 相關套件
rpm -qa | grep php

# 卸載 php 相關套件
yum remove php-*

vim /etc/yum.repos.d/remi.repo

[remi-php56]
name=Les RPM de remi de PHP 5.6 pour Enterprise Linux 6 - $basearch
#baseurl=http://rpms.famillecollet.com/enterprise/6/php56/$basearch/
mirrorlist=http://rpms.famillecollet.com/enterprise/6/php56/mirror
# WARNING: If you enable this repository, you must also enable "remi"
enabled=1  # <=== 這行要改成 1 ,原本是 0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

Step2 - Install php

在安裝之前,先把 yum 清空一遍

yum clean all 重作一份 cache yum makecache fast

接著就可以直接使用 remi repo 安裝

yum install –enablerepo=remi,remi-php56 php php-devel php-mbstring php-pdo php-gd php-xml php-mcrypt php-mysql

上方範例是安裝 php5.6 版本,如果想要安裝 php7, php5.5, php5.4,只要把php56改成 php70、php55、php54 即可

後面的 php php-devel … 是一些基本會用到的套件,常在寫 php 應該都不陌生

修改時區

sed -i ‘s/;date.timezone =/date.timezone = Asia\/Taipei/’ /etc/php.ini

重新啟動 Web server

systemctl restart httpd

service httpd restart

Step3 - MariaDB

安裝 MariaDB

yum install mariadb-server mariadb

啟動 MariaDB

systemctl start mariadb

初始化資料庫設定

/usr/bin/mysql_secure_installation

設定開機時啟動 MariaDB

systemctl enable mariadb

Finish

php –version

PHP 5.6.34 (cli) (built: Feb 28 2018 10:16:58)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies

echo “小於?phpinfo();?大於” » /var/www/html/index.php

Test http://yourip/

參考

more