文書更新:2017年11月26日(日) 午後4時39分01秒

Home > 備忘録(Fedora) > ネットワーク構築 > アクセスポイントの構築( 130 )

Fedora19 に hostapd を利用して無線ランをアクセスポイントにすることを考える

NetworkManager を停止して network を起動する

  1. NetworkManager を停止
  2. # systemctl disable NetworkManager
    # systemctl stop NetworkManager
  3. network を起動
  4. # systemctl start network
    # chkconfig network on

無線ランのドライバをインストルする

  1. 無線ランがアクセスポイントとして使用できるかを確認する
  2. # iw list
    Wiphy phy0
    	max # scan SSIDs: 20
    	max scan IEs length: 195 bytes
    	Coverage class: 0 (up to 0m)
    	Device supports RSN-IBSS.
    	Supported Ciphers:
    		* WEP40 (00-0f-ac:1)
    		* WEP104 (00-0f-ac:5)
    		* TKIP (00-0f-ac:2)
    		* CCMP (00-0f-ac:4)
    	Available Antennas: TX 0 RX 0
    	Supported interface modes:	←ここにAPがあるかを確認、なければアクセスポイントとしては利用できない
    		 * IBSS
    		 * managed
    		 * AP
    		 * AP/VLAN
    		 * monitor
    	Band 1:
    		Capabilities: 0x1072
    			HT20/HT40
    			Static SM Power Save
    			RX Greenfield
    			RX HT20 SGI
    			RX HT40 SGI
    			No RX STBC
    			Max AMSDU length: 3839 bytes
    			DSSS/CCK HT40
    		Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
    		Minimum RX AMPDU time spacing: 4 usec (0x05)
    	~~~~~途中省略~~~~~
    	Device supports TX status socket option.
    	Device supports HT-IBSS.
    	Device supports scan flush.
  3. lspci や lsusb で機種を確認する
  4. # lspci
    00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 14h Processor Root Complex
    	~~~~~途中省略~~~~~
    03:00.0 Network controller: Intel Corporation Centrino Advanced-N 6235 (rev 24)
    04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 09)
    05:00.0 USB controller: ASMedia Technology Inc. ASM1042 SuperSpeed USB Host Controller
    06:00.0 USB controller: ASMedia Technology Inc. ASM1042 SuperSpeed USB Host Controller
  5. driver インストールする
  6. ここ を参考にしてインストールして下さい。

hostapd をインストールして設定をする

  1. hostapd をインストール
  2. # yum install hostapd -y
  3. device の確認
  4. # [root@leom zensin]# ifconfig -a
    lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
            inet 127.0.0.1  netmask 255.0.0.0
            inet6 ::1  prefixlen 128  scopeid 0x10<host>
    	~~~~~途中省略~~~~~
    p33p1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 192.168.xxx.yy  netmask 255.255.255.0  broadcast 192.168.xxx.255
            inet6 fe80::62a4:4cff:feb0:be30  prefixlen 64  scopeid 0x20<link>
            inet6 2400:217e:77c6:c600:62a4:4cff:feb0:be30  prefixlen 64  scopeid 0x0<global>
    	~~~~~途中省略~~~~~
    wlp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
    	~~~~~途中省略~~~~~
            ether ff:c8:74:49:e1:9f  txqueuelen 1000  (Ethernet)
    	~~~~~途中省略~~~~~
  5. hostapd.conf の編集
  6. # vi /etc/hostapd/hostapd.conf
    #
    # This will give you a minimal, insecure wireless network.
    #
    # DO NOT BE SATISFIED WITH THAT!!!
    #
    # A complete, well commented example configuration file is
    # available here:
    #
    #       /usr/share/doc/hostapd-2.0/hostapd.conf
    #
    # For more information, look here:
    #
    #       http://wireless.kernel.org/en/users/Documentation/hostapd
    #
    
    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=3
    #wpa_key_mgmt=WPA-PSK
    #wpa_pairwise=TKIP
    #rsn_pairwise=CCMP
    
    # DO NOT FORGET TO SET A WPA PASSPHRASE!!
    #wpa_passphrase=YourPassPhrase
    
    # Most modern wireless drivers in the kernel need driver=nl80211
    driver=nl80211
    
    # Customize these for your local configuration...
    
    interface=wlp3s0	←無線ランのdeviceの合わせる
    hw_mode=g
    channel=2
    ssid=myssid	←各自で設定して下さい
    wpa=1
    wpa_passphrase=aaaaaaaaaaaaaaaaa	←接続時のネットワーク・セキュリティキーです
    wpa_key_mgmt=WPA-PSK
    wpa_pairwise=TKIP
    rsn_pairwise=CCMP

