blog

Linuxでhostapdを使ってワイヤレスAPを作成する。

現在市販されている多くのワイヤレスカードにはシミュレートAP機能があり、ワイヤレスクライアントとしてワイヤレスネットワークに接続するだけでなく、他のワイヤレスクライアントが接続できるようにシミュレート...

Sep 3, 2013 · 5 min. read
シェア

携帯電話など、より多くの個人的な他のワイヤレスデバイスでは、PADと多くの同様のタブレットデバイスの人気は、有線ネットワークにアクセスするために他のデバイスが現実的な問題になっているように特別な状況のうち、何度も、その後、ラップトップの機能をフルに発揮することができます、それはAPのシミュレーションになるようにソフトウェアを介して設定されますので、インターネットにアクセスするために他のデバイスの多くの特別な状況の問題を解決することができます!あなたはWINDONSのユーザーであれば、Win7の "ベアラネットワーク "機能の下でAPをシミュレートするために。もちろん、LINUXシステムでも、このような機能を実現するためのソフトウェアを介して設定することができます。LINUXシステムのプロセスとアップグレードの問題と解決策の下でカスタムワイヤレスAPの実装について、私は例として、ワイヤレスAP機能の下にFEDORA18を使用します。

I. 実験環境

  • オペレーティングシステム:FEDORA18
  • カーネルバージョン: 3.11.4-101.fc18.i686.PAE
  • ワイヤレスカードのモデル: tp-link TL-WN310G

次に、ワイヤレスAPの作成プロセスです:

1, ターミナルでそれぞれ、yum install hostapd, yum install dnsmasq コマンドを使用して、hostapd と dnsmasq ソフトウェアコンポーネントパッケージをインストールします。hostapdは、Linuxベースの無線アクセスポイントに強力なWPA2暗号化と認証を提供するホストアクセスポイントデーモンです。hostapd の設定は非常に簡単で、WPA2-Personal と Enterprise の両方をサポートし、WPA2-Personal に独自の変更を提供することで、管理を複雑にしたり、複雑にしなかったりすることができます。dnsmasq は DNS キャッシュと DHCP サービスを提供します。ドメイン名解決サーバーとして、dnsmasqはDNSリクエストをキャッシュし、訪問したURLの接続速度を向上させます。DHCPサーバとして、dnsmasqはLANコンピュータにイントラネットのIPアドレスと経路を提供できます。dnsmasqはDNSとDHCPの両方の機能に同時に、または別々に使用できます。dnsmasqは軽量で設定が簡単なので、個人ユーザやホスト数が50未満のネットワークに適しています。これにより、クライアントは無線アナログAPを介してネットワークにアクセスできます。

2.viコマンドを使用して、システム内のhostapd設定ファイル/etc/hostapd/hostapd.confを以下の内容で編集します:

ctrl_interface=/var/run/hostapd  
ctrl_interface_group=wheel  
# Some usable default settings...  
macaddr_acl=0  
auth_algs=1  
ignore_broadcast_ssid=0  
# Uncomment these for base WPA & WPA2 support with a pre-shared key  
wpa=2  
wpa_key_mgmt=WPA-PSK  
wpa_pairwise=TKIP  
rsn_pairwise=CCMP  
# DO NOT FORGET TO SET A WPA PASSPHRASE!!  
wpa_passphrase=****** 
# Most modern wireless drivers in the kernel need driver=nl80211   
#ieee80211n=1  
# Customize these for your local configuration...  
interface=wlan0  
hw_mode=g  
channel=7  
ssid=HOSTAP 
logger_stdout=-1 
logger_stdout_level=2 
max_num_sta=5 

この設定ファイルのSSIDは実際には無線APのアクセス名を指し、ユーザーは自由に好きな名前を定義できます。wpa_passphrase の後の文字はワイヤレスAPの接続パスワードで、ユーザーは必要に応じて変更する必要があります。

3は、システムでviコマンドを使用してdnsmasqの設定ファイル/etc/dnsmasq.confを編集するには、次の行を変更するには、内容は次のとおりです:

interface=wlan0 
listen-address=192. 
#no-dhcp-interface= 
dhcp-range=192.,192.0,12h 
dhcp-option=3,192. 
dhcp-option=6,8.8.8.8 

