Linuxリモートアクセスおよび制御

リモートアクセスと制御

SSHプロトコル

これは、
リモート管理用のクライアントに安全なシェル環境を提供する安全なチャネルプロトコルです
デフォルトポート:TCP 22

OpenSSHサービス

サービス名:sshd
サーバーのメインプログラム:/ usr / sbin / sshd
サーバー構成ファイル:/ etc / ssh / sshd_config

キー
対称キー:暗号化と復号化に同じキーが使用されます。AES DES 3DES暗号化は高速ですが安全ではありません
非対称キー:暗号化と復号化は、公開キーと秘密キーに分けられた異なるキーを使用します。あるキーから別のキーを派生させることはできません。RSA暗号化は遅く安全です

ssh_config:クライアント用
sshd_config:サーバー用
アクセスモードポート番号
SSH:暗号テキストアクセスデフォルトポートTCP:22、一般的なWAN
Telnet:プレーンテキストアクセスTCP 23、一般的なLAN
サービス監視オプション
ポート番号、プロトコルバージョン、リスニングIPアドレス


リモートログインの逆引きを無効にする

[root@localhost ~]# hostnamectl set-hostname test01
[root@localhost ~]# su
[root@test01 ~]# netstat -ntap | grep 22
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      9748/dnsmasq        
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      9135/sshd           
tcp        0      0 20.0.0.41:22            20.0.0.1:50684          ESTABLISHED 73425/sshd: root@pt 
tcp6       0      0 :::22                   :::*                    LISTEN      9135/sshd           
[root@test01 ~]# grep  "bash" /etc/passwd
root:x:0:0:root:/root:/bin/bash
hu:x:1000:1000:hu:/home/hu:/bin/bash
[root@test01 ~]# useradd zhangsan
[root@test01 ~]# passwd zhangsan
在另一台主机上
[root@localhost ~]# hostnamectl set-hostname test02
[root@localhost ~]# su
[root@test02 ~]# ssh [email protected]
The authenticity of host '20.0.0.41 (20.0.0.41)' can't be established.
ECDSA key fingerprint is SHA256:W+MleaejDosjJJV1F2noJPAGWA/d2qESydwosqTqWWw.
ECDSA key fingerprint is MD5:68:5f:ee:e5:76:ca:96:01:5d:d8:b9:1f:4b:5a:58:91.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '20.0.0.41' (ECDSA) to the list of known hosts.
[email protected]'s password: 
Last login: Mon Jul 13 11:26:09 2020
[root@test01 ~]# 
[root@test01 ~]# exit  //退出当前bash环境
登出
Connection to 20.0.0.41 closed.

[root@test01 ~]# vim /etc/ssh/sshd_config
...
#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

ここに画像の説明を挿入
ユーザーログイン制御
rootユーザー、パスワードが空のユーザーを禁止する
ログイン認証時間と再試行回数を
制限するAllowUsers(ホワイトリスト、特定のユーザーのみを許可し、すべてのユーザーを拒否する、高度なセキュリティ
状況DenyUsers(ブラックリスト、特定のユーザーのみを拒否し、すべて許可する人との安全上の機会が少ない)

AllowUsersとDenyUsersを同時に使用しないでください

[root@localhost ~]# vim /etc/ssh/sshd_config 
……
#LoginGraceTime 2m  //会话时间
#PermitRootLogin yes  //允许管理员进行登录
#StrictModes yes
#MaxAuthTries 6  //最大尝试次数
#MaxSessions 10  //最大会话连接
AllowUsers zhangsan [email protected]

ここに画像の説明を挿入

認証方法
パスワード認証:ユーザー名とパスワードが一致
するかどうかを確認しますキーペア認証:クライアントの秘密鍵とサーバー公開鍵が一致するかどうかを確認します
[root @ localhost〜]#vim / etc / ssh / sshd_config
……
PasswordAuthentication yesパスワードを使用するかどうか
PermitEmptyPasswords no空のパスワードを禁止
PubkeyAuthentication yes公開鍵認証を有効にする
AuthorizedKeysFile .ssh / authorized_keys公開鍵ストアの場所を指定する

鍵ペア検証用のSSHシステムを構築する

全体的な実現プロセス
ここに画像の説明を挿入

鍵ペア検証用のSSHシステムを構築
します。クライアントで鍵ペアの
ssh-keygenコマンドを作成します。
使用可能な暗号化アルゴリズム:RSA、ECDSA、またはDSA
。公開鍵ファイルをサーバーにアップロードします
(FTP、電子メール、SCP、HTTP ...)。 )
サーバーに公開キーテキストをインポートします。
公開キーテキストをターゲットユーザーの公開キーストアに追加します。
デフォルトの公開キーストアの場所:〜/ .ssh / authorized_keys
[root @ test01〜]#vim / etc / ssh / sshd_config
ここに画像の説明を挿入ここに画像の説明を挿入

