Szavazás

Milyen virtualizációt használsz?

Online felhasználók

Jelenleg 0 felhasználó van a webhelyen

Új felhasználók

  • Morello
  • gyo
  • jbaksa
  • tomassy
  • Kalacska13

Ajánlott böngészők

Google Chrome

Jelenlegi hely

Bluetooth beállítás és használat, Slackware-linux -on.

Adatátvitel számítógép és telefon között.

Üdvözöllek!!!
Mivel én elég sokat nyüglődtem mire beállítottam a bluetooth -ot Slackware alatt, gondoltam csinálok egy rövid doksit, hátha másnak segítségére lesz. Vágjunk bele!!!

Szükséges kernelopciók:
Ha gyári kernelt használsz, akkor valszeg, bele vannak téve modulba a bluetooth -hoz szükséges dolgok.
Gondoskodj róla, hogy betöltődjenek.
Megadhatod az /etc/hotplug állományba, vagy töltsd be őket kézzel.
A modulba fordított meghajtókat megtalálod, a /lib/modules/`uname -r`/kernel/drivers és /net könyvtárakban.
Ha saját kernelt használsz, mondjuk 2.6 -os szériát, akkor fordítsd be ( vagy igény szerint,tedd modulba ):

Bluetooth subsystem support --->

  • Bluetooth subsystem support ( CONFIG_BT ) A blueZ bekapcsolása
  • L2CAP protocol support ( CONFIG_BT_L2CAP) Alapvető bluetooth protokoll
  • SCO links support ( CONFIG_BT_SCO ) Bluetooth hangátvitel
  • RFCOMM protocol support ( CONFIG_BT_RFCOMM ) Soros adattranszfer
  • RFCOMM TTY support ( CONFIG_BT_RFCOMM_TTY ) A /dev/rfcomm eszközöket, soros portra képezi le.
  • BNEP protocol support ( CONFIG_BT_BNEP ) Bluetooth hálózat
  • Multicast filter support ( CONFIG_BT_BNEP_MC_FILTER ) fejlett szűrési eljárások hálózatkezeléshez.
  • Protocol filter support ( CONFIG_BT_BNEP_PROTO_FILTER ) fejlett szűrési eljárások.

Bluetooth device drivers --->

  • HCI USB driver ( CONFIG_BT_HCIUSB ) USB eszközök támogatás
  • SCO (voice) support ( CONFIG_BT_HCIUSB_SCO ) hangátvitel támogatás
  • HCI VHCI (Virtual HCI device) driver ( CONFIG_BT_HCIVHCI ) Virtuális bluetooth eszköz támogatás.

Ezenkívül vannak még opciók, amikre ha szükség van, tedd bele, pl: bluetooth ISDN támogatás, de itt erről nem lesz szó.

Szükséges programok, bluetooth használatához:

  • bluez-utils
  • bluez-libs
  • openobex
  • openobex-apps
  • Python
  • pyGTK

Opcionális programok: ( Ezek helyett használhatsz mást is, igénynek megfelelően ).

  • obexftp
  • kdebluetooth
  • kmobiletools

Ellenőrizzük, hogy megcsinálja -e a rendszer a szükséges eszközállományokat.

[csabi@slackware >~]$ ls -l /dev/rfcomm*
Ha nincsenek, készítsünk egy scriptet, ami megcsinálja nekünk:
#!/bin/sh
i=0;
while [ $i -lt 256 ]; do
if [ ! -c /dev/rfcomm$i ]; then
mknod -m 666 /dev/rfcomm$i c 216 $i
fi
i=`expr $i + 1`
done

Mentsük el, mondjuk mkrfcomm néven.
Adjunk rá futtatási jogot, másoluk be az /usr/local/bin könyvtárba, majd futtassuk le.
Ezzel meglesznek az eszközfájlok.
A programokat szerintem rakd fel forrásból, mert a netről leszedett csomagban nem volt benn a bluetooth támogatás.
De ha sikerül feltöltenem az oldalra, akkor felteszem az általam készített csomagokat, ha gondolod próbáld ki azokat.

Ahhoz hogy működjön a bluetooth, indítsuk el a démonokat, amik a felderítést, a szolgáltatásközzétételt, kapcsolódást, stb végzik.
Egyenlőre kézzel, majd később készítünk egy indítóscriptet, ami majd ezt elvégzi helyettünk.
Root jogosultságok szükségesek az indításhoz.
Adjuk ki a következő parancsokat:

[root@slackware >/home/csabi]# hcid
[root@slackware >/home/csabi]# sdpd
A hci démon, a rendszeren található bluetooth eszközök inicializálását és a kötést ( bonding ) vezérli.
Nézzük meg a helyi eszközöket: [root@slackware >~]# hciconfig -a Ez kilistázza, amit talál. Nálam pl:
[root@slackware >~]# hciconfig -a
hci0: Type: USB
BD Address: 00:0B:0D:09:40:CF ACL MTU: 120:20 SCO MTU: 64:0
DOWN
RX bytes:1070 acl:12 sco:0 events:46 errors:0
TX bytes:579 acl:12 sco:0 commands:26 errors:0
Features: 0xff 0xff 0x05 0x38 0x18 0x18 0x00 0x00
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
Link policy: RSWITCH HOLD SNIFF PARK
Link mode: SLAVE ACCEPT
Mutatja, hogy van egy hci0 interface -em, ami jelen pillanatban nincs beüzemelve.
Húzzuk fel az interface -t:
[root@slackware >~]#hciconfig hci0 up
Ezután nézzük meg, mit mutat:
[root@slackware >~]# hciconfig -a
hci0: Type: USB
BD Address: 00:0B:0D:09:40:CF ACL MTU: 120:20 SCO MTU: 64:0
UP RUNNING PSCAN ISCAN
RX bytes:1187 acl:12 sco:0 events:61 errors:0
TX bytes:893 acl:12 sco:0 commands:41 errors:0
Features: 0xff 0xff 0x05 0x38 0x18 0x18 0x00 0x00
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
Link policy: RSWITCH HOLD SNIFF PARK
Link mode: SLAVE ACCEPT
Name: 'slack0'
Class: 0x3e0100
Service Classes: Networking, Rendering, Capturing
Device Class: Computer, Uncategorized
HCI Ver: 1.2 (0x2) HCI Rev: 0x0 LMP Ver: 1.2 (0x2) LMP Subver: 0x757
Manufacturer: Silicon Wave (11)
Most már működik a hci0 interface és a következőket mutatja:

