回答編集履歴

2

修正しました。

2017/02/10 19:36

投稿

kanbeworks
kanbeworks

スコア829

test CHANGED
@@ -64,6 +64,8 @@
64
64
 
65
65
  `/etc/ssh/sshd_config`の最後に、以下のように追記し、sshdサービスを再起動します。
66
66
 
67
+ ※再起動時に「Subsystem sftp~」とか出たら、既存の設定に「Subsystem sftp~」がないか確認し、コメントアウトして下さい。
68
+
67
69
  ```
68
70
 
69
71
  (↑ここから上は既存の設定)

1

回答を追記しました。

2017/02/10 19:36

投稿

kanbeworks
kanbeworks

スコア829

test CHANGED
@@ -11,3 +11,95 @@
11
11
 
12
12
 
13
13
  完全にTCP Wrapperの支配から抜けたいなら、OpenSSHのソースを拾ってきて、TCPWrapperを無効にしてコンパイルしてやればいいんですかね。
14
+
15
+
16
+
17
+ ### 追記(2017/02/11 03:20)
18
+
19
+ さて。
20
+
21
+
22
+
23
+ > sshdは現在社内・または開発会社のみつながるようにallow内で設定しております。
24
+
25
+ そこはそのままでsftp(22)だけアクセス可能にしたいのです。
26
+
27
+ >
28
+
29
+ > allowを使うやり方では難しいでしょうか
30
+
31
+
32
+
33
+ ということでしたので、回答に追記を。
34
+
35
+ まず、hosts.allow(TCP Wrappers)だけで要件を満たすのは厳しいと思います。
36
+
37
+
38
+
39
+ mooonphaseさんが提示された、sftpとsshを分ける方法を採用する場合、
40
+
41
+ 0. ssh用ポート(22番)はFirewallで社内と開発会社のみに許可する。
42
+
43
+ 0. sftp用ポート(22番以外)はFirewallで全許可する。
44
+
45
+
46
+
47
+ という感じなのかなと思います。
48
+
49
+ ただ、御社の情シスや偉い方が
50
+
51
+ **「よくわからんポートを開放したくないから、現状のままでなんとかせよ」**
52
+
53
+ と言う場合は、別の方法を検討するしかないです。
54
+
55
+
56
+
57
+ 最初思いついた方法は、この回答のコメントに書いた
58
+
59
+ **「sshとsftpのユーザーを分ける」+「ユーザー毎にアクセス制限をかける」**
60
+
61
+ ものですが、よくよくManページを確認したらアドレスのみでもいけることがわかりました。
62
+
63
+
64
+
65
+ `/etc/ssh/sshd_config`の最後に、以下のように追記し、sshdサービスを再起動します。
66
+
67
+ ```
68
+
69
+ (↑ここから上は既存の設定)
70
+
71
+
72
+
73
+ Subsystem sftp internal-sftp
74
+
75
+
76
+
77
+ Match Address *,!192.168.0.0/24
78
+
79
+ ForceCommand internal-sftp
80
+
81
+ ```
82
+
83
+ 上記の場合、「全てのアクセス元にsftpのみ許可、ただし192.168.0.0/24からは除く」という設定になります。
84
+
85
+ 許可アドレスを追加する場合は「Match Address」の行に「,!許可するアドレス」を追加していきます。
86
+
87
+ ホスト名を指定する場合は「Match Host *,!~」となるかと思いますが、詳細はManページなどをご確認下さい。
88
+
89
+
90
+
91
+ [SSHD_CONFIG(5)](https://euske.github.io/openssh-jman/sshd_config.html)
92
+
93
+
94
+
95
+ なお、Subsystem sftpに指定する「internal-sftp」は別にデフォルトのsftp-serverでも構いませんが、「internal-sftp」だと
96
+
97
+ `This Service allows sftp connections only.`
98
+
99
+ と出てくれたりします。
100
+
101
+
102
+
103
+ 何年もOpenSSH触ってるはずなのに、未だに使いこなせてなかったんだなーと反省。
104
+
105
+