Openvpnと6to4を使用したIPv6トンネルブローカー





デバイス(Windows \ Linux \ Android \ iOS)でIPv6の使用を開始しますが、プロバイダーはまだ提供していませんか? 独自のサーバー\ VDS \永続的な直接IPv4(IPv6ではない)アドレスを持つLinuxコンピューター、または独自のopenvpnサーバーさえありますか? その後、おそらくこの記事が役立ちます。

これは、由緒あるネットワークの達人のためではなく、IPv6を大衆に配布することを目標に、1か所で一連の指示を集めただけです。 私はコメントで私を批判し、エラーを指摘しているすべての由緒ある達人に感謝しますが。 私はシステムが機能した直後に投稿を書いているので。 すべてが理想からかけ離れている可能性があります。





WiFiルーターからIPv6を受信したくない私の新しいタブレットは、IPv6を使用できないことは言うまでもなく、3Gを使用して、新しいタブレットで同様のシステムをセットアップするように促しました。



次のツールが必要です。

  1. Linuxと直接の静的IPアドレスを備えたホスト(専用サーバーまたは仮想サーバーで可能)。 gentooと自分のカーネルを備えたXenでVPSを使用しています。 ただし、非標準のものは使用しないため、一般的なバイナリディストリビューションで動作するはずです。
  2. サーバーにインストールされたiproute2パッケージ。 「ip --version」による検証。
  3. openvpnサーバー。 Openvpnバージョン-> = 2.3、2.3.2 以降が望ましい。
  4. openvpnクライアント。 linux、windowsos x 、android( 1、2 )、 iOSのバージョンがあります。 バージョンの要件はサーバーと同じです。




6to4を介してサーバーでIPv6を構成します。


IPv6への移行を容易にするために、6to4テクノロジーが作成されました。各IPv4アドレスにはサブネット/ 48個のIPv6アドレスがあります。 詳細

サーバーIP:208.64.121.161(IP test.comを取得)と仮定します。 6to4.version6.net/?lang=en_GBに進み、IPを駆動します(たとえば、208.64.121.161)。 次の設定を取得します。



IPv4アドレスは208.64.121.161です

6to4アドレスは2002:d040:79a1 :: 2080:6412:1161

6to4ゲートウェイアドレスは192.88.99.1です




必要なのは大胆な作品です。 これは、/ 48 IPv6サブネットです。 2002年以降は2つのグループがあり、アドレスは異なる必要があります! 彼らはあなたのIPv4をエンコードしました。



このサブネット上のアドレスを見つけます。 簡単にするために、:: 2を使用できます(何らかの理由で、:: 1を使用すると、グリッチに気付きました。理由を教えてもらえますか、それとも思われます)。つまり、 2002:d040:79a1 :: 2です。



トンネルを作成します(IPv4を自分のアドレスに置き換えます):

ip tunnel add tun6to4 mode sit remote any local 208.64.121.161 ttl 64





インターフェイスを上げます。

ip link set dev tun6to4 up





以前に思いついたIPv6アドレスを設定します。

ip -6 addr add 2002:d040:79a1::2/128 dev tun6to4





デフォルトのルートを設定します(192.88.99.1-6to4の一般的なルーター、変更しないでください!):

ip -6 route add 2000::/3 via ::192.88.99.1 dev tun6to4 metric 1





その後、サーバーはIPv6で動作できるようになります。 私たちはチェックします:

ping6 2001:ad0::1







紳士では、次の行を/etc/conf.d/netに追加することでこれをすべて保存しました(リンクnet.lo-> net.tun6to4を作成し、rc-updateにnet.tun6to4のデフォルトを追加することを忘れないでください):

iptunnel_tun6to4 = "モードはリモートでローカルに座ってください208.64.121.161 ttl 64"

config_tun6to4 = "2002:d040:79a1 :: 2"

routes_tun6to4 = "2000 :: / 3 via :: 192.88.99.1 dev tun6to4 metric 1"

rc_net_tun6to4_need = "net.eth0"




pingが成功した場合、ステップ1は合格です。 それらが行かない場合は、データを置き換える必要があるものをすべて置き換えたかどうかを確認します。 他のすべてが失敗した場合は、コメントで(IPサーバーを使用して)何をしたかを詳しく説明します。 個人的には助けにはなりません。



IPv6で動作するようにopenvpnを構成します


openvpnの設定方法は、何度も書かれています。 ここを含む。 検索を使用します。 念のため、私は設定を持ち込み、個人データを切り取ります。



サーバー
ポート検閲

プロトUDP

開発者

ca vpn1 / ca.crt

cert vpn1 / server.crt

キーvpn1 / server.key

dh vpn1 / dh2048.pem

サーバー10.検閲255.255.255.0

ifconfig-pool-persist ipp.txt

キープアライブ10 60

comp-lzo適応型

ユーザーなし

グループなし

永続キー

持続する

高速IO

ステータスopenvpn-status.log



最大クライアント数30

tls-auth vpn1 / ta.key 0