Az eszközünk címe: 00:0B:0D:09:40:CF
UP: Az interface fel van húzva.
PSCAN ISCAN: Az bluetooth engedélyezi a hozzá való csatlakozást és az eszköz, távoli eszközök számára lekérdezhető.
Name:'slack0': Hozzánk kapcsolódó eszközök, ezen a néven tudják elérni a gépünket és a mi bluetooth eszközünk ezen a néven hirdeti magát más eszközök felé.
Manufacturer: Silicon Wave: Megmutatja, milyen gyártó lapkakészletével üzemel a bluetooth.

Ezeket a beállításokat megváltoztathatjuk a /etc/bluetooth/hcid.conf állomány szerkesztésével.
Megadhatjuk az eszköznevet, hogy automatikusan beállítsa -e az interface -t, ha elindul a démon, stb.
A hciconfig --help kapcsolóval, listát kapunk, az opciókról.

Most már biztos, hogy az eszköz műxik. Derítsük fel, a közelben lévő és bekapcsolt bluetooth eszközünket.
( Ehhez már nem kell a root jog ).

[csabi@slackware >~]$ hcitool scan
Nálam ezt adja vissza:
[csabi@slackware >~]$ hcitool scan
Scanning ...
00:16:75:FE:64:6A Mtux
Megtalálta a telefont, kiírta a címét és Mtux néven azonosította. ( Ehhez persze a telefonon be kell állítani, a "találjon meg" opciót ).
A hcitool --help paranccsal kilistázhatjuk a meghívható opciókat.
Ezután megpingethetjük a telefonunkat, hogy műxik -e a csomagküldés. Ehhez használjuk a l2ping parancsot.
[root@slackware >~]# l2ping 00:16:75:FE:64:6A
Ping: 00:16:75:FE:64:6A from 00:0B:0D:09:40:CF (data size 44) ...
44 bytes from 00:16:75:FE:64:6A id 0 time 37.91ms
44 bytes from 00:16:75:FE:64:6A id 1 time 16.08ms
44 bytes from 00:16:75:FE:64:6A id 2 time 17.92ms
44 bytes from 00:16:75:FE:64:6A id 3 time 17.96ms
4 sent, 4 received, 0% loss
Ahogy látszik, tökéletes a csomagküldés.
Ezután állítsuk be a kötést a két eszköz között.
Ehhez szükség lesz majd egy numerikus pin kódra, amivel a két eszköz hitelesíti egymást.
( Fontos, hogy numerikus legyen, mert a legtöbb telefon, csak számokból álló pin kódot tud továbbítani.
Állítsuk be, a /etc/bluetooth/pin állományt. Használjuk pin kódnak, mondjuk a 0000 numerikus kódot.
[root@slackware >~]# echo 0000 > /etc/bluetooth/pin
Kössük össze a két eszközt. Ehhez használjuk az rfcomm parancsot:
[root@slackware >~]# rfcomm connect 00:16:75:FE:64:6A
Ezután a telefonon megjelenik, az összekapcsolódás opció, fogadjuk el.
Kérni fogja a pint. Adjuk meg neki, amit beállítottunk az /etc/bluetooth/pin állományban. ( 0000 ).
A számítógépen megjelenik egy kis ablak, ( ehhez kell a python-gtk ). Írjuk be oda is a 0000 kódot és fogadjuk el.
Megjelenik konzolon a következő üzenet:
[root@slackware >~]# Connected /dev/rfcomm0 to 00:16:75:FA:64:6E on channel 1
codess CTRL-C for hangup
Nyomjunk neki egy CTRL-C -t.
A telefon is eltárolja az eszközünket.
Most már van beregisztrált kapcsolatunk, számítógép és telefon között. Derítsük ki a telefon elérhető szolgáltatásait.
Ehhez használjuk az SDP -t. Ezt böngészésre és keresésre használhatjuk.
A böngészésre, a távoli eszköz egy listával válaszol, ami közzéteszi milyen szolgáltatásokat lehet elérni.
A keresésnél, az adott szolgáltatás részleteit tudjuk lekérdezni.
Az sdp démont már az elején elindítottuk, ez teszi lehetővé, hogy a távoli eszközök lekérdezhessék a gépünket.
Az sdptool paranccsal elvégezhetjük a beállítást, attól függően, mit szeretnénk beállítani.
Kérdezzük le az eszközök szolgáltatásait. Ha több eszköz van a közelben, akkor mindegyiket megkeresi.
Mivel nálam csak a telefon van, ezt fogja megtalálni. ( remélem :-))

Adjuk ki a következő parancsot:

[csabi@slackware >~]$ sdptool browse
Nálam így néz ki: ( néhány sort kihagyok, mert túl hosszú lenne ). [csabi@slackware >~]$ sdptool browse
Inquiring ...
Browsing 00:16:75:FE:64:6A ...
Service RecHandle: 0x0
Service Class ID List:
"SDP Server" (0x1000)
Protocol Descriptor List:
"L2CAP" (0x0100)
"SDP" (0x0001)
Profile Descriptor List:
"SDP Server" (0x1000)
Version: 0x0100

