#author("2025-02-21T19:07:29+09:00","default:dramsukohome","dramsukohome")
#author("2025-02-25T17:57:57+09:00","default:dramsukohome","dramsukohome")
[[LinuxServer]]

#shadowheader(1,"ssh");

#contents



* セキュア(公開鍵認証) [#uc7b311f]

 

** 流れ [#qb38e04c]
+ クライアントで秘密鍵、公開鍵の生成
+ サーバー側で公開鍵を登録
++ sshの設定調整
+ クライアントからログイン



** クライアントで秘密鍵、公開鍵の作成 [#hdb832a7]
+ ssh-keygen -t rsa -b 4096 -f keyName
-- パスワードを入力する



** Server側 [#u461ab0d]
+ 以下に上記の keyName.pub の内容を、サーバ側の以下のファイルへ追記する
 vim ~/.ssh/authorized_keys
+ アクセス権の変更
 cd /home
 sudo chmod 755 userName
 cd /home/userName
 sudo chmod 700 .ssh
 sudo chmod 600 .ssh/authorized_keys
+ sshd設定ファイルの編集
-- sudo vim /etc/ssh/sshd_config
-- portは22以外に変更推奨
 Port 22
 PermitRootLogin no
 PubkeyAuthentication yes
 AuthorizedKeysFile      .ssh/authorized_keys
+ 一旦 sshd の再起動
 sudo systemctl restart sshd
+ クライアントから以下のようなコマンドで接続できるか確認
 ssh -i /home/userName/.ssh/keyName userName@hostname -p 22
+ 接続できたら以下を変更
-- sudo vim /etc/ssh/sshd_config
 PasswordAuthentication no
+ (ファイアウォールの変更) 設定したportのオープン




* putty, 秘密鍵の設定 [#j423daad]
+ 秘密鍵をテキストファイルへ保存する
+ 「PuTTYgen」を起動
+ 「Conversions」->「Import key」
+ 上記で保存したテキストファイルを開く
+ パスワードの入力
+ 「Save private key」ボタンを押し保存する
+ Puttyを起動
-- 「Connection」->「SSH」->「Auth」->「Credentials」
-- 「Private key file...」に上記で変換して保存したファイルを指定する




* Ubuntuでキー変換 [#ud0c6a15]
- 書式 : puttygen (OpenSSH形式の秘密鍵ファイル) -O private -o (出力ファイル名)
-- 例)
 puttygen secretkey.txt -O private -o secretkey.ppk




* トラブル [#y812d62e]



** no matching host key type found. Their offer: ssh-rsa,ssh-dss [#w63f65a2]
+クライアント側
 sudo vim ~/.ssh/config
+末尾に以下を追加
 Host *
    HostKeyAlgorithms=+ssh-rsa
    PubkeyAcceptedAlgorithms=+ssh-rsa




* ブルート・フォート(総当たり攻撃)対策 [#y4e833a6]
-基本は秘密鍵を使ったファイル認証を使い、ユーザー名、パスワード認証はオフが基本です。~
自分はなんとなくこちらの対策も入れてみましたw



** fail2banを導入する。 [#w680bbe3]


*** CentOS [#ha0d4429]
+Install
++ sudo yum install epel-release
++ sudo yum install fail2ban
+設定
++ 設定ファイルのコピーとバックアップ
 sudo cp -p /etc/fail2ban/jail.conf /etc/fail2ban/jail.d/jail.local
 sudo cp -p /etc/fail2ban/jail.d/jail.local /etc/fail2ban/jail.d/jail.local.org
++ 設定ファイルの変更
 sudo vim /etc/fail2ban/jail.d/jail.local
+++ コメントアウトを削除
 # [sshd]
 [sshd]
 # enabled = true
 enabled = true
+++ banactionの変更
 #banaction = iptables-multiport
 banaction = firewallcmd-ipset
 #banaction_allports = iptables-allports
 #banaction_allports = iptables-allports
+起動と自動起動
++CentOS6
 sudo service fail2ban restart
 sudo chkconfig fail2ban on
---自動起動設定の確認(qで出る)
 sudo chkconfig | less
++CentOS7以降
 sudo systemctl restart fail2ban
 sudo systemctl enable fail2ban
--- 確認
 sudo systemctl status fail2ban
+fail2banの動作確認
++ message logで確認
--- sudo tail -f /var/log/messages
--- sudo cat /var/log/messages | grep fail2
++ fail2ban-client コマンドで確認
 sudo fail2ban-client status sshd
--- 結果例
 Status for the jail: sshd
 |- Filter
 |  |- Currently failed: 0
 |  |- Total failed:     5
 |  `- File list:        /var/log/secure
 `- Actions
    |- Currently banned: 1
    |- Total banned:     2
    `- Banned IP list:   92.255.85.37
++ ipset コマンドで確認
 sudo ipset --list
--- 結果例
 Name: fail2ban-sshd
 Type: hash:ip
 Header: family inet hashsize 1024 maxelem 65536 timeout 600
 Size in memory: 16632
 References: 0
 Members:
 92.255.85.37 timeout 102

+Log levelの変更
 fail2ban-client set loglevel INFO
--Log levelの種類
 CRITICAL, ERROR, WARNING, NOTICE, INFO, DEBUG

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS