CentOS7でSFTPサーバーを構築し、安全なファイル転送を行う方法をまとめています。
データを暗号化しないで送ることは、できれば避けたいですよね(・ω・)ノ
WindowsでSFTP接続するためにWinSCPを使用します。
SFTP接続に関しての備忘録です。
そもそもSFTPとは何なのか...
SFTP(SSH File Transfer Protocol)
ざっくり簡単にまとめると...
「FTPとは違って、データファイルが安全な壁で守られる」ってことですかね...(のnの)
SSHのサブシステムとして動作するようなので、sshdは動いていることが条件です。
tera termを利用してですが、SSH接続についての備忘録もあります。
今回やることは、
Windows8.1よりSFTP接続するために、まずはWinSCPをインストールします。
WinSCPは、MS-Windows上で動くGUIのFTP、FTPS、SFTPクライアントプログラムらしい。
なんのこっちゃ(・ω・')
ダウンロード
WinSCP download pageへアクセスし、「Installation package」をクリックすると、
日本語版のWinSCPがダウンロードできる。
インストール
ダウンロードしたファイル「WinSCP-5.9.6-Setup.exe」を実行し、インストールしていく。
警告がでるけど無視して「実行」を選択
使用許諾契約書の同意が求められるので、特に問題なければ「承諾」を選択
標準的なインストールを選択して、「次へ」
コマンダーを選択して、「次へ」
問題なければ「インストール」を選択
インストールが終わるので「完了」
寄付はお好みで(・ω・')
WinSCPでSSH接続するために、付属の「puttygen」さんで鍵ペアを作成する。
WinSCPをインストールしたフォルダに「PuTTY」フォルダがあるので、中にいる。
起動したら、「Generate」を選択して、鍵ペアを作る。
緑の枠の中で、マウスをぐるぐる動かすとゲージが増え、マックスになったら鍵が生成される。
最初知らなくてビビったことの一つ(のsの)ノノ
「key comment(任意)」、「key passphrase(任意)」を入力したら
「Save public key」で公開鍵、「Save private key」で秘密鍵をそれぞれ保存する。
ここでは、公開鍵を「public_key.pub」、秘密鍵を「private_key.ppk」として保存した。
SFTP専用のグループとユーザーの作成
グループ作成
groupadd sftp_users
ユーザー作成
useradd sftp_only
passwd sftp_only
usermod -G sftp_users sftp_only
SSH公開鍵認証設定
サーバーに公開鍵を設置と同様(作成したユーザーに置き換える)
SFTPで利用するディレクトリ設定
アクセスするフォルダと実際に操作できるフォルダを設定
chmod 755 /home/sftp_only/ # アクセス先のフォルダ設定
chown root:root /home/sftp_only/ # chrootにするため権限をrootに変更
mkdir /home/sftp_only/files/
chmod 755 /home/sftp_only/files/ # 実際に操作できるフォルダ
chown sftp_only:sftp_users /home/sftp_only/files/
Configファイルの変更
vi /etc/ssh/sshd_config
# 標準のsftpサーバからinternal-sftpに変更する
# Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
# 接続ユーザーのグループが[sftp_users]だった場合、chrootの設定とSFTPの指定
Match Group sftp_users
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory /home/sftp_only
ForceCommand internal-sftp
設定を反映するためsshd再起動
systemctl restart sshd
インストールしたWinSCPを起動し、「設定」を選択
「認証」>「認証条件」のところで、puttygenで鍵のペアを作成にて作成した秘密鍵を指定し、
「OK」を選択
ホスト名、ユーザー名、パスワードを入力して「保存」を選択
セッション名を好きにつけて「OK」を選択
ここではセッション名をdefaultとした。
保存したセッション名を指定した状態で、「ログイン」を選択
初回は警告が表示されるが、無視して「はい」を選択
問題なくSFTP接続できれば完了
他に記載しておきたいことをまとめていきます。
Authorized_keysに複数の公開鍵を設定
今回、tera termとWinSCPを利用していて、それぞれ公開鍵と秘密鍵が異なるので、
いちいち入れ替えて接続していた。
切り替えがめんどいので、試しにサーバー上のAuthorized_keysに2つの公開鍵を追記したところ...
うまく機能した(-ω-;)
cat 追記したい公開鍵 >> Authorized_keys
keysってそういうことなのかしら...
WinSCPでログ確認
WinSCPにてSFTP接続時にエラーが発生する場合、やはりログを確認するのが手っ取り早い。
WinSCPを起動し、「ツール」から「環境設定」を選択
「ログ」>「ログのオプション」にて「有効にするテキストログのレベル」にチェックする。
これでログの出力がされるようになった。上記画面の状態では、ログファイルは、
「C:⁄Users⁄ユーザー名⁄AppData⁄Local⁄Temp」に作成される。
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin"and"q"="k
123456
admin"and"d"="d
123456
admin
123456
admin'and'i'='x
123456
admin
123456
admin'and'k'='k
123456
admin
123456
admin
123456'/**/and/**/DBMS_PIPE.RECEIVE_MESSAGE('b',2)='b
admin
<%- 878413075+804777737 %>
admin
123456'/**/and/**/DBMS_PIPE.RECEIVE_MESSAGE('z',0)='z
admin
123456
admin
#set($c=853639579+908506056)${c}$c
admin
123456/**/and/**/4=DBMS_PIPE.RECEIVE_MESSAGE('e',2)
admin
123456
admin
${(844609979+815767100)?c}
admin
123456/**/and/**/4=DBMS_PIPE.RECEIVE_MESSAGE('m',0)
admin
123456
admin
${884257441+805168698}
admin
123456'and(select+1)>0waitfor/**/delay'0:0:2
admin
123456
admin
/*1*/{{942160180+882173859}}
admin
123456'and(select+1)>0waitfor/**/delay'0:0:0
admin
123456
admin
123456
admin
123456
admin
123456/**/and(select+1)>0waitfor/**/delay'0:0:2'/**/
admin
123456
admin
123456
admin
123456
admin
123456/**/and(select+1)>0waitfor/**/delay'0:0:0'/**/
admin
123456
admin
123456
admin
123456'/**/and(select'1'from/**/pg_sleep(2))::text>'0
admin
123456
admin
123456
admin
123456
admin
123456'/**/and(select'1'from/**/pg_sleep(0))::text>'0
admin
123456
admin
123456
admin
123456
admin
123456/**/and(select+1/**/from/**/pg_sleep(2))>0/**/
admin
123456
admin
123456/**/and(select+1/**/from/**/pg_sleep(0))>0/**/
admin'"\(
123456
admin
123456
admin
123456
admin
123456"and(select*from(select+sleep(2))a/**/union/**/select+1)="
admin鎈'"\(
123456
admin
123456
admin
123456
admin
123456"and(select*from(select+sleep(0))a/**/union/**/select+1)="
admin
123456
admin
123456
admin
123456'and(select*from(select+sleep(2))a/**/union/**/select+1)='
admin
123456
admin
123456'and(select*from(select+sleep(0))a/**/union/**/select+1)='
admin
123456
admin
123456
admin
(select*from(select+sleep(2)union/**/select+1)a)
admin
123456
expr 974809010 + 813932534
123456
admin
(select*from(select+sleep(0)union/**/select+1)a)
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
'-var_dump(md5(452551600))-'
123456
admin
123456
${@var_dump(md5(719989705))};
123456
admin
123456
admin
123456'"\(
admin
123456
admin
${800183160+834994267}
admin
'-var_dump(md5(913653447))-'
admin
123456"and"u"="b
admin
123456鎈'"\(
admin
expr 879749363 + 894415173
admin
123456
admin
123456
admin
${@var_dump(md5(962326221))};
admin
123456"and"g"="g
<%- 887734604+822952775 %>
123456
admin
123456
admin
123456'and/**/convert(int,sys.fn_sqlvarbasetostr(HashBytes('MD5','1337009403')))>'0
admin
123456&set /A 952142290+878670755
admin
123456
admin
123456'and'o'='g
admin
123456
admin
123456$(expr 877050553 + 922633491)
admin
convert(int,sys.fn_sqlvarbasetostr(HashBytes('MD5','1644373781')))
${(820232403+872006873)?c}
123456
admin
123456'and'i'='i
admin
123456
${847154170+817485892}
123456
admin
123456/**/and/**/cast(md5('1534901240')as/**/int)>0
admin
123456|expr 984588170 + 911170379
${861725126+859519346}
123456
admin
123456/**/and+4=5
admin
123456
admin
123456'and(select'1'from/**/cast(md5(1524477005)as/**/int))>'0
admin
123456
expr 975023272 + 885539710
admin
123456/**/and+2=2
/*1*/{{961721140+881086212}}
123456
admin
extractvalue(1,concat(char(126),md5(1159100305)))
admin
123456
admin
123456
admin
123456
admin
123456"and/**/extractvalue(1,concat(char(126),md5(1628970220)))and"
admin
123456
admin
123456
admin
123456'and/**/extractvalue(1,concat(char(126),md5(1211900632)))and'
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
ブランド財布コピー
迅速な対応で気持ちいい取り引きが出来ました。また機会があったら、こちらで買い物をしたいと思います。手書きのメッセージが同封されていてスタッフの方の温かみを感じました。ありがとうございました。
ブランド財布コピー https://www.tentenok.com/product-6895.html
admin
123456'/**/and/**/DBMS_PIPE.RECEIVE_MESSAGE('g',2)='g
admin
123456'/**/and/**/DBMS_PIPE.RECEIVE_MESSAGE('y',0)='y
admin
123456/**/and/**/2=DBMS_PIPE.RECEIVE_MESSAGE('a',2)
admin
123456/**/and/**/4=DBMS_PIPE.RECEIVE_MESSAGE('e',0)
admin
123456'and(select+1)>0waitfor/**/delay'0:0:2
admin
123456'and(select+1)>0waitfor/**/delay'0:0:0
admin
123456/**/and(select+1)>0waitfor/**/delay'0:0:2'/**/
admin
123456/**/and(select+1)>0waitfor/**/delay'0:0:0'/**/
admin
123456'/**/and(select'1'from/**/pg_sleep(2))::text>'0
admin
123456'/**/and(select'1'from/**/pg_sleep(0))::text>'0
admin
123456/**/and(select+1/**/from/**/pg_sleep(2))>0/**/
admin
123456/**/and(select+1/**/from/**/pg_sleep(0))>0/**/
admin
123456"and(select*from(select+sleep(2))a/**/union/**/select+1)="
admin
123456"and(select*from(select+sleep(0))a/**/union/**/select+1)="
admin
123456'and(select*from(select+sleep(2))a/**/union/**/select+1)='
admin
123456'and(select*from(select+sleep(0))a/**/union/**/select+1)='
admin
(select*from(select+sleep(2)union/**/select+1)a)
admin
(select*from(select+sleep(0)union/**/select+1)a)
admin
123456"and"q"="v
admin
123456"and"k"="k
admin
123456'and'r'='v
admin
123456'and'w'='w
admin
123456/**/and+2=9
admin
123456/**/and+0=0
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456'"\(
admin
123456
admin
123456
admin
123456鎈'"\(
admin
123456
admin
123456'and/**/convert(int,sys.fn_sqlvarbasetostr(HashBytes('MD5','1475745389')))>'0
admin
123456
admin
123456
admin
convert(int,sys.fn_sqlvarbasetostr(HashBytes('MD5','1721774629')))
admin
123456
admin
123456/**/and/**/cast(md5('1685556627')as/**/int)>0
admin
123456
admin
123456
admin
123456'and(select'1'from/**/cast(md5(1011601562)as/**/int))>'0
admin
123456
admin
extractvalue(1,concat(char(126),md5(1179133757)))
admin
123456
admin
123456"and/**/extractvalue(1,concat(char(126),md5(1929044310)))and"
admin
123456
admin
123456'and/**/extractvalue(1,concat(char(126),md5(1927204142)))and'
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
<%- 833229809+957167538 %>
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
${(848748099+946731651)?c}
123456
admin
123456
admin
123456
${834948928+912932886}
123456
admin
123456
admin
123456
/*1*/{{925960392+856717318}}
123456
admin
123456
admin
<%- 894261449+816419161 %>
admin
123456
admin
123456
admin
#set($c=988540003+969298384)${c}$c
admin
123456
admin
123456
admin
123456
admin
${(911879879+951833144)?c}
admin
123456
admin
123456
admin
${876765039+988138345}
admin
123456
admin
123456
admin
/*1*/{{819126412+800930109}}
admin
123456
admin
123456
admin
123456
admin
123456
expr 907400467 + 831516688
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
expr 912315393 + 829027452
admin
123456
admin
123456
admin
123456
admin
123456&set /A 894211334+915152517
admin
123456
admin'"\(
123456
admin
123456
admin
123456
admin
123456$(expr 995431581 + 807341395)
admin
123456
admin鎈'"\(
123456
admin
123456
admin
123456
admin
123456|expr 815725043 + 879564376
'-var_dump(md5(171954360))-'
123456
admin
123456
admin
123456
admin"and"b"="b
123456
admin
123456
expr 944068769 + 887239081
${@var_dump(md5(881109417))};
123456
admin
123456
admin
123456
admin"and"t"="t
123456
admin
123456
admin
'-var_dump(md5(909082412))-'
admin
123456
admin
123456
admin'and'a'='d
123456
admin
123456
admin
${@var_dump(md5(478566639))};
admin
123456
${995926262+887431551}
123456
admin'and'f'='f
123456
admin
123456
admin
123456
admin
123456
admin
${914992492+812156412}
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
admin
123456
ガガミラノ 財布 スーパーコピー ヴィトン
妻の誕生日プレゼントに買いました。
商品の到着も早く、品物もイメージ通りでした。
割安に買えて良かったと思っていますが、贈り物用の梱包があったらなお良いと思います。
妻も多分喜んでくれると思います。誕生日が楽しみです。
ありがとうございました。
ガガミラノ 財布 スーパーコピー ヴィトン https://www.kopi01.com/brandgoods-14692.html
ルイ ヴィトン リング xs
迅速な対応ありがとうございます。
とてもいい買い物ができました。
品物もきれい、包装もきれい。
それに手書きのメッセージが同封されていたので、
とてもいい印象を受けました。
また利用させていただきます。
本当にありがとうございました。
ルイ ヴィトン リング xs https://www.gmt78.com/product/detail/6679.htm
スーパーコピー 日本国内
★弊社は「信用第一」をモットーにお客様にご満足頂けるよう
★全物品運賃無料(日本全国)
★不良品物情況、無償で交換します.
★税関没収する商品は再度無料で発送します
スーパーコピー 日本国内 https://www.mbag78.com/goods-5981.html
ロレックス スーパーコピー 上野
配送も注文して次の日に届くし、丁寧で良心的にお手紙まで!しかも商品も思ってたより状態が良好でとても満足できる買い物ができました!
ロレックス スーパーコピー 上野 https://www.kopijp.com/product/detail-11701.html
スーパーコピー カルティエ バッグ
思っていたよりずっと綺麗な商品で、
とても良い買い物ができ嬉しく思います。
お店の対応もとても良く、
迅速丁寧にご対応いただきました。
ありがとうございました。
スーパーコピー カルティエ バッグ https://www.jpwatchs777.com/goods-copy-5663.html
ななしさん
いっちばーん!!!