Service Name: Dial-up networking Gateway
Service Description: Dial-up networking Gateway
Service Provider: Motorola
Service RecHandle: 0x10001
Service Class ID List:
"Dialup Networking" (0x1103)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 1
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
...
Profile Descriptor List:
"Dialup Networking" (0x1103)
Version: 0x0100

Service Name: Voice Gateway
Service Description: Headset Audio Gateway
Service Provider: Motorola
Service RecHandle: 0x10003
Service Class ID List:
"Headset Audio Gateway" (0x1112)
"Generic Audio" (0x1203)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 3
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
...
Profile Descriptor List:
"Headset" (0x1108)
Version: 0x0100

Service Name: Hands-Free voice gateway
Service Description: Hands-Free voice gateway
Service Provider: Motorola
Service RecHandle: 0x10007
Service Class ID List:
"Handfree Audio Gateway" (0x111f)
"Generic Audio" (0x1203)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 7
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
...
Profile Descriptor List:
"Handsfree" (0x111e)
Version: 0x0101

Service Name: OBEX Object Push
Service Description: OBEX Object Push
Service Provider: Motorola
Service RecHandle: 0x10008
Service Class ID List:
"OBEX Object Push" (0x1105)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 8
"OBEX" (0x0008)
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
...
Profile Descriptor List:
"OBEX Object Push" (0x1105)
Version: 0x0100

Service Name: OBEX file transfer
Service Description: OBEX file transfer
Service Provider: Motorola
Service RecHandle: 0x10009
Service Class ID List:
"OBEX File Transfer" (0x1106)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 9
"OBEX" (0x0008)
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
...
Profile Descriptor List:
"OBEX File Transfer" (0x1106)
Version: 0x0100

Ha csak egyetlen eszközt szeretnénk lekérdezni, adjuk meg paraméternek, az eszköz BDADDR címét. [csabi@slackware >~]$sdptool browse 00:16:75:FE:64:6A
Látható hogy megtalálta a telefont, lekérdezte és kiírta milyen szolgáltatásokat támogat.

  • Hálózati átjáró
  • hangátvitel
  • OBEX adatcsere
  • OBEXFTP szolgáltatás

Ezek közül a két utóbbival foglalkozunk most, mert célunk az adatcsere a telefon és a számítógép között.
Ehhez két protokoll áll rendelkezésre:

  • OBEX PUSH
  • OBEX FTP

Kezdjük az OBEX PUSH -sal.

Az OBEX PUSH alkalmazással adatokat sugározhatunk át, egyik eszközről a másikra.
Ehhez az openobex-apps csomagban található obex_test parancsot használhatjuk.
Kétféle módban működik.

  • Az egyik, mikor a számítógépről küldünk adatot a telefonra, ekkor kliensként működik a program.
  • A másik, amikor a telefonról küldünk adatot a számítógépre. Ekkor, szerver állapotba kell kapcsolni.
Küldjük adatot a telefonra:
Először is, meg kell határoznunk az RFCOMM portot, amin az OBEX PUSH kommunikál. Ezt kiírta az sdptool parancs, de lekérdezhetjük így is:
[csabi@slackware >~]$ sdptool search OPUSH | grep Channel
Channel: 8
Ugyanez található az sdptool browse parancs kimenetében is: [csabi@slackware >~]$ Service Name: OBEX Object Push
Service Description: OBEX Object Push
Service Provider: Motorola
Service RecHandle: 0x10008
Service Class ID List:
"OBEX Object Push" (0x1105)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 8
.......
Most már tudjuk, hogy a 8 -as csatornán ül az OPUSH.
Regisztráljuk a szolgáltatást:
[csabi@slackware >~]$ sdptool add --channel=8 OPUSH
OBEX Object Push service registered
Tudjuk, hogy a telefon címe, 00:16:75:FE:64:6A.
Most már csak küldenünk kell, mondjuk egy képet a telefonra:
Adjuk ki a parancsot:
[csabi@slackware >~/kepek]$ obex_test -b 00:16:75:FE:64:6A 8
Using Bluetooth RFCOMM transport
OBEX Interactive test client/server.
> c
Connect OK!
Version: 0x10. Flags: 0x00
> p ./tiger.jpg tiger.jpg
PUT file (local, remote)> name=./tiger.jpg, size=275615
Going to send 275615 bytes
Made some progress...
Made some progress...
Made some progress...
Made some progress...
Made some progress...
Made some progress...
PUT successful!

Következő történt:
Beléptem a könyvtárba, ahol a képet tároltam.
Az obex_test programnak megadtam a -b kapcsolót, ami bluetooth -ot jelent.
Megadtam neki, a telefon címét ( BDADDR ) és a csatornát, amin keresztül küldenie kell. ( ezt találtuk meg az sdptool kimenetében ).
Ezután a program kérte hogy válasszak, milyen üzemmódba szeretném, hogy működjön.
Kliens módot adtam meg. ( c ).
Kiírta hogy kapcsolódás rendben, majd adott egy promptot.
Nyomtam egy "p" billentyűt, ami annyit jelent, ( put ) töltsd fel a ./tiger.jpg képet, tiger.jpg néven a telefonra.
Oszt feltöltötte. A telefonon meg elfogadtam.

Most küldjünk a telefonról képet a gépre:
Ehhez a következők kellenek:
Lépjünk be a könyvtárba, ahova a képet szeretnénk tenni.
A csatornát hozzáadtuk már az előbb, de ha nincs regisztrálva az OPUSH akkor add ki az előbb látott parancsot:

