# [SOLVED] Problem z wifi z zabezpieczeniami

## JaGenau

Hej!

Jest u nas dostępne wifi dla studentów z takimi zabezpieczeniami:

```
SSID: eduroam

Tryb: Infrastruktura (domyślne)

BSSID: [puste] (domyślne)

Adres MAC: [puste] (domyślne)

MTU: automatycznie (domyślne)

Zabezpieczenia: WPA i WPA2 Enterprise

Uwierzytelniania: Chronione EAP (PEAP)

Anonimowa tożsamość: [puste] (domyślnie)

Wersja PEAP: Wersja 0

Wewnętrzne uwierzytelnianie: MSCHAPv2 (domyślnie)

Nazwa użytkownika: XXXX

Hasło: XXXX
```

Moje domowe wifi z zabezpieczeniami WPA działa bez problemów i łączy się automatycznie. Wcześniej, na Debianie, wystarczyło skonfigurować odpowiednio sieć przez KNetworkManagera (KNM) i po 5 minutach już chodziło, a później łączyło się automatycznie.

Gentoo niestety nie okazało się być takie przyjazne. Przy próbie ustawienia sieci w domu, żeby potem tylko ją uaktywnić, nie chciało zapisać ustawień, jeśli ustawiło się jakiekolwiek zabezpieczenia. Po prostu wyszarzało się OK i tyle. Oczywiście jest także konsola. Niestety utworzenie pliku zgodnie z zaleceniami:

```
ctrl_interface=/var/run/wpa_supplicant

network={

ssid="eduroam"

#scan_ssid=1

key_mgmt=WPA-EAP

eap=PEAP

identity="XXXX"

password="XXXX"

phase1="peaplabel=0"

phase2="auth=MSCHAPV2"

priority=1

}
```

i odpalenie potem:

```
wpa_supplicant -c wpa_supplicant.conf -iwlan0
```

skutkowało próbami połączenia z coraz to nowymi numerami, ale bez skutku. Nie mogło się połączyć i pokazywało:

```
device or resource busy, request to driver failed
```

No to cóż tu począć, wybieram się do admina. Admin opieprzył mnie, że po co mi Gentoo, bo to tylko jedno wielkie użeranie się  :Laughing: 

Ale do rzeczy. Sprawdzamy, czy jest wszystko ok, no dobra, niby jest, ale nie działa. Po godzinie udało się jakoś na siłę włączyć z konsoli z nieaktywnym KNM, ale było to tylko na chwilę, potem padło. Nie wiem, co konkretnie miało na to wpływ, więc wkleję wam loga:

```
cd ../linux-3.7.9-gentoo/

ls

awk '/(WEXT|(MAC|CFG)80211)/' .config

wpa_supplicant -c wpa_supplicant.conf -iwlan0 -Dnl80211

cd

cd /etc/

wpa_supplicant -c wpa_supplicant.conf -iwlan0 -Dnl80211

wpa_supplicant -c wpa_supplicant.conf -iwlan0 -Dnl80211 -d 1

lspci

cd -

cd /usr/src/linux-3.7.9-gentoo/

ls

grep 80211 .config

dhcpcd  -v wlan0

ifconfig wlan0 x.x.x.x 255.255.255.0 

ifconfig wlan0 x.x.x.x netmask 255.255.255.0

route -n

route add default gw x.x.x.x

route -n

ping wp.pl

nano /etc/resolv.conf 

ping wp.pl

/etc/init.d/NetworkManager start

reboot

ip add

ifconfig

ifconfig -a

wpa_cli

cd /boot/

ls

cd /usr/src/

ls

cd linux-3.7.9-gentoo/

ls

less .config

lsmod

lspci

lsmod | grep rt

lsmod | less

lspci

lspci -m

ifoncfig -a

ifconfig -a

iwlist wlan0 scan

dmesg | less

cd /etc/1

cd /etc/

ls

wpa_supplicant -c wpa_supplicant.conf -iwlan0 

ps axu  | grep -i netwok

ps axu  | grep -i netwo

kill 17107

ps axu  | grep -i netwo

wpa_supplicant -c wpa_supplicant.conf -iwlan0 

wpa_supplicant -c wpa_supplicant.conf -iwlan0  -d

wpa_supplicant -c wpa_supplicant.conf -iwlan0  

cat wpa_supplicant

cat wpa_supplicant.conf 

vi wpa_supplicant.conf 

nano wpa_supplicant.conf 

wpa_supplicant -c wpa_supplicant.conf -iwlan0  

dmesg | tail

dmesg | less

dmesg | less

ps axu | grep wpa

kill 17125

ps axu | grep wpa

wpa_supplicant -c wpa_supplicant.conf -iwlan0
```