chroot / var / chroot / openvpn



暗号AES-256-CBC

auth SHA512

tls-cipher TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384:TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA384:TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA384 :TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA:TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA:TLS-DHE-RSA-WITH-AES-256-CBC-SHA



ローカル検閲

クライアント間

ping-timer-rem

管理localhost 7505

client-config-dir ccd



お客様
クライアント

開発者

プロトUDP



リモート検閲検閲

無限の解決と再試行

ノバインド



永続キー

持続する



comp-lzo適応型

動詞3



キー方向1



暗号AES-256-CBC

auth SHA512

tls-cipher TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384:TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA384:TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA384 :TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA:TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA:TLS-DHE-RSA-WITH-AES-256-CBC-SHA



verify-x509-name 'C = RU、ST = RU、L = censored'



検閲





<tls-auth>

検閲

</ tls-auth>





openvpnを介してIPv6を配布するには、サブネットの数/ 64を見つけます。 これは、0〜FFFFの任意の数値です。 たとえば、5。つまり、私の場合の/ 64では、サブネットは次のようになります。2002:d040:79a1:5 ::。 サーバーのopenvpn.confに次の行を追加します。

server-ipv6 2002:d040:79a1:5::/64





原則として、この行はIPv6のopenvpnの構成全体です。 IPv6のデフォルトルートをクライアントに通知するようにopenvpnサーバーに指示するだけです。 次の行を使用して、サーバー側のopenvpn.confまたは各クライアントのccdファイルでグローバルにこれを行うことができます。

push "route-ipv6 2000::/3"





クライアントのIPv6 DNSサーバーを指定する必要もあります。 私は私のものを使用していますが、Googleを使用できます。 サーバー側のopenvpn.confまたはccdで:

push "dhcp-option DNS 2001:4860:4860::8888"







(再)サーバーを起動します。

クライアントの設定を変更する必要はありません。 サーバーに接続され、IPv6アドレスを受信する必要があります。 クライアントでは次のように見えます。

ip -6 addr list





次のようなものが表示されます。

9:tun0:<POINTOPOINT、MULTICAST、NOARP、UP、LOWER_UP> mtu 1500 qlen 100

inet6 2002:d040:79a1:5 :: 1005/64スコープグローバル





同様に、サーバー上のtunインターフェースのIPv6アドレスを調べます。ほとんどの場合、それは:: 1(2002:d040:79a1:5 :: 1)で終わります。

クライアントからサーバーへ、またその逆にpingを試みます。 応答する場合、残りはほとんどありません。



クライアントからGoogle DNSにpingを試行します。

ping6 2001:4860:4860::8888





IPv6転送はIPv4と同様に有効にする必要があるため、応答しません。 許可する:

sysctl -w net.ipv6.conf.all.forwarding=1





そして、行を/etc/sysctl.confに保存します。

net.ipv6.conf.all.forwarding = 1







pingはクライアントからGoogleに送信する必要があり、一般にクライアントからIPv6を使用する機会があります。 たとえば、ブラウザでipv6.google.comを開いてみてください。



それだけですか? まさか!



IPv6の利点は、すべてのアドレスが直接であることです。 したがって、すべてのopenvpnクライアントは、大規模で危険なインターネットから完全にアクセスできます。 したがって、サーバーでファイアウォールを構成することを忘れないでください(IPv6にはip6tablesが使用されます)。 少なくとも、私はすぐに次を入力しました:

サーバー自体について説明します。

ip6tables -A INPUT -i lo -j ACCEPT

ip6tables -A INPUT -p tcp -m conntrack --ctstate NEW -m tcp! --tcp-flags FIN、SYN、RST、ACK SYN -j DROP

ip6tables -A INPUT -m conntrack --ctstate RELATED、ESTABLISHED -j ACCEPT

ip6tables -A INPUT -p ipv6-icmp -m icmp6 --icmpv6-type 128 -j ACCEPT

ip6tables -A INPUT -j DROP





openvpnクライアントについて説明します(サーバーにも登録します!)

ip6tables -A FORWARD -p tcp -m conntrack --ctstate NEW -m tcp! --tcp-flags FIN、SYN、RST、ACK SYN -j DROP

ip6tables -A FORWARD -p ipv6-icmp -m icmp6 --icmpv6-type 128 -j ACCEPT

ip6tables -A FORWARD -i tun0 -j ACCEPT

ip6tables -A前方-m conntrack --ctstate関連、確立済み-j ACCEPT

ip6tables -A FORWARD -j DROP




まあ、それだけです。 Galaxy Tab 3 10.1がIPv6にアクセスできるようになりました。 ところで、誰かがWiFi経由でIPv6を使用して直接作業を有効にする方法を知っている場合(私のルーターはradvdを介して配布します。シアノゲンモッド付きの電話を含むすべてを手に入れますが、ストックファームウェアを搭載したタブレットはありません:)ありがたい。



プライベートでエラーを送信し、すべてが良い金曜日と週末になります。



All Articles