dhcp=ranageパラメータは、dhcpアドレスの範囲、つまり、12時間のリース時間、dhcp-option=3,192.168.0.1クライアントは、ゲートウェイを設定するには、アドレスは実際には無線APワイヤレスネットワークカードのIPアドレスとしてシミュレートされています。

dhcp-option=6,8.8.8.8クライアントのdnsを設定します。

4.ネットワーク設定を変更し、以下のコマンドモードでLinuxホストのネットワークデータ転送機能を開きます:

echo 1 >/proc/sys/net/ipv4/ip_forward 

5.以下のコマンドモードで無線アクセスポイントのIPアドレスを設定します:

ifconfig wlan0 192. netmask 255.255.255.0 

6.systemctlコマンドを使用して、以下のコマンドパターンでhostapdとdnsmasqネットワークサービスを起動します:

systemctl start hostapd.service 
systemctl start dnsmasq.service 

7は、Linuxシステムは、ファイアウォールの必要性をiptablesを使用してデータ転送機能を開くには、コマンドモードは次のとおりです:

iptables -t nat -A POSTROUTING -s 192./24 -o em1 -j MASQUERADE 
iptables -A FORWARD -s 192./24 -o em1 -j ACCEPT 
iptables -A FORWARD -d 192./24 -m conntrack --ctstate ESTABLISHED, RELATED -i em1 -j ACCEPT 

上記の設定であれば、FEDORA18を初期設置後、無線APとして使用することに問題はありません。

III.問題と解決策

FEDORA18 カーネルを 3.11.4-101.fc18.i686.PAE にアップグレードした後、 hostapd システムを起動すると以下のようなエラーが発生します:

nl80211: Failed to set interface wlan0 into AP mode 
nl80211 driver initialization failed. 

結果は、LINUXシステムは、最終的にでGOOGLEを使用して、シミュレートされたワイヤレスAPを作成することはできませんです:

https://..org/.php/Software_Access_Point#NetworkManager_is_interfering 

投稿に解決策がありました。実際、netmanagerネットワークマネージャーでワイヤレスカードを "device unmanaged "ステータスに設定するだけで、hostapdが正常に起動することがわかりました。

sed -i '/'を使う\[keyfile\]/a unmanaged-devices=mac:00:23:cd:10:3e:0b' /etc/NetworkManager/NetworkManager.conf 

unmanaged-devices=mac:00:23:cd:10:3e:0b行、ここで「00:23:cd:10:3e:0b」はワイヤレスカードのMACアドレスです。カードはNetworkManagerで管理されなくなり、ワイヤレスネットワークのステータスはNetworkManagerで「Device Unmanaged」に変更されます。

sed -i '/^unmanaged-devices=mac:00:23:cd:10:3e:0b/d' /etc/NetworkManager/NetworkManager.confコマンドを使って、ファイル内のunmanaged-devices=mac:00:23:cd:10:3e:0bの行を削除し、NetworkManagerでワイヤレスネットワークを再ホストします。

クライアントがHOSTAPDワイヤレスAPを使用している場合、ネットワーク速度が不安定になり、ネットワークタイムアウトによりWebページが開けないなどのネットワーク接続障害が発生する場合があります。

この問題は、主に無線データ伝送のチェックサム乱数シード番号が小さすぎるため、無線ネットワークのデータ伝送遅延が大きすぎることが原因で、ユーザーはコマンドcat /proc/sys/kernel/random/entropy_availを介して特定の値を確認することができます、値は一般的に1000未満であり、ユーザーはターミナルでyumを実行する必要があります。ユーザーはターミナルで yum haveged コマンドを実行して乱数ジェネレーターをインストールし、systemctl enable haveged.servce コマンドを使って乱数ジェネレーターを起動し、entropy_avail の値を増やす必要があります。これでワイヤレスネットワークの遅延は正常に戻ります。ネットワークは上記の問題を起こしません。

Read next

グーグル・シュミット:クロームはマイクロソフトをPCシステムの王座から追い落とす可能性がある

数日前、米ニューヨークで開催されたイベントで、グーグルのシュミット会長は、クラウドやウェブと連動するアプリケーションを開発することで、グーグルはクロームという強力なプラットフォームを作り上げ、マイクロソフトを廃業に追い込むことができると発言。

Sep 3, 2013 · 1 min read