device(p33p1,wlp3s0)を設定をする

  1. device の設定
  2. 有線ランのIPアドレスはDHCPで取得する
    # vi /etc/sysconfig/network-scripts/ifcfg-p33p1
    DEVICE=p33p1
    TYPE=Ethernet
    BOOTPROTO=dhcp
    DEFROUTE=yes	←念の為に追加する
    IPV4_FAILURE_FATAL=no
    ONBOOT=yes
    HWADDR=e5:05:58:34:08:5d
    PEERDNS=yes
    PEERROUTES=yes
    無線ランのIPアドレスが10.42.1.1の場合です
    # vi /etc/sysconfig/network-scripts/ifcfg-wlan0
    DEVICE=wlp3s0
    BOOTPROTO=static
    HWADDR=ff:c8:74:49:e1:9f	←マックアドレスです
    TYPE=Wireless
    NM_CONTROLLED=no
    USERCTL=no
    IPV6INIT=no
    ONBOOT=yes
    DEFROUTE=no	←念の為に追加する
    MODE=Master	←Fedora20ではこれがないと無線interfaceを認識してくれない
    IPADDR=10.42.1.1	←無線ランのIPアドレスです
    NETWORK=10.42.1.0
    NETMASK=255.255.255.0
    BROADCAST=10.42.1.255
  3. device の確認
  4. # ifconfig -a
    lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
            inet 127.0.0.1  netmask 255.0.0.0
            inet6 ::1  prefixlen 128  scopeid 0x10<host>
    	~~~~~途中省略~~~~~
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    p33p1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 192.168.1.25  netmask 255.255.255.0  broadcast 192.168.1.255
            inet6 fe80::62a4:4cff:feb0:be30  prefixlen 64  scopeid 0x20<link>
            inet6 2400:217e:77c6:c600:62a4:4cff:feb0:be30  prefixlen 64  scopeid 0x0<global> 
    	~~~~~途中省略~~~~~
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    wlp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 10.42.1.1  netmask 255.255.255.0  broadcast 10.42.1.255
            inet6 fe80::caf7:33ff:fea4:bb45  prefixlen 64  scopeid 0x20<link>
            ether ff:c8:74:49:e1:9f  txqueuelen 1000  (Ethernet)
    	~~~~~途中省略~~~~~
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

dhcp を設定をする

    接続するクライアント(無線接続)のアドレスを割り振りさせるために設定する
  1. dhcp のインストール
  2. # yum install dhcp -y
  3. dhcpd.conf の編集
  4. # vi /etc/dhcp/dhcpd.conf
    #
    # DHCP Server Configuration file.
    #   see /usr/share/doc/dhcp*/dhcpd.conf.example
    #   see dhcpd.conf(5) man page
    #
    default-lease-time 600; #クライアントIPアドレスのデフォルトリース時間
    max-lease-time 7200;    #クライアントIPアドレスの最大リース時間
    log-facility local7;    #ログ出力の指定
    
    subnet 10.42.1.0 netmask 255.255.255.0 {
            range 10.42.1.10 10.42.1.50;    #クライアントに付与するIPアドレス
            option routers  10.42.1.1;      #ルーターのIPアドレス
            option domain-name-servers 8.8.8.8, 8.8.4.4;	#DNSサーバーのIPアドレス
    }

スタティックルーティングの設定する

  1. route-wlan0を作成する
  2. device wlp3s0に 10.42.1.0/24 → 192.168.1.1 のルーティングを追加する
    # vi /etc/sysconfig/network-scripts/route-wlan0
    10.42.1.0/24 via 192.168.1.1
  3. network を起動
  4. # systemctl restart network
  5. ルーティングの確認
  6. # route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 p33p1
    10.42.1.0       0.0.0.0         255.255.255.0   U     0      0        0 wlp3s0
    169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 p33p1
    192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 p33p1
  7. 参考
  8. # route del -net 10.42.1.0 netmask 255.255.255.0	←削除

NATの設定

  1. iptables の起動
  2. # systemctl start iptables	←iptables の起動
    # systemctl enable iptables	←iptables の自動起動設定
  3. ip forwardの設定
  4. # vi /etc/sysctl.conf
    net.ipv4.ip_forward=1
    上記は再起動しないと効かないので、今すぐ設定する場合は
    # echo "1 > /proc/sys/net/ipv4/ip_forward"
  5. wlp3s0 - p33p1 間のNATを設定
  6. 下記のコマンドを実行する
    # iptables -t nat -A POSTROUTING -o p33p1 -j MASQUERADE
    # iptables -A FORWARD -i p33p1 -o wlp3s0 -m state --state RELATED,ESTABLISHED -j ACCEPT
    # iptables -A FORWARD -i wlp3s0 -o p33p1 -j ACCEPT
    上記の設定を保存する
    # service iptables save
  7. iptables の再起動
  8. # systemctl restart iptables

hostapd を起動する

# systemctl start hostapd	←hostapd の起動
# systemctl enable hostapd	←hostapd の自動起動設定