[csabi@slackware >~]$ sdptool add --channel=8 OPUSH
OBEX Object Push service registered
[csabi@slackware >~/kepek]$ obex_test -b ff:ff:ff:00:00:00 8
Using Bluetooth RFCOMM transport
OBEX Interactive test client/server.
> s
connect_server()
Server request finished!
server_done() Command (00) has now finished
Unknown event 0b!
Made some progress...
Made some progress...
Made some progress...
put_server()
put_server() Skipped header 42
put_server() Found name
put_server() Skipped header c3
put_server() Found body
Filename = csabi.png
Wrote csabi.png (12561 bytes)
Server request finished!
server_done() Command (02) has now finished
We got a disconnect-request
Server request finished!
Disconnect done!
>

Itt pedig az történt, hogy a bluetooth speciális címét adtam meg szervercímnek.
Az ff:ff:ff:00:00:00 cím, a bluetooth eszközünk, helyi címe.
A csatornáról és a -b kapcsolóról már volt szó.
Amikor szerver üzemmódra áll a program, akkor ad egy promptot, ahol egy "s" billentyűt nyomtam. ( server ).
Ezután a telefonról elküldtem a képet a gépre.
Utána a fényképem ott vigyorgott, a /home/csabi/kepek könyvtárba, csabi.png néven.
Az sdptool --help paranccsal sok opciót megtudhatunk, pl: szolgáltatás eltávolítása, protokollok nevei amivel regisztrálni kell a szolgáltatást, stb.

Az obexftp.
Az obexftp programmal, ftpszerű le és feltöltéseket végezhetünk, lekérdezhetjük a telefonon levő mappák neveit, stb.

[csabi@slackware >~]$ obexftp -b -l
Scanning ...
Using 00:16:75:FE:64:6A Mtux
Browsing 00:16:75:FE:64:6A ...
Channel: 9
Connecting...done
Receiving "(null)"...|?xml version="1.0" ?>
!DOCTYPE folder-listing SYSTEM "obex-folder-listing.dtd">
folder-listing>
parent-folder />
folder name="audio" size="0" type="folder" modified="19700101T000000Z" user-perm="RW" />
folder name="video" size="0" type="folder" modified="19700101T000000Z" user-perm="RW" />
folder name="picture" size="0" type="folder" modified="19700101T000000Z" user-perm="RW" />
/folder-listing>
done
Disconnecting...done
Kilistázta a mappákat. Van audio, video, picture mappánk a telefonon.
Ugyanígy kilistázhatjuk a mappák tartalmát is. Pl: Nézzünk bele a picture mappába:
[csabi@slackware >~]$ obexftp -b -l picture
Scanning ...
Using 00:16:75:FE:64:6A Mtux
Browsing 00:16:75:FE:64:6A ...
Channel: 9
Connecting...done
Receiving "picture"...|
!DOCTYPE folder-listing SYSTEM "obex-folder-listing.dtd">
folder-listing>
parent-folder />
....
file name="renike1.jpg" size="41003" type="image/jpeg" modified="20060527T192052Z" user-perm="RW" />
....
/folder-listing>
done
Disconnecting...done
Megtalálta a képeket, a picture mappába. ( Csak egyet másoltam ide ). Töltsük fel a gépre, a renike.jpg képet:
[csabi@slackware >~]$ obexftp -b 00:16:75:FE:64:6A -B 9 -g picture/renike1.jpg
Browsing 00:16:75:FE:64:6A ...
Channel: 9
Connecting...done
Receiving "picture/renike1.jpg"... Sending "picture"... done
|done
Disconnecting...done
Ezután megnézhetjük a képet a gépen.
Röviden:
A -b kapcsoló a bluetooth -ot jelenti, a cím a telefon címe, a -B 9 a csatornát, amin kommunikál az obexftp, a -g pedig a get -et jelenti. ( letöltés ).
Küldjünk képet a telefonra, mondjuk a $HOME/kepek/csabi.png -t.
[csabi@slackware >~]$ obexftp -b 00:16:75:FE:64:6A -B 9 -p /home/csabi/kepek/csabi.png
Browsing 00:16:75:FE:64:6A ...
Channel: 9
Connecting...done
Sending "/home/csabi/kepek/csabi.png"...-done
Disconnecting...done

És már fenn is van.
Itt csak az változott, hogy nem -g van a parancssorba, hanem -p azaz put.
Az obexftp --help paranccsal kilistázhatjuk a lehetséges opciókat.

Grafikus alkalmazások:
Használhatunk grafikus programokat is, bár ezekből nincs sok, de azért lehet találni.
Mivel a Slackware -ben a Gnome unsupported, ezért inkább a KDE -s alkalmazásokkal foglalkoznék.
( Bár kipróbáltam a gnome-bluetooth -ot is, mivel a gDesklets miatt fenn vannak a gnome programjai, de a KDE -s alkalmazások jobban bejöttek ).

A kdebluetooth program mindazt megcsinálja helyettünk, amiről én itt írtam, csak a megfelelő csomagok kellenek neki.
Bár béta verziót találtam, azért nagyon jól működött, fenn is hagytam.
Csináltam belőle csomagot, majd kérek Zool -tól upload account -ot és feltöltöm, ha valaki szeretné használni.

A kmobiletools programmal beolvastathatjuk a telefonkönyvet, SMS -eket, stb.
Nagyon jól műxik, csak a működési idejére, kötni kell az eszközhöz a telefont, de ez nem nehéz, már írtam róla.
Ebből is csináltam csomagot.

Ezeknek a csomagoknak egyetlen hátránya van, hogy arts nélkül fordítottam őket.
Mivel én nem használok KDE -t, nincs fenn az arts. Nincs bajom a KDE -vel, csak hát... Fluxbox megszállott vagyok. :-)

