SSHリモート管理とTCPラッパーアクセス制御
SSHリモート管理
➤SSHの定義
SSH(Secure Shell)は、セキュリティで保護されたチャネルプロトコルであり、主に文字インターフェイスのリモートログインおよびリモートコピー機能を実装するために使用されます。
SSHプロトコルは、ユーザーがログインするときに入力されたユーザーパスワードを含め、通信当事者間のデータ送信を暗号化します。したがって、SSHプロトコルのセキュリティは良好です。
➤SSHの利点
①データ伝送を暗号化することで情報漏えいを防止
②データ伝送を圧縮し、伝送速度を上げることができる
➤SSH構成ファイル
①sshdサービスのデフォルトの設定ファイルは/ etc / ssh / sshd_configです②ssh_config
とsshd_configは
どちらもsshサーバーの設定ファイルです。両者の違いは、ssh_configがクライアントの設定ファイルであり、sshd_configが設定であるということです。サーバーのファイル。
➤SSHクライアントとサーバー
1. SSHクライアント:Putty、Xshell、CRT
2.
SSHサーバー:OpenSSH 3. OpenSSHは、SSHプロトコルを実装するオープンソースのソフトウェアプロジェクトであり、さまざまなUNIXおよびLinuxオペレーティングシステムに適しています。
4. CentOS 7システムは、デフォルトでopenssh関連のソフトウェアパッケージをインストールし、起動自動起動としてsshdサービスを追加しました。
OpenSSHサーバーを構成する
➤sshd_config構成ファイルの一般的なオプション設定:vim / etc / ssh / sshd_config
ポート22
#リスニングポートは22 ListenAddress 0.0.0.0
#リスニングアドレスは任意のネットワークセグメントであり、OpenSSHサーバーの特定のIPを指定することもできますLoginGraceTime 2m#ログイン検証時間は2分です
PermitRootLoginいいえ
#rootユーザーがMaxAuthTriesにログインすることを禁止します6 #6
回のPermitEmptyPasswordsの最大再試行回数いいえ#空のパスワードを持つユーザーのログインを
禁止します。UseDNSいいえ#サーバーの応答速度を向上させるためにDNS逆解析を無効にします
➤ホワイトリストを構成する
zhangsan、lisi、wangwuユーザーのみがログインを許可され、wangwuユーザーはIPアドレス192.168.78.22のホストからのみリモートでログインできます
。AllowUserszhangsanlisi [email protected]#複数のユーザーはスペースで区切られます
➤テスト効果
一部のユーザーのログインを禁止します。使用法はAllowUsersと同様です(同時に使用しないように注意してください)
DenyUsers wangwu
注:wangwuアカウントでログインするIPアドレスを禁止します
テスト効果:
➤scpリモートレプリケーション
ダウンリンクコピー:リモートホストの/ etc / passwdファイルをローカルマシンにコピーし
ます[email protected]:/ var / log / messages / root
アップリンクコピー:ローカルマシンの/root/cc.txtディレクトリをにコピーしますリモートホスト/ルート
scpcc.txt [email protected]:/ root
➤sftpファイル転送
暗号化/復号化技術を使用しているため、伝送効率は通常のFTPよりも低くなりますが、セキュリティは高くなります。動作構文sftpはftpとほとんど同じです。
sftp [email protected]
sftp> ls
sftp> get file name#download file to ftp directory
sftp> put file name#upload file to ftp directory
sftp> quit #quit
ダウンロード:
アップロード:
➤sshdサービスはキーログインをサポートします
sshdサービスは、次の2つの認証方法をサポートしてい
ます。1。パスワード認証
サーバー内のローカルシステムユーザーのログイン名とパスワードを確認します。単純ですが、力ずくでクラックされる可能性があります。システムの脆弱なパスワード検出の詳細については、前のブログを参照してください
。2。キーペアの検証検証に
合格するには、一致するキー情報を提供する必要があります。通常、キーファイルのペア(公開キー、秘密キー)が最初にクライアントで作成され、次に公開キーファイルがサーバー上の指定された場所に配置されます。リモートでログインする場合、システムは公開鍵と秘密鍵を使用して暗号化/復号化の関連付けを確認します。セキュリティを強化し、インタラクティブログインを回避できます。
パスワード検証とキーペア検証の両方が有効になっている場合、サーバーはキーペア検証を優先的に使用します。検証方法は、実際の状況に応じて設定できます。
vim / etc / ssh / sshd_config#メインサーバー構成ファイルを編集
するPasswordAuthentication yes
#パスワード認証を有効にするPubkeyAuthentication yes#キーペア認証を有効にする
AuthorizedKeysFile .ssh / authorized_keys#公開鍵ライブラリファイルを指定する
➤1。クライアントでキーペアを作成します
ssh-keygenツールを使用して、現在のユーザーのキーペアファイルを作成します。使用可能な暗号化アルゴリズムは、RSA、ECDSA、またはDSAなどです(ssh-keygenコマンドの「-t」オプションを使用してアルゴリズムタイプを指定します)。
ssh-keygen -t ecdsa
公開/秘密ecdsaキーペアの生成。
キーを保存するファイルを入力します(/home/admin/.ssh/id_ecdsa):#秘密キーの場所を指定し、Enterキーを押してデフォルトの場所を使用します
作成されたディレクトリ '/ home / admin / .ssh '。#生成された秘密鍵ファイルと公開鍵ファイルは、デフォルトでホストディレクトリの非表示ディレクトリに保存されます。ssh/
パスフレーズを入力(パスフレーズがない場合は空):#秘密鍵のパスワードを設定
同じパスフレーズを入力もう一度:#入力を確認
注:ls -l .ssh / id_ecdsa *#id_ecdsaは秘密鍵ファイルであり、デフォルトのアクセス許可は600です。id_ecdsa.pubは公開鍵ファイルであり、SSHサーバーに提供するために使用されます。
➤2。公開鍵ファイルを表示する
➤3...クライアントの公開鍵をサーバーの/root/.sshにコピーします
方法1:cd〜
/ .ssh /
ssh-copy-id -i id_ecdsa.pub [email protected]
方法2:
サーバーを入力します
mkdir /root/.ssh
cat /root/id_ecdsa.pub >> / root / .ssh / authorized_keys
➤4。秘密鍵ペアを使用して、クライアントへのログインを確認します
➤5。インタラクティブログインを実現するために、クライアントでsshプロキシ機能を設定します
ssh-agent bash
ssh-add
/home/admin/.ssh/id_ecdsaのパスフレーズを入力してください:#パスワードを
入力せずにログインするための秘密鍵のパスワードを入力してください
➤補足
scp〜 / .ssh / id_ecdsa.pub [email protected]:/ root#ローカル〜/ .sshディレクトリの公開キーを
サーバーの/ rootディレクトリにアップロードしますmkdir / root / .ssh #サーバー/ルート上
/.sshディレクトリを作成しますcat / root / id_ecdsa.pub >> /root/.ssh/authorized_keys#サーバー
catの/root/.ssh/ディレクトリにあるauthorzed_keysファイルに/ rootディレクトリの公開鍵ファイルを追加します/root/.ssh/authorized_keys#サーバー上の/home/zhangsan/.ssh/authorized_keysファイルを表示します
➤TCPラッパーのアクセス制御
TCP Wrappersは、TCPサービスプログラムを「ラップ」し、TCPサービスプログラムのポートを監視して、セキュリティ検出プロセスを追加します。外部接続要求は、最初にこのセキュリティ検出層を通過してから、実際のサービスにアクセスできる必要があります。許可を得た後のプログラム。
ほとんどのLinuxディストリビューションでは、TCPWrappersはデフォルトで提供される機能です。rpm -q tcp_wrappers
1.TCPラッパー保護メカニズムの2つの実装方法
➤他のサービスプログラムを保護するためにtcpdプログラムを直接使用し、tcpdプログラムを実行する必要があります。
➤libwrap.so。リンクライブラリは、tcpdプログラムを実行せずに他のネットワークサービスプログラムによって呼び出されます。この方法は、より広く使用され、より効率的です。
2. lddコマンドを使用して、プログラムのlibwrap.so。*リンクライブラリを表示します。
➤ldd$(ssh vsftpd)
➤TCPWrappersアクセスポリシー
➤TCPWrappersメカニズムは、さまざまなネットワークサービスプログラムを保護し、アクセスサービスのクライアントアドレスに対してアクセス制御を実行します。
➤対応する2つのポリシーファイルは/etc/hosts.allowと/etc/hosts.denyで、それぞれ許可ポリシーと拒否ポリシーを設定するために使用されます。
3.フォーマット:
➤<サービスプログラムリスト>:<クライアントアドレスリスト>
(1)サービスプログラムリスト
ALL:すべてのサービスを表します。
単一のサービスプログラム:「vsftpd」など。
複数のサービスプログラムのリスト:「vsftpd、sshd」など。
(2)クライアントアドレスリスト
ALL:任意のクライアントアドレスを表します。
LOCAL:ローカルアドレスを表します。
複数のアドレスはコンマで区切ります
ワイルドカード「*」および「?」を使用できます。前者は任意の長さの文字を表し、後者は
192.168.78。または192.168.78.0 /255.255.255.0などの1文字のネットワークセグメントアドレスのみを表します。
4. TCP Wrappersメカニズムの基本原則:
最初に/etc/hosts.allowファイルを確認します。一致するポリシーが見つかった場合はアクセスが許可されます。
それ以外の場合は、引き続き/etc/hosts.denyファイルを確認します。一致するポリシーが見つかった
場合は、アクセスが拒否されます。上記の2つのファイルの両方一致するポリシーが見つからない場合、アクセスが許可されます。
「すべて許可、個人を拒否」
は、対応する拒否ポリシーを/etc/hosts.denyファイルに追加するだけです。
「個別に許可、すべて拒否」
/etc/hosts.allowに許可ポリシーを追加することに加えて、/ etc / hosts.denyファイルに「ALL:ALL」拒否ポリシーを設定する必要もあります。
次のような小型の実用的な操作
zhangsan、リージ、wangwu、ルート含むホワイトリスト構成ファイル/etc/ssh/sshd.config、
192.168.78.22:構成ファイル/etc/hosts.allowを、sshdの
設定ファイル/etc/hosts.denyを、SSHDを:すべて
192.168.78.22クライアントテスト結果:
192.168.78.33クライアントテスト結果: