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.
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.
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]# sdpd
Nézzük meg a helyi eszközöket: [root@slackware >~]# hciconfig -a Ez kilistázza, amit talál. Nálam pl:
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
Húzzuk fel az interface -t:
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)
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 ).
Scanning ...
00:16:75:FE:64:6A Mtux
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.
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
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.
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:
codess CTRL-C for hangup
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:
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 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.
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:
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
.......
Regisztráljuk a szolgáltatást:
OBEX Object Push service registered
Most már csak küldenünk kell, mondjuk egy képet a telefonra:
Adjuk ki a parancsot:
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:
OBEX Object Push service registered
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.
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
Ugyanígy kilistázhatjuk a mappák tartalmát is. Pl: Nézzünk bele a picture mappába:
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
Browsing 00:16:75:FE:64:6A ...
Channel: 9
Connecting...done
Receiving "picture/renike1.jpg"... Sending "picture"... done
|done
Disconnecting...done
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.
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:
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"
Hozzuk létre az új udev.rules fájlt:
Készítsünk indítóscriptet, ami gondoskodik róla, hogy indítsa a démonokat:
# 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
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:
Majd indítsd a bluetooth szolgáltatást:
[ 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
- A hozzászóláshoz regisztráció és belépés szükséges

Hozzászólások
Koszi
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!
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
Re:Remek cikk!
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
Zool!
Lehet, hogy a
Hehehe
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"
javitva
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"
nincs mit
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
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"
rfcomm
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?
Re: rfcomm...
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
Kösz a gyors választ!
Most ez a válasz:
Can't connect RFCOMM socket: Resource temporarily unavailable
Re: bluetooth...
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 0000Persze 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
A te csomagjaidal póbálkozom jelenleg. Elképzelhtő, hogy a hcid.conf és az rfcomm.conf-al is baj van?
Be akar jönni a köcsög....
Szevasztok
Most hogy estefelé átnézegetem a logokat, ilyen bejegyzést találtam:
sshd[3936] : Invalid user test from 58.56.77.141sshd[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.255netname: CHINANET-SDdescr: 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
Ez igen!
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
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"
Nálam iptables szabály megoldja...
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
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"
Igaz Zool, de....
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
ssh
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:)
ssh brute force ellen...
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 DROPiptables -A INPUT -p tcp --syn --dport ssh -m recent --name SSHBFORCE --set -j ACCEPTSzevasztok
Slackware 11.0 kernel 2.6.21
Fluxbox 1.0rc2
ssh
Hali!
Kösz!
A 'name' paraméter miért kell?
Nagyon jó, csabi! Ha
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?
ssh, iptables, openbsd, pf, linuxbazár, stb...
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 -vparanccsal, 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> persistUtá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
ssh brute force ismét...
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 LOGDROPiptables -A LOGDROP -j LOGiptables -A LOGDROP -j DROPUtá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 LOGDROPiptables -A INPUT -p tcp --dport ssh --tcp-flags SYN,RST,ACK SYN -m recent --set --name SSHBFORCE --rsource -j ACCEPTEzutá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
netfilter patch
"Érdekel valakit, mi a tapasztalat?"
Szerinted? :-)
--------------------
46079 sz. regisztrált Linux felhasználó
honlap://www.janu.hu
Slackware 11.0 - kernel 2.6.20
w810i
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!
bluetooth gondok
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
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.
Köszi
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.