Ubuntu16.04でアクセスポイント
はじめに
Ubuntu16.04を用いてアクセスポイント化する方法はいくつか検索すれば出てくるのですが,再起動したりすると設定が消えるのでその辺も踏まえてメモ.
hostapdの設定
hostapdをインストールする hostapdとはユーザー空間で動作するアクセスポイントと認証サーバーである.
sudo apt install hostapd
sudo vim /etc/hostapd/hostapd.conf
hostapdの設定ファイルを作っていく. インターフェイス名とかはiwconfigとかでいい感じに確認する driverはよくわからんけどnl80211で大抵OKらしい.IEEEの規格とかの話なのかな?
#インタフェース名 #iwconfigとかでwifiのインターフェイス名を確認できます. interface=wlp2s0 #無線LANアダプタのドライバ driver=nl80211 #クライアントに表示される無線LANアクセス・ポイント(SSID)名 ssid=SSID hw_mode=g channel=7 wpa=2 # WPA2 #認証パスワード wpa_passphrase=PASS wpa_key_mgmt=WPA-PSK rsn_pairwise=CCMP
hostapd.confをhostapdサービス起動時の設定ファイルとして設定.
sudo vim /etc/default/hostapd
10行目のコメントアウトを外して下に書き換える
DAEMON_CONF="/etc/hostapd/hostapd.conf"
DHCPの設定
isc-dhcp-serverをインストールする
sudo apt install isc-dhcp-server
dhcpdの設定
sudo vim /etc/dhcp/dhcpd.conf
一番下に下記を追加
subnet 192.168.190.0 netmask 255.255.255.0 { range 192.168.190.50 192.168.190.100; option domain-name-servers 192.168.189.7, 8.8.8.8; option domain-name "internal.example.org"; option routers 192.168.190.1; option broadcast-address 192.168.190.255; default-lease-time 600; max-lease-time 7200; }
dhcpdのインターフェイスを設定する.
sudo vim /etc/default/isc-dhcp-server
21行目を下記に書き換える.
INTERFACES="wlp2s0";
IPフォワーディングの有効化
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
sudo vim /etc/sysctl.conf
28行目のコメントアウトを外す.
wifiのNIC設定
sudo vim /etc/network/interfaces
一番下に下記を追加
auto wlp2s0 iface wlp2s0 inet static address 192.168.190.1 netmask 255.255.255.0
NetworkManagerの停止
NetworkManagerの停止と,自動起動の無効. これやらなくても大丈夫な気がする.
sudo stop network-manager echo "manual" | sudo tee /etc/init/network-manager.override
iptablesの設定
sudo iptables -t nat -A POSTROUTING -s 192.168.190.0/255.255.255.0 -o enp3s0 -j MASQUERADE sudo sh -c "iptables-save > /etc/iptables.ipv4.nat" sudo vim /etc/network/interfaces
下記のようにpre-upの記述を追加
auto wlp2s0 iface wlp2s0 inet static pre-up iptables-restore /etc/iptables.ipv4.nat address 192.168.190.1 netmask 255.255.255.0