WPA_SUPPLICANT.CONF(5) WPA_SUPPLICANT.CONF(5)

wpa_supplicant.conf - فایل پیکربندی برای wpa_supplicant

برنامه wpa_supplicant با استفاده از یک فایل متنی پیکربندی می‌شود که فهرستی از تمام شبکه‌های پذیرفته‌شده و سیاست‌های امنیتی، از جمله کلیدهای پیش‌اشتراک‌گذاری‌شده (PSK) را در بر دارد. برای کسب اطلاعات دقیق درباره قالب پیکربندی و فیلدهای پشتیبانی‌شده، فایل پیکربندی نمونه را، که احتمالاً در مسیر /usr/share/doc/wpa_supplicant قرار دارد، مشاهده کنید.

تمام مسیرهای فایل در این فایل پیکربندی باید از مسیر کامل (مطلق، و نه نسبی نسبت به دایرکتوری کاری) استفاده کنند تا امکان تغییر دایرکتوری کاری فراهم باشد. این حالت زمانی رخ می‌دهد که wpa_supplicant در پس‌زمینه اجرا شود.

تغییرات فایل پیکربندی را می‌توان با ارسال سیگنال SIGHUP به wpa_supplicant مجدداً بارگذاری کرد ('killall -HUP wpa_supplicant'). به همین ترتیب، بارگذاری مجدد را می‌توان با دستور wpa_cli reconfigure نیز آغاز کرد.

فایل پیکربندی می‌تواند شامل یک یا چند بلوک شبکه (network block) باشد؛ برای نمونه، یک بلوک برای هر SSID مورد استفاده. wpa_supplicant به‌طور خودکار بهترین شبکه را بر اساس ترتیب بلوک‌های شبکه در فایل پیکربندی، سطح امنیت شبکه (اولویت با WPA/WPA2 است) و قدرت سیگنال انتخاب خواهد کرد.

1.
شبکه خانگی با WPA-Personal (PSK) و شبکه کاری با WPA-Enterprise به همراه EAP-TLS.
# allow frontend (e.g., wpa_cli) to be used by all users in 'wheel' group
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=wheel
#
# home network; allow all valid ciphers
network={
	ssid="home"
	scan_ssid=1
	key_mgmt=WPA-PSK
	psk="very secret passphrase"
}
#
# work network; use EAP-TLS with WPA; allow only CCMP and TKIP ciphers
network={
	ssid="work"
	scan_ssid=1
	key_mgmt=WPA-EAP
	pairwise=CCMP TKIP
	group=CCMP TKIP
	eap=TLS
	identity="user@example.com"
	ca_cert="/etc/cert/ca.pem"
	client_cert="/etc/cert/user.pem"
	private_key="/etc/cert/user.prv"
	private_key_passwd="password"
}
2.
پیکربندی WPA-RADIUS/EAP-PEAP/MSCHAPv2 با سرورهای RADIUS که از peaplabel قدیمی استفاده می‌کنند (مانند Funk Odyssey و SBR، Meetinghouse Aegis و Interlink RAD-Series)
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=wheel
network={
	ssid="example"
	scan_ssid=1
	key_mgmt=WPA-EAP
	eap=PEAP
	identity="user@example.com"
	password="foobar"
	ca_cert="/etc/cert/ca.pem"
	phase1="peaplabel=0"
	phase2="auth=MSCHAPV2"
}
3.
پیکربندی EAP-TTLS/EAP-MD5-Challenge با هویت ناشناس (anonymous identity) برای ارتباطات رمزگذاری‌نشده. هویت واقعی تنها در داخل یک تونل رمزگذاری‌شده TLS ارسال می‌شود.
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=wheel
network={
	ssid="example"
	scan_ssid=1
	key_mgmt=WPA-EAP
	eap=TTLS
	identity="user@example.com"
	anonymous_identity="anonymous@example.com"
	password="foobar"
	ca_cert="/etc/cert/ca.pem"
	phase2="auth=MD5"
}
4.
پروتکل IEEE 802.1X (یعنی بدون WPA) به همراه کلیدهای پویای WEP (نیازمند هر دو حالت تک‌پخشی و همگانی)؛ استفاده از EAP-TLS برای احراز هویت
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=wheel
network={
	ssid="1x-test"
	scan_ssid=1
	key_mgmt=IEEE8021X
	eap=TLS
	identity="user@example.com"
	ca_cert="/etc/cert/ca.pem"
	client_cert="/etc/cert/user.pem"
	private_key="/etc/cert/user.prv"
	private_key_passwd="password"
	eapol_flags=3
}
5.
مثال فراگیر (Catch-all) که کم‌وبیش تمامی حالت‌های پیکربندی را مجاز می‌داند. گزینه‌های پیکربندی بر اساس سیاست امنیتی مورد استفاده در SSID انتخاب‌شده اعمال می‌شوند. این پیکربندی بیشتر برای آزمایش کاربرد دارد و برای استفاده عادی توصیه نمی‌شود.
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=wheel
network={
	ssid="example"
	scan_ssid=1
	key_mgmt=WPA-EAP WPA-PSK IEEE8021X NONE
	pairwise=CCMP TKIP
	group=CCMP TKIP WEP104 WEP40
	psk="very secret passphrase"
	eap=TTLS PEAP TLS
	identity="user@example.com"
	password="foobar"
	ca_cert="/etc/cert/ca.pem"
	client_cert="/etc/cert/user.pem"
	private_key="/etc/cert/user.prv"
	private_key_passwd="password"
	phase1="peaplabel=0"
	ca_cert2="/etc/cert/ca2.pem"
	client_cert2="/etc/cer/user.pem"
	private_key2="/etc/cer/user.prv"
	private_key2_passwd="password"
}
6.
احراز هویت برای اترنت سیمی (Wired Ethernet). این حالت می‌تواند با رابط‌های wired یا roboswitch استفاده شود (گزینه‌های -Dwired یا -Droboswitch در خط فرمان).
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=wheel
ap_scan=0
network={
	key_mgmt=IEEE8021X
	eap=MD5
	identity="user"
	password="password"
	eapol_flags=0
}

برخی از روش‌های احراز هویت EAP نیازمند استفاده از گواهی‌ها هستند. روش EAP-TLS هم از گواهی سمت سرور و هم کلاینت استفاده می‌کند، در حالی که EAP-PEAP و EAP-TTLS تنها نیازمند گواهی سمت سرور هستند. هنگامی که گواهی کلاینت استفاده می‌شود، یک فایل کلید خصوصی منطبق نیز باید در پیکربندی گنجانده شود. اگر کلید خصوصی از عبارت عبور (passphrase) استفاده می‌کند، این عبارت باید در wpa_supplicant.conf (از طریق private_key_passwd) تنظیم شود.

برنامه wpa_supplicant از گواهی‌های X.509 در قالب‌های PEM و DER پشتیبانی می‌کند. گواهی کاربر و کلید خصوصی می‌توانند در یک فایل گنجانده شوند.

اگر گواهی کاربر و کلید خصوصی در قالب PKCS#12/PFX دریافت شده باشند، باید به قالب مناسب PEM/DER برای wpa_supplicant تبدیل شوند. این کار می‌تواند برای نمونه با دستورات زیر انجام شود:

# convert client certificate and private key to PEM format
openssl pkcs12 -in example.pfx -out user.pem -clcerts
# convert CA certificate (if included in PFX file) to PEM format
openssl pkcs12 -in example.pfx -out ca.pem -cacerts -nokeys

wpa_supplicant(8)، openssl(1)

07 August 2019