国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

ホームページ システムチュートリアル Linux SFTPポート転送:抑制された機能を有効にします

SFTPポート転送:抑制された機能を有効にします

Mar 17, 2025 am 09:43 AM

SFTPポート転送:抑制された機能を有効にします

導(dǎo)入

SSHプロトコルは、3つの主要なカテゴリのリモートサーバーアクティビティをサポートしています。a)コマンド実行(ログインシェルを含む)、b)ネットワーク転送と操作、およびc)ファイル転送。

OpenSSHメンテナーは、SFTPとSCPにはポート転送の法的目的がないことを決定しました(-Lおよび-Rオプションを介して)。これらのユーティリティを使用したファイル転送中、これらの機能を明示的に無効にするフラグは、Child SSH実行可能ファイルに無條件に渡されます。

一部のユーザーは、実際にこれらの機能を必要とする場合があります。明らかなサブセットは、この機能がパブリックSFTPサーバーで明示的に無効になっていることを確認(rèn)することをタスクである侵入テスターです。

SFTPバイナリ自體の文字列を変更するか、コマンドラインを簡単に編集できるシェルをリダイレクトすることにより、これらの抑制された機能を有効にする2つの手法を次に示します。プラットフォームの機能に応じて、この目標(biāo)を達成するためにいずれかのテクノロジーが必要になる場合があります。

詳細(xì)を抑制します

まず、関心のある実行プロセスを見つけることが重要です。以下のシェル関數(shù)は、シェルパターンに一致するPIDを表示します(これは正規(guī)表現(xiàn)ではないことに注意してください)。これは、Debian Dash(および他のほとんどの一般的なシェル)の下で実行され、BSDのPSオプションに依存しています。

 <code>pps () { local a= b= c= IFS=$'\r'; ps ax | while read -ra do [ "$b" ] || c=1; for b; do case "$a" in *"$b"*) c=1;; esac; done; [ "$c" ] && printf '%s\n' "$a" && c=; done; }</code>

従來のSFTPセッションを開始して、それに関連するプロセスを確認(rèn)してください。

 <code>$ id uid=1001(aturing) gid=1001(aturing) groups=1001(aturing)... $ sftp aturing@sftp.victimandum.com aturing@sftp.victimandum.com's password: Connected to sftp.victimandum.com. sftp></code>

上記のローカルUNIXユーザーは、リモートSFTPサーバーで同じユーザー名アカウントを持っていると想定しています。

セッションが実行された後、ユーザー名のローカルプロセス検索でSFTPによって生成された子SSHプロセスが表示されます。

 <code>$ pps aturing PID TTY STAT TIME COMMAND 9666 pts/0 S 0:00 sftp aturing@sftp.victimandum.com 9667 pts/0 S 0:00 /usr/bin/ssh -oForwardX11 no -oPermitLocalCommand no -oClearAllForwardings yes -oForwardAgent no -l aturing -s -- sftp.victimandum.com sftp</code>

clearallforwardings yes parameter上記のパラメーターは、それを破るための行動を取ることなく、転送の試みを抑制します。

-lおよび-rポート転送フラグは、SFTPコマンドラインの有効なオプションとして存在しませんが、-sオプションを使用してそれらを明示的にトリガーしてカスタムSSHハンドラー、この場合はメールサーバーを指定できます。

 <code>$ cat portssh #!/bin/sh exec ssh -L2525:smtp.victimandum.com:25 "$@"</code>

転送抑制が整っていない場合、このSFTP呼び出しは転送接続を確立するのに十分です。

 <code>$ sftp -S ./portssh -oClearAllForwardings\ no aturing@sftp.victimandum.com aturing@sftp.victimandum.com's password: Connected to sftp.victimandum.com. sftp></code>

これで、子供のSSHプロセスで転送の試みを見ることができます。

 <code>$ pps aturing PID TTY STAT TIME COMMAND 9897 pts/0 S 0:00 sftp -S ./portssh -oClearAllForwardings no aturing@sftp.victimandum.com 9898 pts/0 S 0:00 ssh -L2525:smtp.victimandum.com:25 -oForwardX11 no -oPermitLocalCommand no -oClearAllForwardings yes -o ClearAllForwardings no -oForwardAgent no -l aturing -s -- sftp.victimandum.com sftp</code>