Indítóscript:
Mivel a Slackware alapból nem készít nekünk indítóscriptet, ezt nekünk kell megtennünk.
Nem sok dolgunk van, annyi, hogy fussanak a démonok és lehessen újraindítani, vagy leállítani ha akarjuk.
Mivel ebben az esetben a telefont nem csatoljuk állandóan a gépre, nem szükséges, hogy minden rendszerindításkor elinduljanak.
( Nálam legalábbis ).
Ezért én a következő megoldást választottam:
Udev -et használok eszköz beillesztéshez, ami akkor csinál csak eszközállományt, ha csatolva van a bluetooth.
Lekérdezem a systool -lal a bluetooth product nevét és készítek hozzá nevet a /udev könyvtárba:

[csabi@slackware >~]$ systool -vb usb
Bus = "usb"
Device = "3-3.2"
Device path = "/sys/devices/pci0000:00/0000:00:02.1/usb3/3-3/3-3.2"
bConfigurationValue = "1"
bDeviceClass = "e0"
bDeviceProtocol = "01"
bDeviceSubClass = "01"
bMaxPacketSize0 = "64"
bMaxPower = " 50mA"
bNumConfigurations = "1"
bNumInterfaces = " 2"
bcdDevice = "1500"
bmAttributes = "a0"
configuration =
devnum = "6"
idProduct = "0001"
idVendor = "1310"
manufacturer = "SiW"
maxchild = "0"
product = "SiW"
serial = "CF40090D0B00"
speed = "12"
uevent = store method only>
version = " 1.10"
Az bluetooth -ot, az "SiW" névvel azonosítja majd az udev.
Hozzuk létre az új udev.rules fájlt:
[root@slackware >~]# echo BUS=="usb", SYSFS{product}=="SiW", NAME="bluetooth%n" > /etc/udev/rules.d/40-udev.rules
Ezután, ha rá van dugva a bluetooth, akkor megcsinálja az /udev könyvtárba, az eszközfájlt bluetooth néven.

Készítsünk indítóscriptet, ami gondoskodik róla, hogy indítsa a démonokat:

#!/bin/sh
# bluetooth kezelo

HCIDAEMON=/usr/sbin/hcid
SDPDAEMON=/usr/sbin/sdpd
HCIIFACE=`hciconfig -a | grep hci* | awk '{print $1}' | sed 's/://g'`

daemonstart()
{
$HCIDAEMON 1>/dev/null 2>/dev/null ;
if [ $? -eq 0 ]
then echo "[ A hcidémon indul... ]"
else echo "[ Hiba!!! ]"
exit 1
fi

$SDPDAEMON 1>/dev/null 2>/dev/null ;
if [ $? -eq 0 ]
then echo "[ Az sdpdémon indul... ]"
else echo "[ Hiba!!! ]"
exit 1
fi
}

daemonstop()
{
hciconfig -a | grep UP 1>/dev/null 2>/dev/null ;
if [ $? -eq 0 ]
then hciconfig $HCIIFACE down ;
echo "[ A $HCIIFACE leáll ]"
else echo "[ Az $HCIIFACE nincs felhúzva ]"
fi

ps ax | grep hcid 1>/dev/null 2>/dev/null ;
if [ $? -eq 0 ]
then killall hcid ;
echo "[ A hcidémon leáll ]"
else echo "[ A hcidémon nem fut ]"
fi

ps ax | grep /usr/sbin/sdpd 1>/dev/null 2>/dev/null ;
if [ $? -eq 0 ]
then killall sdpd ;
echo "[ Az sdpdémon leáll ]"
else echo "[ Az sdpdémon nem fut ]"
fi
}

daemonrestart()
{
hciconfig $HCIIFACE down ;
echo "[ Az $HCIIFACE leáll ]"
killall hcid ;
echo "[ A hcidémon leáll ]"
killall sdpd ;
echo "[ Az sdpdémon leáll ]"

$HCIDAEMON 1>/dev/null 2>/dev/null ;
if [ $? -eq 0 ]
then echo "[ A hcidémon indul... ]"
else echo "[ Hiba!!! ]"
exit 1
fi

$SDPDAEMON 1>/dev/null 2>/dev/null ;
if [ $? -eq 0 ]
then echo "[ Az sdpdémon indul... ]"
else echo "[ Hiba!!! ]"
exit 1
fi
}

case "$1" in
start)
daemonstart;;
stop)
daemonstop;;
restart)
daemonrestart;;
*) echo "Lehetséges opciók: start | stop | restart" ; exit 2 ;;
esac

exit 0

Utána írd be a /etc/rc.d/rc.M fájlba, a legvégére ( lényeges, hogy a legvégére ) a következőt:
# Ha benn van a bluetooth beindítja az indítóscriptet
if [ -c /udev/bluetooth* ];
then chmod 755 /etc/rc.d/rc.bluetooth ;
echo "[ A bluetooth aktív, indítom a szolgáltatást... ]"
./etc/rc.d/rc.bluetooth start
else chmod 644 /etc/rc.d/rc.bluetooth
fi
És készíts egy rövid scriptet, bluestart néven, a /usr/local/bin könyvtárba: #/bin/sh
chmod 755 /etc/rc.d/rc.bluetooth
exit 0

A lényeg:
Ha a rendszer indításkor talál bluetooth* eszközfájlt, akkor elindítja a démonokat és használhatod a bluetooth -ot.
Ha nem talál, akkor leveszi a futtatást a scriptről és nem indul a szolgáltatás.
Ha utána menetközben rádugod a bluetooth -ot, futtasd a bluestart scriptet:

[root@slackware >~]# bluestart
Ez futtathatóvá teszi a /etc/rc.d/rc.bluetooth scriptet.
Majd indítsd a bluetooth szolgáltatást:
[root@slackware >~]# /etc/rc.d/rc.bluetooth start
[ A hcidémon indul... ]
[ Az sdpdémon indul... ]

A scriptet mindenki saját maga állíthatja be, de ez csak akkor műxik, ha ugyanígy udev -et használsz.
Nem muszály ilyen komplikáltan, de Én így használom.
Bocsi, de kicsit hosszúra sikeredett :-)
Szevasztok

