opensshでVPNを設定しようとしています。
私はArch Linuxでクライアントを実行しています。クライアントのバージョンはOpenSSH_7.7p1, OpenSSL 1.1.0h 27 Mar 2018
。
SSHサーバーはGoogle CloudのUbuntu 17.10バージョンにありますOpenSSH_7.5p1 Ubuntu-10ubuntu0.1, OpenSSL 1.0.2g 1 Mar 2016
。サーバー構成では、さまざまな転送とPermitTunnel
オプションを有効にしました。 sshdデーモンを再起動しました。apparmor
万が一に備えて無効にしたりもしました。 selinuxが実行されていません。たとえば、modprobe tun
openvpnは問題なく動作しますが、これを実行します。サーバーでは、Google Cloud レベルと Ubuntu レベルの両方で IP 転送が有効になっています。ufw
無効になっており、Google ファイアウォールが完全にオンになっています。
まず、次のコマンドを使用して接続しようとしました。
sudo ssh -i ssh_key -w any:any root@ip -vvv -o Tunnel=point-to-point
上記の操作は失敗し、障害点の近くでsshのデバッグ出力は次のようになります。
debug1: Authentication succeeded (publickey). Authenticated to xxxxxxxx. debug1: Requesting tun unit 1 in mode 1 debug1: sys_tun_open: tun1 mode 1 fd 4 Tunnel device open failed. Could not request tunnel forwarding. debug1: channel 0: new [client-session] debug3: ssh_session2_open: channel_new: 0
上記の失敗のため、まずトンデバイスを作成する必要があると思いました。これが私がしたことです:
クライアント側から:
sudo ip tuntap add tun1 mode tun sudo ip link set tun1 up sudo ip addr add 172.32.0.1/24 peer 172.32.0.2 dev tun1
サーバーから:
sudo ip tuntap add tun1 mode tun sudo ip link set tun1 up sudo ip addr add 172.32.0.2/24 peer 172.32.0.1 dev tun1
しかし、やはり同じ方法でまた失敗しました。
ローカルコンピュータでsshdサーバーを実行し、localhostに接続してみました。しかし、同じ方法で失敗しました。
ローカルポート転送を試みましたがうまくいきました。
opensshを使用してVPNを正しく設定するには?私はウェブを徹底的に検索しましたが、何も役に立ちませんでした。
答え1
Arch Linuxでも同じ問題があります。 ArchLinux はクライアントとサーバーの両方にインストールされます。 opensshバージョンは、7.7p1-1
一時的なソリューションとしてopensshバージョンをインストールしました。7.6p1-2
答え2
2018年3月27日OpenSSH_7.7p1 Debian-2、OpenSSL 1.0.2oでも同じ問題が発生しました。
次のスクリプトを使用してsshをダウングレードした後:
wget http://ftp.us.debian.org/debian/pool/main/o/openssh/openssh-client_7.4p1-10+deb9u3_amd64.deb
wget http://ftp.us.debian.org/debian/pool/main/o/openssh/openssh-sftp-server_7.4p1-10+deb9u3_amd64.deb
wget http://ftp.us.debian.org/debian/pool/main/o/openssh/openssh-server_7.4p1-10+deb9u3_amd64.deb
dpkg -i *.deb
systemctl restart ssh
systemctl status ssh
VPNが再び動作を開始します。