ただし、ローカル転送ポートを介してリモートメールサーバーに連絡(luò)しようとすると、明示的なオーバーライドのために失敗しました。

 <code>$ nc localhost 2525 $</code>

この無條件の抑制は、ソースコードで表示されます。

 <code>$ sed -n /X11/,/Forwardings/p openssh-8.7p1/sftp.c addargs(&args, "-oForwardX11 no"); addargs(&args, "-oPermitLocalCommand no"); addargs(&args, "-oClearAllForwardings yes");</code>

これらの靜的文字列は、コンパイルされたバイナリファイルにも表示されます。

 <code>$ strings /usr/bin/sftp | grep [-]o[CFP] -oForwardX11 no -oPermitLocalCommand no -oClearAllForwardings yes -oForwardAgent no -oPort %d</code>

最後に、文書は、この抑制は意図的であり、合理的な理由を示していることを明確に示しています。

 <code>$ man ssh_config | sed -n /ClearAllForwardings/,/default/p ClearAllForwardings Specifies that all local, remote, and dynamic port forwardings specified in the configuration files or on the command line be cleared. This option is primarily useful when used from the ssh(1) command line to clear port forwardings set in configura‐ tion files, and is automatically set by scp(1) and sftp(1). The argument must be yes or no (the default).</code>

コンパイルされた文字列を変更します

デフォルトのClearAllForwardings Yes Configurationを無効にしたい場合は、SEDを使用してSFTPバイナリの文字列を直接編集することです(プラットフォームのSEDがバイナリセーフであると仮定):

 <code>$ sed 's/AllForwardings yes/AllForwardings no /' sftp.noclearforward</code>

この直接的な変更は、新しいバイナリファイルをコンパイルするよりもはるかに簡単です。

文字列が正常に変更されたことを確認(rèn)できます。

 <code>$ strings ./sftp.noclearforward | grep [-]o[CFP] -oForwardX11 no -oPermitLocalCommand no -oClearAllForwardings no -oForwardAgent no -oPort %d</code>

修正されたSFTPのコンテンツとチェックサムは異なりますが、既存のLinux BuildID SHA1は同じままです(ただし、編集されたSFTPを使用する場合はサポートチケットを送信しません):

 <code>$ file /usr/bin/sftp ./sftp.noclearforward /usr/bin/sftp: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=d7e77e24d5fac0fdc89e62a4c9c656091f2c4a33, for GNU/Linux 3.2.0, stripped ./sftp.noclearforward: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=d7e77e24d5fac0fdc89e62a4c9c656091f2c4a33, for GNU/Linux 3.2.0, stripped $ sha1sum /usr/bin/sftp ./sftp.noclearforward d8bdaf0b4642b9c324f9c2e0aeee2d9578fbe383 /usr/bin/sftp b12dda8ecfd7bd2847919b5531aea7c03364c123 ./sftp.noclearforward $ sha256sum /usr/bin/sftp ./sftp.noclearforward 986eecdfc654c9b3ff3fd0dce59690d47cf56be96a4b98a04a3682aef95d3f52 /usr/bin/sftp c8f99ce33fc129250c11dc6dbb8a01112e01124e470a92d0acefb955fd17d670 ./sftp.noclearforward</code>

変更されたSFTPバイナリを呼び出して、ポート転送を有効にすることができます。

 <code>$ chmod 755 sftp.noclearforward $ ./sftp.noclearforward -S ./portssh aturing@sftp.victimandum.com aturing@sftp.victimandum.com's password: Connected to sftp.victimandum.com. sftp></code>