Témakörök: 

Hozzászólások

Koszi a cikket Csabi.:) Kicsit alakitottam rajta a < pre > tagot nem szerette, helyette < code > lett.:)

-------------------------------------
"Nekem káosz kell, nem bírom a rendet
Zaj kell, ami megöli a csendet
Élet kell és szabadság
nem valami ostoba hazugság"

Remek cikk, gratula!
Egy kérdés: miért az rc.M-et használod a bt indítására, miért nem az rc.local-t?

Üdv,
Béka

tamas.csabi képe

Szevasztok
jbekesi írta...
Remek cikk, gratula!

Köszönöm szépen, remélem hasznát veszi valaki.

jbekesi írta...
Egy kérdés: miért az rc.M-et használod a bt indítására, miért nem az rc.local-t?

Pusztán, csak a rend kedvéért. :-)
Mivel sok szolgáltatást onnan ellenőriz a rendszer, ( az rc.local -t is ), azért gondoltam, hogy csinálok neki egy külön bejegyzést. Végülis onnan is lehetne, csak azért gondoltam, hogy az induljon utoljára, mert akkor már biztos hogy futni fognak olyan szolgáltatások, amik kellenek a bluetooth -nak. (pl: udev, hotplug, usb ).
Én eddig nem használtam sem a hotplugot, sem az udev -et, minden az rc.local -ból indult. Azért gondoltam, hogy biztos ami biztos utoljára induljon, mikor már megvannak a szükséges dolgok.
De igazad van, végülis onnan is lehet indítani.
Meg lehetne úgyis, hogy az udevstart scriptbe beleépítem a rc.bluetooth start parancsot és akkor egy paranccsal el lehet indítani a szolgáltatást.
Meg nálam az rc.local -ban vannak a wireless lan kártya beállításai, meg a netfilter onnan indul, stb és csak az átláthatóság vezérelt.
Mégegyszer köszi a gratulációt :-)
Ha lesz egy kis időm, készítek majd leírást a többi opcióról is.
Szevasztok

Slackware 10.2 kernel 2.6.15
Fluxbox

Lehet, hogy a

 tag valahol zavaró, de így egy kicsit érdekes lett egy-két helyen a szöveg:

gécode

:)

A cikk viszont tetszett!!! Ha lessz vmi blotooth cuccom tuti hasznos lesz. Köszi.
Úgyis ilyen telefont szeretnék.

"Néha kicsit bizonytalan vagyok... Vagy mégsem???"

Koszi h szoltal.:) eszre se vettem.:) pre tag hasznalata soran sajnos szet esett az oldal formazasa.. azonnal javitom a gécodokat.:D

koszi meg1x:)
-------------------------------------
"Nekem káosz kell, nem bírom a rendet
Zaj kell, ami megöli a csendet
Élet kell és szabadság
nem valami ostoba hazugság"

Meg1x koszi.:) hiba javitva.:)
-------------------------------------
"Nekem káosz kell, nem bírom a rendet
Zaj kell, ami megöli a csendet
Élet kell és szabadság
nem valami ostoba hazugság"

Ha nagy dolgokban nem is tudok újat adni, ilyen kicsiségekben próbálok segíteni.

Nagyon bírom ezt az oldalt. :)

"Néha kicsit bizonytalan vagyok... Vagy mégsem???"

Orulok neki, hogy birod az oldalt.:)

-------------------------------------
"Nekem káosz kell, nem bírom a rendet
Zaj kell, ami megöli a csendet
Élet kell és szabadság
nem valami ostoba hazugság"

Sziasztok!
Próbálkozom a leírás alapján beállítani a kapcsolatot a telómmal. Odáig működik is a dolog, hogy pingelem a telót. Viszont az rfcomm connect ezt eredményezi:
Can't connect RFCOMM socket: No route to host
Mi lehet a gond?

tamas.csabi képe

Szevasztok

Próbáld így:

rfcomm connect 0 xx:xx:xx:xx:xx

( Az x -ek helyére, a MAC cím kerül ).

Egyébként, elég sok baj van a bluetooth -al, mert az újabb bluez-utils -t patch -elni kell, mert nem fogja engedélyezni a kapcsolódást, meg a kötést telefon meg gép között ( a dbus bekevert ).
Amikor írtam a leírást, még nem kellett a dbus a bluetooth -hoz, de most már kell és így patch -elni kell.
Ha lesz időm, megcsinálom a leírást.
Addig itt tudsz tájékozódni:
http://www.kmobiletools.org

Szevasztok

Slackware 11.0 kernel 2.6.21
Fluxbox 1.0rc2

Kösz a gyors választ!
Most ez a válasz:
Can't connect RFCOMM socket: Resource temporarily unavailable

tamas.csabi képe

Szevasztok

Szerintem patch -eld meg a progit, mert hiába megy a kapcsolat nem fog beengedni.
Vagy használd az én csomagjaimat, azok működnek. ( nálam legalábbis ).
( dbus, bluez-utils, bluez-libs, kdebluetooth, obexftp, stb... )
És még kell neki a passkey-agent parancs is, mert a régi pin-helper -es megoldás már nem műxik.
Ha ott tartasz, hogy enged, akkor írj és leírom a parancssort, amivel megadhatod hogy kötni tudjon ).
Vagy leírom most inkább:
passkey-agent --default --path /opt/kde/lib/kdebluetooth/kbluepin 0000

Persze csak akkor, ha Kdebluetooth -ot használsz.
Ekkor 0000 lesz a PIN.

Ha nem, akkor a --path -ot állítsd be a pin-helper útvonalára.
Plusz nézd át a hcid.conf rfcomm.conf állományokat is.