[root@test01 ~]# systemctl restart sshd

[root@test02 ~]# useradd lisi
[root@test02 ~]# passwd lisi
[root@test02 ~]# su lisi
[lisi@test02 root]$ ssh-keygen -t ecdsa
Generating public/private ecdsa key pair.
Enter file in which to save the key (/home/lisi/.ssh/id_ecdsa): 
Created directory '/home/lisi/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/lisi/.ssh/id_ecdsa.
Your public key has been saved in /home/lisi/.ssh/id_ecdsa.pub.
The key fingerprint is:
SHA256:h1Nb+dtsaNr/+oDgDc9gbtKDX+63gas3cZ9yyxPdX30 lisi@test02
The key's randomart image is:
+---[ECDSA 256]---+
|                 |
|             .   |
|          . o    |
|         o o .   |
|        S B   . +|
|         O B.o.*E|
|        o * Bo*.X|
|         + +o*oBo|
|          o+=o*BB|
+----[SHA256]-----+
[lisi@test02 root]$ cd ~
[lisi@test02 ~]$ cd .ssh/
[lisi@test02 .ssh]$ ls -a
.  ..  id_ecdsa  id_ecdsa.pub
[lisi@test02 .ssh]$ ssh-copy-id -i id_ecdsa.pub [email protected]
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "id_ecdsa.pub"
The authenticity of host '20.0.0.41 (20.0.0.41)' can't be established.
ECDSA key fingerprint is SHA256:W+MleaejDosjJJV1F2noJPAGWA/d2qESydwosqTqWWw.
ECDSA key fingerprint is MD5:68:5f:ee:e5:76:ca:96:01:5d:d8:b9:1f:4b:5a:58:91.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
[email protected]'s password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '[email protected]'"
and check to make sure that only the key(s) you wanted were added.

[root@test01 ~]# cd /home/zhangsan
[root@test01 zhangsan]# ls -a
.  ..  .bash_history  .bash_logout  .bash_profile  .bashrc  .cache  .config  .mozilla  .ssh
[root@test01 zhangsan]# cd .ssh/
[root@test01 .ssh]# ls -a
.  ..  authorized_keys
[root@test01 .ssh]# cat authorized_keys 
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBDUz9pe7DeEX87424oxSLxGB7RCbr0KwA6mDMaq4oyuU0FfgeQ7J9+VusH1+UgPVAwvCtoLUT+W8xi12dvHtmdQ= lisi@test02
[root@test01 .ssh]# 

[lisi@test02 .ssh]$ ssh [email protected]
Enter passphrase for key '/home/lisi/.ssh/id_ecdsa': 
Last login: Mon Jul 13 11:48:11 2020
[zhangsan@test01 ~]$ 

パスワードなしのログインを設定する

[lisi@test02 .ssh]$ ssh-agent bash  //代理终端
[lisi@test02 .ssh]$ ssh-add  //添加免密密码
Enter passphrase for /home/lisi/.ssh/id_ecdsa: 
Identity added: /home/lisi/.ssh/id_ecdsa (/home/lisi/.ssh/id_ecdsa)

[lisi@test02 .ssh]$ ssh [email protected]
Last login: Mon Jul 13 12:10:36 2020 from 20.0.0.51
[zhangsan@test01 ~]$ 

SSHクライアントプログラムを使用する
sshコマンド-リモートセキュアログイン
scpコマンド-リモートセキュアコピー
sftpコマンド-セキュアFTPダウンロード

TCPラッパーの概要

保護の原則
ここに画像の説明を挿入
保護メカニズムの実現
方法1:tcpdプログラムを介して他のサービスプログラムをパッケージ化する
方法2:他のサービスプログラムがlibwrap.so。*を呼び出すリンクライブラリ
アクセス制御ポリシー構成ファイル
/etc/hosts.allow
/ etc / hosts.deny

アクセス制御ポリシーの設定
ポリシー形式
サービスリスト:クライアントアドレスリスト
サービスリスト
複数のサービスはコンマで区切られます。すべてはすべてのサービスを意味します
クライアントアドレスリスト
複数アドレスはコンマで区切られます。すべてはすべてのサービスを意味します
ワイルドカード*および?.benet.comなどの
192.168.1または192.168.1.0/255.255.255.0
エリアアドレスなどのネットワークセグメントアドレス

ポリシーアプリケーションの順序
最初にhosts.allowを確認し、一致が見つかった場合はアクセスを許可し、
hosts.denyを確認し、見つかった
場合はアクセスを拒否します。2つのファイルに一致するポリシーがない場合、デフォルトでアクセスが許可されます

おすすめ

転載: blog.csdn.net/weixin_46355881/article/details/107352853