これで、子プロセスで変更された設(shè)定を確認(rèn)できます。

 <code>$ pps aturing PID TTY STAT TIME COMMAND 9991 pts/0 S 0:00 ./sftp.noclearforward -S ./portssh aturing@sftp.victimandum.com 9992 pts/0 S 0:00 ssh -L2525:smtp.victimandum.com:25 -oForwardX11 no -oPermitLocalCommand no -oClearAllForwardings no -oForwardAgent no -l aturing -s -- sftp.victimandum.com sftp</code>

この機能は有効になり、リモートサーバーで実行され、別のシェルで接続を確認(rèn)できます。

 <code>$ nc localhost 2525 220 smtp.victimandum.com Microsoft ESMTP MAIL Service, Version: 1.2.3456.78901 ready at Sun, 1 Jan 2023 01:23:45 -0100 ^C</code>

サーバーで転送が無効になっている場合、接続が試行されたときにこのステータスを示す通知を受け取ります。

 <code>channel 3: open failed: administratively prohibited: open failed</code>

信頼されていないアカウントを割り當(dāng)てたSFTP管理者は、サーバー構(gòu)成が転送とコマンドの実行を明示的に無効にすることを確認(rèn)する可能性が高いはずです。

Posixシェルを超えて

Dash and Posix標(biāo)準(zhǔn)はセットを提供しますが、コマンドラインパラメーターをリセットする方法として、より高度な機能がBashとKSH93で提供されています。

 <code>$ cat ynargs #!/bin/bash echo "${@//yes/no}"</code>

クイックテストにより、編集が成功することが確認(rèn)されます。

 <code>$ ./ynargs -oForwardX11 no -oPermitLocalCommand yes -oClearAllForwardings yes -oForwardAgent no -oForwardX11 no -oPermitLocalCommand no -oClearAllForwardings no -oForwardAgent no</code>

上記の$ {@// .../...}は有効なPOSIXではなく、PDKSHから派生したダッシュまたはシェル(MKSH、OKSH)で実行できないことに注意してください。多くのプラットフォームは、この機能を使用してシェルをバンドルしません(AndroidやOpenBSDなど、制限されたプラットフォームの場合、バイナリ編集手法は代替シェルをインストールするよりも直接的です。

強力なシェルでこの機能を活用するために、ディレクトリを作成し、その中にSSHラッパーを作成して問題設(shè)定をクリアします。

 <code>$ cat ~/switcharoo/ssh #!/bin/bash exec /usr/bin/ssh "${@//yes/no}"</code>

次に、システムSSHの前にディレクトリを$パスで設(shè)定します。

 <code>$ export PATH=~/switcharoo:$PATH $ which ssh ~/switcharoo/ssh</code>

次に、この変更された環(huán)境でシステムSFTPを呼び出します。

 <code>$ /usr/bin/sftp -S ./portssh aturing@sftp.victimandum.com aturing@sftp.victimandum.com's password: Connected to sftp.victimandum.com. sftp></code>

シェルが問題のパラメーターをリセットすることを観察しました。

 <code>$ pps aturing PID TTY STAT TIME COMMAND 10058 pts/0 S 0:00 /usr/bin/sftp -S ./portssh aturing@sftp.victimandum.com 10059 pts/0 S 0:00 /usr/bin/ssh -L2525:smtp.victimandum.com:25 -oForwardX11 no -oPermitLocalCommand no -oClearAllForwardings no -oForwardAgent no -l aturing -s -- sftp.victimandum.com sftp</code>

転送ポートへのローカル接続を再確認(rèn)しました。

 <code>$ nc localhost 2525 220 smtp.victimandum.com Microsoft ESMTP MAIL Service, Version: 1.2.3456.78901 ready at Sun, 1 Jan 2023 01:23:45 -0100 ^C</code>

最終的なデモとして、次のスクリプトを使用して完全なSMTP交換を?qū)g行できます。

 <code>$ cat awkmail #!/bin/gawk -f BEGIN { smtp="/inet/tcp/0/localhost/2525"; ORS="\r\n"; r=ARGV[1]; s=ARGV[2]; sbj=ARGV[3]; # /bin/awkmail to from subj 0) print |& smtp print "." |& smtp; smtp |& getline j; print j print "quit" |& smtp; smtp |& getline j; print j close(smtp) } # /inet/protocol/local-port/remote-host/remote-port</code>