Plusz állítsd be a /dev könyvtárban ideiglenesen a fájlokat ( rfcomm* ) a saját jogosultságaidra. ( chown deka:users /dev/rfcomm*, chmod 777 /dev/rfcomm* ).

A syslog -ba logol, ott megnézheted, mi a baja.
Ha nem megy, akkor pár nap múlva megcsinálom a patch -elt csomagot, azzal menni fog.

Szevasztok

Slackware 11.0 kernel 2.6.21
Fluxbox 1.0rc2

A te csomagjaidal póbálkozom jelenleg. Elképzelhtő, hogy a hcid.conf és az rfcomm.conf-al is baj van?

tamas.csabi képe

Szevasztok

Most hogy estefelé átnézegetem a logokat, ilyen bejegyzést találtam:

sshd[3936] : Invalid user test from 58.56.77.141
sshd[3936] : Failed password for invalid user test from 58.56.77.141 port 4457
5 ssh2

Ki akar bejönni ssh -val ?

A whois többek között ezt dobta vissza:
inetnum: 58.56.0.0 - 58.59.127.255
netname: CHINANET-SD
descr: CHINANET SHANDONG PROVINCE NETWORK
.....
person: Chinanet Hostmaster
.....

Támadnak a Kínaiak???
Pedig minden cuccomat náluk veszem :-))))
Még szerencse, hogy az iptables -t, meg az ssh -t nem ők készítik, így legalább működött a védelem.

Szevasztok

Slackware 11.0 kernel 2.6.21
Fluxbox 1.0rc2

Szevasztok!
Mindennapos dolog ha valaki nyomul ssh-n, de még nem találkoztam magyar brutal force-ozással, tessék:

log.txt

Ki grep-eltem az utolsó messages-t, most forgatta a rendszer úgyhogy pont 1 napos.
Bakker...végignyomta a névnapokat:)

En azert irnak az adminnak illetve kuldenem neki a logot, igaz nemet server de akkor is!
-------------------------------------
"Nekem káosz kell, nem bírom a rendet
Zaj kell, ami megöli a csendet
Élet kell és szabadság
nem valami ostoba hazugság"

tamas.csabi képe

Szevasztok

Mikor áttértem chello -ra, ( előtte belső hálóról neteztem, nem értek el kintről ) 1/2 órán belül ssh szótártámadást kaptam, de olyat, hogy usernévként fel volt sorolva minden linux -szal kapcsolatos név, ( redhat, fedora, suse, admin, stb ), akkora volt a log, mint a ház.
Először még röhögtem rajta, de amikor 3. nap is próbálkozott, akkor meguntam.
Azóta van egy kis szabályom a tűzfalscriptben, ami kitiltja az ilyen próbálkozásokat, nagyon gyorsan.
Azóta nem volt bruteforce támadás.
A tegnapi paraszt is csak 3 próbálkozásig jutott el.

Szevasztok

Slackware 11.0 kernel 2.6.21
Fluxbox 1.0rc2

Ezzel egy baj van megpedig az, hogy attol meg a savod fogy, hogy iptablesben le van kezelve a dos. Hja egyebkent ne haragudj nem irtam, siman md5 ot kell beirni cryptnek.:)

-------------------------------------
"Nekem káosz kell, nem bírom a rendet
Zaj kell, ami megöli a csendet
Élet kell és szabadság
nem valami ostoba hazugság"

tamas.csabi képe

Szevasztok

Igen igazad van Zool, de szerintem sokkal jobb kernelszinten szűrni a forgalmat és nem alkalmazásszinten.
Inkább a kernel dobálja el a bejövő csomagokat és ne engedje át a futó programoknak.
Szegény sshdémon ne erőlködjön a sok kapcsolat ellenőrzésével, elutasításával, naplózásával, inkább dobálja el őket a csomagszűrő.
Így nem pörög az sshd, nem is beszélve arról, hogy ki tudja, lehet -e puffertúlcsordulásra játszani az ssh -ban ( bár erről nemtudok ).
Persze a sávszélt így is foglalja, de hát az ellen nem nagyon lehet mit tenni.
( Legfeljebb lenyomozni az illetőt, bár sokan zombi gépek mögül támadnak, úgyhogy hiába találod meg a forrás IP -t ).
De ez csak az én véleményem.
Egyébként én is md5 -öt írtam a mysql configba, de valamiért csak a cleartext bejegyzéseket engedi be.
Lehet, hogy a Mysql configot kellene majd megpiszkálni.
Ha gondolod, elküldöm a configokat, nézd át légyszi.
Mégegyszer köszi a linket.

Szevasztok

Slackware 11.0 kernel 2.6.21
Fluxbox 1.0rc2

Szevasztok!

A tűzfal script-edet meglesném, vagy legalább azt a részt ami szűri ezt a dolgot.
Nincs ötletem erre az esetre.
Egyébként tényleg mindennap van egy-két próbálkozó.
Az "[Aa]ccept"-et szoktam 'kigreppelni' a log-ból néha,arra jóval kevesebb a találat:)

tamas.csabi képe

Szevasztok

Itt ez a két sor tiltja az ssh brute force -ot.

iptables -A INPUT -p tcp --syn --dport ssh -m recent --name SSHBFORCE --update --seconds 60 --hitcount 3 -j DROP

iptables -A INPUT -p tcp --syn --dport ssh -m recent --name SSHBFORCE --set -j ACCEPT

Szevasztok

Slackware 11.0 kernel 2.6.21
Fluxbox 1.0rc2

Hali!

Kösz!
A 'name' paraméter miért kell?

Nagyon jó, csabi!
Ha linuxot fogok majd tűzfalként használni, belerakom én is. OpenBSD pf-je ezt már egy beépített paraméterrel megoldja. Szoktam nézni időnként hogy kik próbálkoznak, hát néha szép hosszú szokott lenni a lista...
Jut eszembe: linuxbazar.uw-hu-val mi történt?

