1.リモートサービスの概念の説明
ssh | 安全なリモート接続 | 22 | インターネットサーバー | デフォルトのrootユーザーはリモートでログインできます |
---|---|---|---|---|
Telnet | リモート接続 | 23 | ネットワーク機器がコンピューター室のLANに接続されている | rootを使用してリモートでログインできない |
リモートサービスはリモート接続管理ホストを実現できます
リモートサービスはデータのリモートダウンロードと送信を実現できます
SSH telnetサービスを使用してリモート接続を実現
SSH:暗号化されたデータ転送方法(より高いセキュリティ、より複雑)インターネット接続経由のアクセスポート:22デフォルトでtelnet へのrootユーザーのリモート接続をサポート
:クリアテキスト転送方法(より低いセキュリティ、複雑)少ないアクセス)LAN接続を介したアクセスポート:23デフォルトでは、rootユーザーはリモート接続を禁止されています
Telnetサービス
Linuxシステムのtelnet-serverサービスはrootユーザーのログインをサポートせず、通常のユーザーとしてのみログインでき、その後にsuコマンドが続きます
Linuxシステムのssh @ root 172.16。ユーザーが追加されていない場合、1.41は現在のユーザーを表します
第二に、リモートサービス接続の原則
2.1 ssh接続図
2.2 SSH接続プロセス
クライアント:接続確立通信要求の送信
サーバー:キー情報の確認応答
クライアント:キー情報の確認の実行
サーバー:送信する公開キー情報の送信
クライアント:保存する公開キーの受信と確認情報の送信(〜/ .ssh / known_hosts)
サーバー:パスワード検証情報の送信(暗号化処理)
サーバー:パスワード情報の入力(暗号化処理)
データ接続が確立され、
データが送信されます(暗号化処理)
3、リモート接続
3.1パスワードに基づくリモート接続
手順: ①:SSH + IPアドレス ②:ユーザー名(ホスト名)を入力し たパスワード(対応するホスト名のパスワード)を入力します。③ 例えば: ①:SSH 10.0。0.8 ②:ルート ③:ABC123を
3.2キーに基づくリモート接続
3.2.1簡単な設定:
管理サーバー(m01-192.168.81.161):
ステップ1:キーペアを作成する
[root@m01 ~]# ssh-keygen -t dsa 生成公钥和私钥
[root@m01 ~]# ll ~/.ssh/id*
ステップ2:管理側が公開鍵を配布します(ここでは操作が必要です)
[root@m01 ~]# ssh-copy-id -i /root/.ssh/id_dsa.pub [email protected]
手順3:リモート接続テストを実施する(パスワード情報を入力せずに直接接続できます)
[root@m01 ~]# ssh [email protected] hostname
現在、2つの問題があります。1.複数のホストをバッチで管理する方法2.公開鍵をバッチで配布するスクリプトを作成する方法
スクリプトを作成する最も簡単な方法:ヒープコマンド
#!/ bin / bash in ip for 163 164 do ssh -copy- id -i / root /。ssh /id_dsa.pub root @ 192.168。81。$ ip 完了
しかし、まだ問題があります:
1、はい/いいえを確認する必要があります
2.パスワード情報を入力する必要がある
3.サービスポート番号が変更されました。公開鍵を配布するにはどうすればよいですか?
3.2.2公開鍵を配布するためのパスワード情報のインタラクティブなキーフリー入力を実現する
ステップ1:ダウンロードとソフトウェアsshpassインストール yumを インストール - Y-sshpass 第二段階:公開鍵を配布する自由なインタラクティブな方法の実施を命じる sshpass -p123456 SSH -copy- 言及ID以上。-i /ルート/ SSH / id_dsa.pubルート@ 192.168。81.163 サービスポート番号は、公開鍵のバッチを配布する方法、変更されました: sshpass -p123456 SSH -copy- 上記のid上記の。-i /ルート/ SSH @ /id_dsa.pubルート192.168。81.163 -p 52113 " -o StrictHostKeyChecking = NO "
3.2.3 公開鍵スクリプトのバッチ配布:
1.スクリプトと連携するホストアドレスファイルを準備します。
cat / server / scripts / ip_list.txt 192.168。81.163 192.168。81.164 192.168。81.165
2.公開鍵をバッチで配布するためのスクリプト:
#猫の distribute_public_key。sh #!/ bin / bash for ip in $(cat / server / scripts / ip_list.txt) do sshpass -p654321 ssh -copy- id -i / root /。ssh /id_rsa.pub $ ip -o StrictHostKeyChecking = no&> / dev / null if [$?-eq 0 ] then echo " to $ ip distribute_key " echo " public key distribution success " echo "" else echo "to $ ip distribute_key " echo " 公開鍵の配布に失敗しました" echo " " fi 完了
3.公開鍵チェックスクリプト(バッチ管理スクリプト)-シリアルシリアル管理を配布します。
[ルート@ M01スクリプト]#猫の check_pub_key。SH
#!/ binに/ bashの
CMDは $ = 1
のための IPをして $(猫 /サーバ/スクリプト/ ip_list.txt)
か
エコーを " ====================ホスト$ ip check ==================== "
ssh $ ip $ CMD
echo " "
完了
4、SSHサービス構成ファイルの分析
の/ etc / SSH / sshd_configの ポート22 --- (コメント22のデフォルト状態のデフォルトポート)開始ポート情報サービス指定 ListenAddressの0.0。0.0 のネットワーク接続を許可する---を通じてカード****** PS:リスンアドレスローカルネットワークカード上のアドレス PermitRootLogin no である必要があります -root ユーザーがリモートで接続できるようにするかどうか、 PermitEmptyPasswords no に変更することをお勧めします no --- リモートユーザーが空のパスワードでログインできるようにするかどうか、 PasswordAuthentication をnoに変更することをお勧めします -サポートするかどうかパスワードを使用して GSSAPIAuthentication にリモートで接続します -GSSAPI 認証モードをオフにするかどうか、使用しない場合は UseDNS noをオフ にします-DNS逆解決をオンにするかどうか、閉じることをお勧めします
第5に、エンタープライズ環境のバッチ配布公開鍵の演習
5.1企業環境
m01 root linux @ 123 sshサービスポート22 web01 root linux @ 123 sshサービスポート65531 web02 root linux @ 123 sshサービスポート65532 nfs01 root linux @ 123 sshサービスポート65533 backup root linux @ 123 sshサービスポート65534
5.2ホスト情報ファイルを書き込む
cat / server / scripts / ip_list.txt 192.168。81.162:@ linxu 123:65531 192.168。81.163:@ linxu 123:65532 192.168。81.164:@ linxu 123:65533 192.168。81.165:linxu @ 123:65534
5.3バッチ配布用の公開鍵ファイルの作成
#猫の distribute_public_key。sh #!/ binに/ bashの ためのホストで $(猫 /サーバ/スクリプト/ ip_list.txt) DO HOST_IP = $(エコー $ホスト| awkの -F " :" ' {$ 1印刷} ' ) host_pass = $(エコー $ host | awk -F " :" ' {print $ 2} ' ) host_port = $(echo $ host | awk-F " :" ' {print $ 3} ' ) sshpass -p $ host_pass ssh -copy- id -i / root /。ssh /id_rsa.pub $ host_ip -o StrictHostKeyChecking = no -p $ host_port&> / dev / null if [$?-eq 0 ] 次に echo " to $ host_ip distribute_key " echo " public key distribute ok " echo "" else echo " to $ host_ip distribute_key " echo " エコー "" fi 完了
6、SSHリモートサービス防止侵入プログラム
1.キーを使用してログインし、パスワードなしでVPN /要塞マシンにログインします 。2.アレイ方式:SSHのセキュリティ問題を解決し ます。a。ファイアウォールがSSHを閉じ、ソースIPの制限(LAN、信頼されたパブリックネットワーク)を指定します。b。SSHを 開き、ローカルのみをリッスンします。ネットワークIP(ListenAddress 192.168.81.162) 3.サーバーに外部ネットワークIPを与えないようにします 。4.最小化(ソフトウェアのインストール-許可) 5.システムの重要なファイルまたはコマンドのフィンガープリントを作成します/ etc / profile /etc/rc.local
/ etc / passwd md5sum 11110000aaaabbbbモニタリング
inotify / bin モニタリング
6、重要なファイルはロックされていますchattr + i + a
リモート送信に関する7つの一般的な問題
while read lineを使用してファイル情報を読み取ると、ループが突然中断される 分析ポイント01:sshコマンドが使用されていない場合のループは正しい 分析ポイント02:sshコマンドに標準入力がある限り、ループ はポイント03を正しく分析する:ループモードを変更する適切に循環 背景にsshコマンド、正しくループ:ポイント04を分析し 、ファイルを読むためにcatコマンドを使用しては、すべての情報がメモリバッファに入れられます 、時間が、読み取りバッファは、情報の各ラインを読みながら、通常の行ずつ読まれ ながらライン+読んで SSHを 、それが空のバッファ読み込みます