このスクリプトを使用して、ターゲットSMTPサーバーがアクセスできるリモートの受信者に獨自のメールを送信できます。

 <code>$ ./awkmail jatanasoff@victimandum.com aturning@localhost awkmail Queued mail for delivery</code>

高度に制御された環(huán)境では、これらの機能の存在は最適ではありません。

サーバーの制限

SFTP管理者は、ユーザーがサーバーの助けを借りて任意のTCP接続を行うことを許可しないことを理解できます。このアクティビティを制限することは、慎重なセキュリティ設(shè)定です。

一般的な制限構(gòu)成は、信頼できないSFTPユーザーをグループに追加し、SSHD_CONFIGでこのグループのアクティビティを制約することです。

 <code>Match Group sftponly ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no</code>

この推奨される構(gòu)成は、通常、すべての転送の試みを防ぐのに十分です。

disableforwardingを追加することをお勧めします:

 <code>$ man sshd_config | sed -n /DisableForwarding/,/configurations/p DisableForwarding Disables all forwarding features, including X11, ssh-agent(1), TCP and StreamLocal. This option overrides all other forwarding- related options and may simplify restricted configurations.</code>

これは、練習(xí)のために管理者に任されています。

結(jié)論は

SFTPクライアントの設(shè)定が厳しすぎると、サーバー管理の失明がある程度つながる可能性があります。 SFTPクライアントの制限は、さまざまな方法で簡単に回避できます。

SFTPサーバー管理者の場合、それらが制限されている場所と制限されている場所を知ることが重要であり、任意のTCP制御からサーバーを保護するためにクライアントに依存しないことが重要です。クライアントはユーザーによって制御され、構(gòu)成が間違っている場合、サーバーにTCPコマンドを?qū)g裝することは困難です。ユーザーssh_configでの広範(fàn)な転送なしでテストを行う必要があります。ドキュメントの警告に注意してください。

この機能には考えられる法的目的があるかもしれませんが、虐待はまれです。

これらの問題は、サイトExecのバリエーションが數(shù)十年にわたってPlantext FTPに存在しているため、新しいものではありません。 SFTPは、プレーンテキストファイル転送の単純な代替手段ではなく、使いやすい機能も多くあります。

管理者は、これらの方法を使用して、不意を突かれないようにサーバーのセキュリティを検証できることを願っています。

以上がSFTPポート転送:抑制された機能を有効にしますの詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國語 Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Linuxの最良のオープンソース數(shù)學(xué)方程式エディター Linuxの最良のオープンソース數(shù)學(xué)方程式エディター Jun 18, 2025 am 09:28 AM

數(shù)學(xué)的方程式を書くための優(yōu)れたソフトウェアをお探しですか?その場合、この記事では、お気に入りのLinux Distributionに簡単にインストールできる上位5つの方程式エディターを提供します。

SCP Linuxコマンド -  Linuxでファイルを安全に転送します SCP Linuxコマンド - Linuxでファイルを安全に転送します Jun 20, 2025 am 09:16 AM

Linux管理者は、コマンドライン環(huán)境に精通している必要があります。 LinuxサーバーのGUI(グラフィカルユーザーインターフェイス)モードは一般的にインストールされていないためです。SSHは、Linux管理者がサーバーを管理できるようにするための最も人気のあるプロトコルである可能性があります。

GOGO -Linuxのディレクトリパスのショートカットを作成します GOGO -Linuxのディレクトリパスのショートカットを作成します Jun 19, 2025 am 10:41 AM

Gogoは、Linuxシェル內(nèi)のディレクトリをブックマークするための注目すべきツールです。 Linuxで長く複雑なパスのショートカットを作成するのに役立ちます。このようにして、Linuxで長いパスを入力または記憶する必要はもうありません。たとえば、ディレクトリがある場合は

PPAとは何ですか?Ubuntuに追加するにはどうすればよいですか? PPAとは何ですか?Ubuntuに追加するにはどうすればよいですか? Jun 18, 2025 am 12:21 AM