No i padło. Po restarcie i dopisaniu do conf.d/net linijki:

```
modules="wpa_supplicant"
```

a ogólnie jest tam:

```
#Generated by NetworkManager

###### Global Configuration ######

modules="iwconfig"

###### Connection Configuration ######

#----------------------------------

config_eth0="dhcp"

```

KNM zaczął łączyć. Niestety nie przydzielał DNSa. No i niestety moje odkrycie było przypadkowe, ponieważ łączyło się, kiedy chciało. A kiedy nie chciało, to się nie łączyło. Admin powiedział, że gdyby się taki cud zdarzył, to mam wpisać "nameserver [numer]". Ale bez przesady! Ma się łączyc po wykryciu sieci i bez użerania. Za to stał się pewien mały cud! KNM pozwolił zapisywać sobie ustawienia do łącza (te zabezpieczenia itp.). Ale cóż z tego, skoro za każdym razem wywalało błąd o treści:

```
Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
```

a po naciśnięciu w końcu OK wywalało segfaulta. Ustawienia się zapisały, ale bez hasła. I tak za każdym razem.

Podobny problem był na początku, gdy za każdym razem trzeba było podawać hasło do wifi. Ale tylko raz wywaliło jakiś błąd, bez żadnych segfaultów, normalnie zapisało hasło i teraz pięknie śmiga. Ethernet pięknie działa od samego początku.

Po powrocie do domu kombinuję dalej. KNM został przekompilowany jeszcze raz z flagami:

```
net-misc/networkmanager introspection -avahi bluetooth dhcpcd
```

A do wifi mam ogólnie flagi takie:

```
net-wireless/wpa_supplicant qt4 kernel_linux ssl
```

W jądrze wireless jest ustawiony jak w manualu, no i wifi zresztą w domu działa. Dopisuję siebie-usera do /etc/group w pozycjach wheel, usb, messagebus, polkitd, plugdev (niektóre już były napisane). Pozycji dbus i network na liście nie ma.

Po wpisaniu ck-list-sessions wychodzi:

```
Session1:

        unix-user = '1000'

        realname = '(null)'

        seat = 'Seat1'

        session-type = ''

        active = TRUE

        x11-display = ':0'

        x11-display-device = '/dev/tty7'

        display-device = ''

        remote-host-name = ''

        is-local = TRUE

        on-since = '2013-02-26T17:29:26.036748Z'

        login-session-id = '4294967295'
```

rc-update wywala:

```
NetworkManager |      default                 

             bootmisc | boot                         

           consolekit |      default                 

                cupsd |      default                 

                 dbus |      default                 

                devfs |                       sysinit

                dmesg |                       sysinit

                 fsck | boot                         

             hostname | boot                         

              hwclock | boot                         

              keymaps | boot                         

            killprocs |              shutdown        

                local |      default                 

           localmount | boot                         

              modules | boot                         

             mount-ro |              shutdown        

                 mtab | boot                         

             net.eth0 |      default                 

               net.lo | boot                         

             netmount |      default                 

                 ntpd |      default                 

               procfs | boot                         

                 root | boot                         

            savecache |              shutdown        

                 swap | boot                         

            swapfiles | boot                         

               sysctl | boot                         

                sysfs |                       sysinit

            syslog-ng |      default                 

         termencoding | boot                         

       tmpfiles.setup | boot                         

                 udev |                       sysinit

           udev-mount |                       sysinit

              urandom | boot                         

           vixie-cron |      default                 

                  xdm |      default 
```

Hmmm, karta sieciowa się przyda, no nie? No to mam taką:

iwl3945: Intel(R) PRO/Wireless 3945ABG/BG Network Connection driver for Linux, in-tree:s

iwl3945: Copyright(c) 2003-2011 Intel Corporation

Komp: Toshiba Satellite L300.

Chyba tyle. Ma ktoś jakiś pomysł?Last edited by JaGenau on Thu Feb 28, 2013 1:02 pm; edited 1 time in total

----------

## Jacekalex

Albo  Networkmanager albo ręcznie w wpa-supplicancie.

Generalnie ja na twoim miejscu zainstalowałbym wpa-supplicanta z flagą qt4, wtedy miałbym interfejs graficzny bardzo wygodny, a Network-managera wywalił w kosmos.

