Linuxリモートアクセスおよび制御(SSH、TCP Wrappersアクセス制御)

1.SSHリモート管理

1.SSHの定義

  • SSH(Secure Shell)は、主に文字インターフェイスのリモートログインおよびリモートコピー機能を実装するために使用されるセキュリティで保護されたチャネルプロトコルです。
  • SSHプロトコルは、ユーザーがログインするときに入力されたユーザーパスワードを含め、2者間のデータ送信を暗号化します。したがって、SSHプロトコルのセキュリティは非常に優れています。

2.SSHデータ送信の利点

  • データ送信は情報漏えいを防ぐために暗号化されています
  • データ転送が圧縮されるため、転送速度が上がる可能性があります)

3.SSHクライアントとサーバー

  • SSHクライアント:Putty、Xshell、CRT
  • SSHサーバー:OpenSSH

2、OpenSSH

  • OpenSSHは、SSHプロトコルを実装するオープンソースソフトウェアプロジェクトであり、さまざまなUNIXおよびLinuxオペレーティングシステムに適しています。
  • CentOS 7システムは、デフォルトでopenssh関連のソフトウェアパッケージをインストールし、起動後のセルフスタートアップとしてsshdサービスを追加しました。(opensshのサービス名はsshdです)
  • 「systemctlstartsshd」コマンドを実行して、sshdサービスを開始します
  • sshdサービスはデフォルトでTCPポート22を使用します
  • sshdサービスのデフォルトの設定ファイルは/ etc / ssh / sshd_configです。
  • ssh_configとsshd_configはどちらもsshサーバーの構成ファイルです。2つの違いは、前者がクライアントの構成ファイルであり、後者がサーバーの構成ファイルであるということです。
    ここに画像の説明を挿入

1.OpenSSHサーバー構成を構成します

sshd_config配置文件的常用选项设置
vim /etc/ssh/sshd_config
Port 22 								#监听端口为 22
ListenAddress 0.0.0.0 					#监听地址为任意网段,也可以指定OpenSSH服务器的具体IP

LoginGraceTime 2m 						#登录验证时间为 2 分钟
PermitRootLogin no 						#禁止 root 用户登录
MaxAuthTries 6 							#最大重试次数为 6

PermitEmptyPasswords no 				#禁止空密码用户登录
UseDNS no 								#禁用 DNS 反向解析,以提高服务器的响应速度

ここに画像の説明を挿入
ここに画像の説明を挿入

ここに画像の説明を挿入

只允许用户登录,且其中某用户仅能够从指定IP地址进行远程登录
例:AllowUsers zhangsan lisi wangwu@61.23.24.25             #多个用户以空格分隔

禁用某些用户登录,用法与AllowUsers类似(注意不要同时使用)
例:DenyUsers zhangsan

ここに画像の説明を挿入

ここに画像の説明を挿入ここに画像の説明を挿入ここに画像の説明を挿入
ここに画像の説明を挿入

2.scpリモートレプリケーション

下行复制:将远程主机的/etc/passwd文件复制到本机
scp root@192.168.172.20:/etc/passwd /root/passwd10.txt

上行复制:将本机的/etc/ssh目录复制到远程主机
scp -r /etc/passwd/ root@192.168.172.20:/opt

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

3.sftpセキュアFTP

暗号化/復号化技術を使用しているため、伝送効率は通常のFTPよりも低くなりますが、セキュリティは高くなります。動作構文sftpはftpとほとんど同じです。

sftp root@192.168.184.20
sftp> ls
sftp> get 文件名		#下载文件到ftp目录
sftp> put 文件名		#上传文件到ftp目录
sftp> quit		        #退出

実験のダウンロード実験の
ここに画像の説明を挿入
ここに画像の説明を挿入
アップロード
ここに画像の説明を挿入
ここに画像の説明を挿入

sshdサービスの3つ、2つの認証方法

1.パスワードの確認

サーバーのローカルシステムユーザーのログイン名とパスワードを確認します。シンプルですが、ブルートフォース攻撃の可能性があります

2.キーペアの検証

検証に合格するには、一致するキー情報が必要です。通常、鍵ファイルのペア(公開鍵、秘密鍵)が最初にクライアントで作成され、次に公開鍵ファイルがサーバー上の指定された場所に配置されます。リモートでログインする場合、システムは公開鍵と秘密鍵を使用して暗号化/復号化の関連付けを確認します。セキュリティを強化し、インタラクティブログインを回避できます。

パスワード検証とキーペア検証の両方が有効になっている場合、サーバーはキーペア検証を優先的に使用します。検証方法は、実際の状況に応じて設定できます。

vim /etc/ssh/sshd_config
PasswordAuthentication yes 						#启用密码验证
PubkeyAuthentication yes 						#启用密钥对验证
AuthorizedKeysFile .ssh/authorized_keys 		#指定公钥库文件

ここに画像の説明を挿入

クライアントでキーペアを作成します