PPAは、Ubuntuユーザーがソフトウェアソースを拡大するための重要なツールです。 1. PPAを検索する場合は、LaunchPad.netにアクセスし、プロジェクトの公式Webサイトまたはドキュメントで公式のPPAを確認(rèn)し、説明とユーザーのコメントを読んでセキュリティとメンテナンスのステータスを確保する必要があります。 2. PPAを追加してターミナルコマンドを使用してsudoadd-apt-repositoryppa:/、そしてsudoaptupdateを?qū)g行してパッケージリストを更新します。 3. PPAを管理してGREPコマンドを介して追加のリストを表示するには、-Removeパラメーターを使用して。リストファイルを削除または削除して、非互換性または更新の停止による問題を回避します。 4. PPAを使用して必要性を比較検討し、擔(dān)當(dāng)者がソフトウェアの新しいバージョンを提供または要求していない狀況を優(yōu)先します。

RHEL、ROCKY、ALMALINUXにLXC(Linuxコンテナ)をインストールします RHEL、ROCKY、ALMALINUXにLXC(Linuxコンテナ)をインストールします Jul 05, 2025 am 09:25 AM

LXDは、コンテナ內(nèi)または仮想マシンとして実行されるLinuxシステムに沒入型を提供する次世代コンテナおよび仮想マシンマネージャーとして説明されています。 サポートを備えた膨大な數(shù)のLinuxディストリビューションの畫像を提供します

テスト用の特定のサイズのファイルを作成する方法は? テスト用の特定のサイズのファイルを作成する方法は? Jun 17, 2025 am 09:23 AM

指定されたサイズのテストファイルを迅速に生成する方法は?コマンドラインツールまたはグラフィカルソフトウェアを使用して達成できます。 Windowsでは、fsutilfilecreateNewファイル名サイズを使用して、指定されたバイトを持つファイルを生成できます。 MacOS/Linuxは、DDIF =/dev/zeroof = filebs = 1mcount = 100を使用して実際のデータファイルを生成するか、truncate-s100mファイルを使用してスパースファイルをすばやく作成できます。コマンドラインに慣れていない場合は、Fsutilgui、DummyFileGenerator、その他のツールソフトウェアを選択できます。注:ファイルシステムの制限(FAT32ファイルサイズの上限など)に注意を払って、既存のファイルの上書きを避け、一部のプログラムは

Windows(デュアルブート)と一緒にLinuxをインストールする方法は? Windows(デュアルブート)と一緒にLinuxをインストールする方法は? Jun 18, 2025 am 12:19 AM

LinuxとWindowsにデュアルシステムをインストールするための鍵は、パーティションの設(shè)定とブート設(shè)定です。 1.準(zhǔn)備には、データのバックアップと既存のパーティションを圧縮してスペースを作成することが含まれます。 2. VentoyまたはRufusを使用してLinux Boot USBディスクを作成します。Ubuntuをお勧めします。 3.「他のシステムと共存」を選択するか、インストール中に手動でパーティションをかけます( /少なくとも20GB、 /家の殘りスペース、オプションを交換)。 4.ハードウェアの問題を避けるために、サードパーティのドライバーのインストールを確認(rèn)します。 5.インストール後にGrub Bootメニューを入力しない場合は、ブート修理を使用してブートを修復(fù)するか、BIOSスタートアップシーケンスを調(diào)整できます。手順が明確で、操作が適切に行われている限り、プロセス全體が複雑ではありません。

NVM -Linuxで複數(shù)のnode.jsバージョンをインストールして管理する NVM -Linuxで複數(shù)のnode.jsバージョンをインストールして管理する Jun 19, 2025 am 09:09 AM

Nodeバージョンマネージャー(NVM)は、Linuxシステムで複數(shù)のnode.jsバージョンを管理するのに役立つシンプルなBASHスクリプトです。さまざまなnode.jsバージョンをインストールし、インストール用に利用可能なバージョンを表示し、既にインストールされているバージョン.nvを確認(rèn)できます。

See all articles