tamas.csabi képe

Szevasztok

Irak írta...
A 'name' paraméter miért kell?

Nem muszály megadnod, az a lényeg, hogy a netfilter létrehoz magának egy címlistát, amibe belegyűjti az adott címeket, amikről jön a brute force.
Az innen jövő csomagokat dobálja el aztán.
Ha nem adsz meg nevet, akkor is létrehozza, csak akkor DEFAULT -nak nevezi el.
Ha kilistázod az iptables -L -v paranccsal, akkor ott lesz a DEFAULT.
Én elneveztem SSHBFORCE -nak.

--------------------------------------------------------------

Steelman írta...
OpenBSD pf-je ezt már egy beépített paraméterrel megoldja.

Igaz, hogy ez Slackware fórum, de azért leírom, én hogy csinálom OpenBSD -n, biztos Zool nem fog haragudni érte :-)))))))))

Itt van rá egy szabály:

pass in on $extif proto tcp from any to $extif port ssh flags S/SA keep state (max-src-conn-rate 3/30, overload <sshbforce> flush global)

Utána meg blokkol:

block drop in quick on $extif from <sshbforce>

De fel is vehetsz egy táblát az elején, ebbe meg beleírja menetközben a betörni akaró gépek címét

table <sshbforce> persist

Utána meg jöhetnek a szabályok.

Plusz én még használom az expiretable programot, ami kezeli majd ezt a táblát.
Futtathatod a cronból, vagy parancssorból, időzítést is tud, meg stb...

--------------------------------------------------------------

Steelman írta...
Jut eszembe: linuxbazar.uw-hu-val mi történt?

Hát az megszünt átmenetileg ( remélem ), de ha lesz időm akkor megcsinálom megint. ( remélem minél előbb ).

Szevasztok

Slackware 11.0 kernel 2.6.21
Fluxbox 1.0rc2

tamas.csabi képe

Szevasztok

Kiegészítés az előző iptables parancshoz:

Hozzáadtam még az --rsource kapcsolót, ami menetközben menti a bejövő címet a listába.
Ezenkívül, hozzáadhatunk egy új szabályt, ami naplózza és eldobja ezeket a kapcsolatokat egylépésben, plusz a tcp flag -eket is be lehet állítani.
( Végülis mindenki addig variálja amíg akarja, csak tippek lennének... )

Készítek egy új chain -t:

iptables -N LOGDROP

iptables -A LOGDROP -j LOG

iptables -A LOGDROP -j DROP

Utána meg így nézne ki a kiegészített szabály:

iptables -A INPUT -p tcp --dport ssh --tcp-flags SYN,RST,ACK SYN -m recent --name SSHBFORCE --update --seconds 60 --rsource --hitcount 3 -j LOGDROP

iptables -A INPUT -p tcp --dport ssh --tcp-flags SYN,RST,ACK SYN -m recent --set --name SSHBFORCE --rsource -j ACCEPT

Ezután, ha ilyen támadás ér, a syslogba bekerül a bejegyzés, vissza lehet keresni.
Nálam pl. így néz ki:

Jun 9 09:58:39 slack kernel: IN=eth1 OUT= MAC=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx SRC=333.333.333.333 DST=86.101.170.2 18 LEN=60 TOS=0x00 PREC=0x00 TTL=57 ID=50583 DF PROTO=TCP SPT=2975 DPT=22 WINDOW=32120 RES=0x00 SYN URGP=0

( persze a MAC meg az IP nem ez :-) ).

Egyébként használ valaki netfilter patch -eket?
Pl: iplimit, psd, stb...
Érdekel valakit, mi a tapasztalat?

Szevasztok

Slackware 11.0 kernel 2.6.21
Fluxbox 1.0rc2

janu képe

"Érdekel valakit, mi a tapasztalat?"

Szerinted? :-)

--------------------
46079 sz. regisztrált Linux felhasználó
honlap://www.janu.hu
Slackware 11.0 - kernel 2.6.20

Sziasztok!
lecseréltem a telefonom SonyEricsson w810i-re. Amikor a hozzá kapott USB kábellel csatlakoztatom megkérdezi, h fájl átvitel vagy telefon módban müködjön. Fájl átviteli módban szépen működik a kapcsolat. Viszont telefon módban nem sikerült működésre bírni. A Tamas Csabi féle kmobiletools-al próbánám összehozni, de nem tudom hova kellene csatolni, hogy működjön? Valaki tud segíteni?

Bocs közben sikerült megoldani, azt nem tudom pontosan mit csináltam máshogy mint eddig, de működik!

Sziasztok!

Megpróbáltam felinstallálni a bluetooth -t Slackware-current alatt. A következő hibaüziket kapom:

root: ~$ rfcomm connect 0 00:16:75:E4:AC:87
Can't connect RFCOMM socket: Permission denied

A dmesg kiír nekem egy ilyet:
hci_scodata_packet: hci0 SCO packet for unknown connection handle 92

A kbluetooth el sem indul csak kiírja ezt:
A(z) KBluetooth (kbluetooth) alkalmazás lefagyott és 6 (SIGABRIT) szignált okozott.

Egyébként Slackware 12.0 alatt működött nekem a bluetooth.

Szia Criss!

Ma szívtam vele én is. Úgy javult meg ,hogy visszapakoltam a bluez-libs-3.9 -et és a bluez-utils-3.9 -et. (A kdebluetooth slack-required -ben néztem meg mi a függősége.)
Az rfcomm connect -el sem tudtam kapcsolódni addig.

Hi!

Köszi a segítséget. Most már megy. Csak azt nem tudom, hogy a Slackware-currentbe, mért csak a 3.28 -as verzió van benne.

Belépés

Friss hozzászólások