ssh-keygenツールを使用して、現在のユーザーのキーペアファイルを作成します。使用可能な暗号化アルゴリズムは、RSA、ECDSA、またはDSAなどです(ssh-keygenコマンドの「-t」オプションを使用してアルゴリズムタイプを指定します)。

useradd admin
echo "123123" | passwd --stdin admin
su - admin
ssh-keygen -t ecdsa
Generating public/private ecdsa key pair.
Enter file in which to save the key (/home/admin/.ssh/id_ecdsa): 	#指定私钥位置,直接回车使用默认位置
Created directory '/home/admin/.ssh'.		    #生成的私钥、公钥文件默认存放在宿主目录中的隐藏目录.ssh/下
Enter passphrase (empty for no passphrase): 	#设置私钥的密码
Enter same passphrase again: 					#确认输入

ls -l .ssh/id_ecdsa*#id_ecdsa是私钥文件,权限默认为600;id_ecdsa.pub是公钥文件,用来提供给 SSH 服务器

ここに画像の説明を挿入
ここに画像の説明を挿入

公開鍵ファイルをサーバーにアップロードします

#このメソッドは、サーバーの/home/zhangsan/.ssh/ディレクトリに公開鍵テキストを直接インポートできます

cd ~/.ssh/
ssh-copy-id -i id_ecdsa.pub zhangsan@192.168.80.10

ここに画像の説明を挿入

クライアントでキーペア認証を使用する

ここに画像の説明を挿入

インタラクティブログインを実現するために、クライアントでsshプロキシ機能を設定します

ssh-agent bash
ssh-add
Enter passphrase for /home/admin/.ssh/id_ecdsa: #输入私钥的密码

ssh zhangsan@192.168.80.10

ここに画像の説明を挿入

4、TCPWrappersのアクセス制御

1.TCPラッパー

TCPサービスプログラムは、TCPサービスプログラムのポートをリッスンするために「ラップ」され、セキュリティ検出プロセスが追加されます。外部接続要求は、最初にこのセキュリティ検出層を通過する必要があり、取得後に実際のサービスプログラムにアクセスできます。許可。
ほとんどのLinuxディストリビューションでは、TCPラッパーがデフォルトで提供されています。rpm -q tcp_wrappers

2.TCPラッパー保護メカニズムの2つの実装

  • 1. tcpdプログラムを直接使用して他のサービスプログラムを保護し、tcpdプログラムを実行する必要があります。
  • ⒉.libwrap.so。*リンクライブラリは、tcpdプログラムを実行せずに他のネットワークサービスプログラムによって呼び出されます。この方法は、より広く使用され、より効率的です。

3. lddコマンドを使用して、プログラムのlibwrap.so。*リンクライブラリを表示します。

ldd $ (which ssh vsftpd)

4.TCPラッパーのアクセス戦略

  • TCPラッパーメカニズムの保護オブジェクトはさまざまなネットワークサービスプログラムであり、アクセス制御はアクセスサービスのクライアントアドレスで実行されます。
  • 対応する2つのポリシーファイルは/etc/hosts.allowと/etc/hosts.denyで、それぞれ許可ポリシーと拒否ポリシーを設定するために使用されます。
格式:
<服务程序列表>:<客户端地址列表>

(1)サービスプログラムリスト
ALL:すべてのサービスを表します。
単一のサービスプログラム:「vsftpd」など。
複数のサービスプログラムのリスト:「vsftpd、sshd」など。

(2)クライアントアドレスリスト
ALL:任意のクライアントアドレスを表します。
LOCAL:ローカルアドレスを表します。
複数のアドレスはコンマで区切ります。
ワイルドカード「?」と「*」を使用できます。
「*」は任意の長さの文字を表します。「?」は
、192.168.163。や192.168.163.0 /255.255などの1文字のネットワークセグメントアドレスのみを表します。 255.0
エリアアドレス。たとえば、「。benet.com」は、bdqn.comドメイン内のすべてのホストと一致します。

5.TCPラッパーメカニズムの基本原則

;最初に一致するポリシーが発見された場合、アクセスが許可されている、/etc/hosts.allowのファイルをチェックし
、そうでない場合は、一致するポリシーが発見された場合は、アクセスが拒否され、/etc/hosts.denyをファイルをチェックしていき、
あなたの場合上記の2つのファイルの両方を確認してください。一致するポリシーが見つからない場合、アクセスが許可されます。

「すべて許可、個人を拒否」
は、対応する拒否ポリシーを/etc/hosts.denyファイルに追加するだけです。

「個別に許可、すべて拒否」
/etc/hosts.allowに許可ポリシーを追加することに加えて、/ etc / hosts.denyファイルに「ALL:ALL」の拒否ポリシーを設定する必要もあります。


IPアドレスが12.0.0.1のホストまたは192.168.80.0/24ネットワークセグメント上のホストからのみsshdサービスにアクセスする場合、他のアドレスは拒否されます。

vi /etc/hosts.allow
sshd:12.0.0.1,192.168.80.*

vi /etc/hosts.deny
sshd:ALL

おすすめ

転載: blog.csdn.net/IHBOS/article/details/114034132