VirtualBoを使用してKaliLinuxで自分用の「悪魔の双子」アクセスポイントを作成しようとしています。 iPhoneを接続して、偽の「利用規約」ページに再ルーティングしようとしています。これが私が今までやっていることです
$apt=eth0
$wifi=wlan0
#when monitor mode is enabled, the enviroment varible will adapt the name wlan0mon
Sudo sysctl -w net.ipv4.ip_forward=1
Sudo systemctl start Apache2
Sudo ifconfig $wifi down
Sudo ifconfig $wifi mode monitor
Sudo ifconfig $wifi up
Sudo airmon-ng check
Sudo airmon-ng start $wifi
$ wifiのターミナルを終了して再度開き、wlan0monという名前を変更します
Sudo airodump-ng $wifi
Sudo airbase-ng -a $gatewayBSSID -e $gatewayESSID -c $ch $wifi
Sudo cp /etc/dhcp/dhcpd.et.conf /etc/dhcp/dhcpd.conf
#et.conf is the non-original.
Sudo ifconfig at0 up
Sudo ifconfig at0 192.168.2.1 netmask 255.255.255.0
Sudo dhcpd -cf /etc/dhcp/dhcpd.conf -pf /var/run/dhcpd.pid at0
Sudo service isc-dhcp-server restart
Sudo iptables --table nat --append POSTROUTING --out-interface $atp -j MASQUERADE
今、これは私が立ち往生しているところです。私のiptablesコマンドの出力は
悪い議論 `MASQUERADE '
理由が想像できません。私はすべての要件を満たしました。 MASQUERADEは本当の議論ですが、認識されていないだけです。これ以上の情報はないので、私は何もしません。また、iptable転送ルールについてはほとんど知りません。私は試しましたが、TCP/IP構造を解くために2時間費やしました。今では、始めたときと同じくらい多くのことを知っていますが、それはごくわずかです。この問題の原因をさらに診断するにはどうすればよいですか?
エラーメッセージにはMASQUERADE
が記載されていますが、問題の原因は$atp
です。タイプミスがあります。あなたの命令
Sudo iptables --table nat --append POSTROUTING --out-interface $atp -j MASQUERADE
本当に
Sudo iptables --table nat --append POSTROUTING --out-interface -j MASQUERADE
$apt=eth0
を定義した後、引用符で囲まれていない$atp
($apt
、タイプミスではありません!)を使用すると、引用符で囲まれていない空の文字列に解決されて消えます。
事実上、-j
はインターフェース名として使用されるため、MASQUERADE
はスタンドアロンの引数として表示され、-j MASQUERADE
が通常行うようには動作しません。
変数を引用するためのベストプラクティスに従った場合、--out-interface "$atp"
はEmpty interface is likely to be undesired
を生成し、実際の問題が存在する"$atp"
引数に注意を向けます。引用符で囲まれた空の文字列は、コマンドに対する空の引数を生成します(この場合、iptables
は、ここではSudo
を脇に置いておくことが正当化されます)。
引用符で囲まれていない空の文字列は消えます。これは、続く引数を「シフト」します。あなたのiptables
は、--out-interface
と-j
の間に何かがあることを知りませんでした。コマンドラインパーサーはだまされ、コマンドはanother引数についてのみ文句を言う可能性があります(あなたの場合のMASQUERADE
のように)。代替案はさらに悪いです。一般に、これらの「シフトされた」引数が適切な継続を構築する場合、コマンドは、渡すことを意図していなかったオプションの配列で実行されます。これは悪いかもしれません。 Sudo
を使用すると、これは非常に悪い場合があります。
レッスンは次のとおりです。変数を引用します。