I przy okazji ten Admin to zwykła doopa wołowa , jakby miał jakiekolwiek pojęcie o Linuxie, to wiedziałby, że nie można używać równocześnie dwóch programów zarządzających połączeniami sieciowymi, a zarówno NetworkManager  jak i Wicd mają demony, które pilnują wszystkich parametrów połączenia.

I to nie tylko w Gentoo, w Debianie, Ubuntu, Fedorze i Archu sytuacja wygląda identycznie.

Nie znam dystrybucji Linuxa, w której nie byłoby tego problemu.

Z resztą:

 *Quote:*   

> 
> 
> ```
> device or resource busy, request to driver failed
> ```
> ...

 

Typowy objaw, jak NM odpali własny proces wpa_supplicanta- żeby "zaopiekować się" kartą.

Natomiast z siecią na WPAII EAP skutecznie połączysz się tylko przez wpa-supplicanta.

Jak chcesz używać bez problemu wpa_supplicanta, to musisz wywalić z kompa wszystko, co się zwie NetworkManager i Wicd (albo przynajmniej skutecznie wyłączyć), i skonfigurować sieć wg tego sznurka:

http://wiki.gentoo.org/wiki/Wpa_supplicant

Potem wybrać i ustawić odpowiedni sterownik dla wpa_supplicanta, wext to nie jest jedyna opcja, i powinno ruszyć.

Pozdrawiam

 :Wink: 

----------

## Garrappachc

 *Jacekalex wrote:*   

> Natomiast z siecią na WPAII EAP skutecznie połączysz się tylko przez wpa-supplicanta.

 

Z tym się nie zgodzę, wiele razy konfigurowałem tego typu sieci na NetworkManagerze, wszystko działało bez zarzutu.

----------

## JaGenau

Dziękuję bardzo  :Very Happy: 

Jeszcze jedno zapytanie. Mam już zrobiony wpa_supplicant, mam także wpa_gui. Ethernet się łączy z automatu, domowe wifi po uruchomieniu ręcznie, a to z EAP jeszcze nie wiem - sprawdzę jutro.

Wpa_gui nie chce pobierać statusu ani skanować dostępnych sieci - dlaczego tak się dzieje?

Dobra, już nie trzeba, udało mi się z tym poradzić   :Twisted Evil: 

Jutro napiszę wam, czy udało mi się połączyć z siecią z EAP.

----------

## JaGenau

Sieć działa jak należy. Trzeba było zrobić unmerge KNM i dopisać w /etc/conf.d/net:

```
config_eth0=( "dhcp" )

modules_wlan0=( "wpa_supplicant" )

config_wlan0=( "dhcp" )

wpa_supplicant_wlan0="-Dwext -c /etc/wpa_supplicant/wpa_supplicant.conf"

```

a we wpa_supplicant.conf:

```
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=jagenau

update_config=1

network={

[tu ustawienia moich sieci]

}

```

a potem /etc/init.d/net.wlan0 restart i wszystko ładnie działa. Dziękuję wam pięknie za wskazówki  :Mr. Green: 

----------

## Jacekalex

 *Garrappachc wrote:*   

>  *Jacekalex wrote:*   Natomiast z siecią na WPAII EAP skutecznie połączysz się tylko przez wpa-supplicanta. 
> 
> Z tym się nie zgodzę, wiele razy konfigurowałem tego typu sieci na NetworkManagerze, wszystko działało bez zarzutu.

 

Bo widzicie, jedynym programem, który obsługuje w Linuxie połączenia WPA, jest Wpa_supplicant.

Ten działa praktycznie zawsze, a jak czasem ma błąd, to w Linuxie zaczyna się jesień średniowiecza,

 i zazwyczaj od razu albo za chwilę jest poprawiona wersja.

Na szczęście Wpa_supplicant ma dwa własne programy do zarządzania, wpa_cli i wpa_gui.

Natomiast we wszystkich programach do "ułatwiania konfiguracji", jak NM, Wicd czy Wifi-radar, czasem działa lepiej, czasem troszkę gorzej, a czasami wcale.

W dodatku zapewniają one zaledwie może z 60% możliwości normalnego Wpa_supplicanta, np nie obsługują trybu WPS, i nie potrafią się płynnie przełączać między skonfigurowanymi sieciami wg klucza zdefiniowanego w konfigu.

Nie zauważyłem również, żeby NM czy Wicd potrafił obrobić uwierzytelnienie przy pomocy klucza schowanego w chipie TPM, a Wpa_supplicant obrabia takie polączenia.

Pozdrawiam

 :Cool: 

----------

