unable to connect LWM2M using wakaama client - iot

I am using Emqx V3.1.1. And I am integrating LwM2M plugins.
For testing the same I installed Wakaama client in the same server and created build using cmake. I loaded the plugin now plugin is running.
Which I tried to run the below command
./lwm2mclient -n ep1 -h localhost -p 5783 -4
Trying to bind LWM2M Client to port 56830
LWM2M Client "ep1" started on port 56830
> Opening connection to server at localhost:5783
-> State: STATE_REGISTERING
-> State: STATE_REGISTERING
-> State: STATE_REGISTERING
-> State: STATE_REGISTERING
-> State: STATE_REGISTERING
-> State: STATE_REGISTERING
-> State: STATE_BOOTSTRAP_REQUIRED
lwm2m_step() failed: 0xA3
I have followed the below link
https://github.com/emqx/emqx-lwm2m

Change the port to 5683, which is the default port of lwm2m.
Make sure allow_anonymous = true in the emqx.conf

You need a bootstrap server, take a look at examples/bootstrap_server/ on eclipse/wakaama git repo.

Related

Apache Guacamole immediately disconnects RDP connection

I am using the docker image of guacamole (oznu/guacamole:amd64). When I try to connect to a RDP host, I get the message "You have been disconnected".
In the configuration, I set the following parameters:
Protocol = RDP
Network/Hostname = ...
Network/Port = 3389
Authentication/Username = ...
Authentication/Password = ...
Authentication/Security mode = any (also tried all the others)
Authentication/Ignore server certificate = Checked
When I look into the logs of the docker container after a failed connection attempt, I see the following error:
17:54:40.256 [http-nio-8080-exec-8] INFO o.a.g.tunnel.TunnelRequestService - User "guacadmin" connected to connection "1".
guacd[533]: INFO: Loading keymap "base"
guacd[533]: INFO: Loading keymap "en-us-qwerty"
guacd[533]: INFO: Connected to RDPDR 1.13 as client 0x0002
*** Error in `guacd': munmap_chunk(): invalid pointer: 0x000055d216529840 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x70bfb)[0x7f5f2e172bfb]
/lib/x86_64-linux-gnu/libc.so.6(+0x76fc6)[0x7f5f2e178fc6]
/usr/lib/x86_64-linux-gnu/libwinpr2.so.2(Stream_Free+0x2f)[0x7f5f2974577f]
/usr/lib/x86_64-linux-gnu/libfreerdp2.so.2(+0x7840d)[0x7f5f29d2c40d]
/usr/lib/x86_64-linux-gnu/libfreerdp2.so.2(+0x78a25)[0x7f5f29d2ca25]
/usr/lib/x86_64-linux-gnu/libfreerdp2.so.2(freerdp_channels_check_fds+0x35)[0x7f5f29d2d5f5]
/usr/lib/x86_64-linux-gnu/libfreerdp2.so.2(freerdp_check_event_handles+0x48)[0x7f5f29d2b128]
/usr/local/lib/libguac-client-rdp.so(guac_rdp_client_thread+0x287)[0x7f5f2a01e927]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x74a4)[0x7f5f2f6fb4a4]
/lib/x86_64-linux-gnu/libc.so.6(clone+0x3f)[0x7f5f2e1ead0f]
======= Memory map: ========
...
The RDP host machine is running Windows 10. I tested it with another machine also running Windows 10.
I also verified:
Other machines can connect to that RDP host using the same hostname, port, username and password as supplied
The host can be pinged from within the docker container
If the credential are not correct I get a different error saying the log in has failed, so the credentials are actually verified by the RDP host
In Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp "UserAuthentication" is 0 and "SecurityLayer" is 1
I expected the RDP connection to work

The neo4j cypher shell and the browser connections are working but the golang client connection is not working

I have disabled the authentication on my neo4j server, so I can connect using the cypher shell using no credentials as it follows and is working.
$ ./bin/cypher-shell -a 192.168.0.89
This is how I'm declaring my driver and the session, I also tried using neo4j://* instead of bolt://*:
driver, err := neo4j.NewDriver("bolt://192.168.0.89:7687", neo4j.NoAuth())
if err != nil {
return "", err
}
defer driver.Close()
session, _ := driver.NewSession(neo4j.SessionConfig{AccessMode: neo4j.AccessModeWrite})
defer session.Close()
But that doesn't work either. I'm getting this error when running the hello world from the neo4j olang driver page https://neo4j.com/developer/go/
TLS error: Remote end closed the connection, check that TLS is enabled on the server
There are the logs of the server when it starts:
2021-03-07 23:17:23.227+0000 INFO ======== Neo4j 4.2.3 ========
2021-03-07 23:17:24.119+0000 INFO Performing postInitialization step for component 'security-users' with version 2 and status CURRENT
2021-03-07 23:17:24.119+0000 INFO Updating the initial password in component 'security-users'
2021-03-07 23:17:24.243+0000 INFO Bolt enabled on 192.168.0.89:7687.
2021-03-07 23:17:25.139+0000 INFO Remote interface available at http://192.168.0.89:7474/
2021-03-07 23:17:25.140+0000 INFO Started.
These are all my config settings:
dbms.connector.bolt.advertised_address=192.168.0.89:7687
dbms.connector.bolt.enabled=true
dbms.connector.bolt.listen_address=192.168.0.89:7687
dbms.connector.bolt.tls_level=DISABLED
dbms.connector.http.advertised_address=192.168.0.89:7474
dbms.connector.http.enabled=true
dbms.connector.http.listen_address=192.168.0.89:7474
dbms.connector.https.enabled=false
dbms.default_advertised_address=192.168.0.89
dbms.default_database=neo4j
dbms.default_listen_address=192.168.0.89
dbms.directories.import=/home/eduardo/NEO4J/import
dbms.directories.neo4j_home=/home/eduardo/NEO4J
dbms.jvm.additional=-Dlog4j2.disable.jmx=true
dbms.security.auth_enabled=false
dbms.tx_log.rotation.retention_policy=1 days
dbms.tx_state.memory_allocation=ON_HEAP
dbms.windows_service_name=neo4j
Again, I can connect to the same host and the browser is also working fine:
Thanks in advance for any help :)
Adding to your answer: it is likely you're using the v1.x of the Go driver. If you switch to using the v4.x driver instead, you will not have to specify this config value.
You can upgrade by simply adding v4 in your import statement like so:
import github.com/neo4j/neo4j-go-driver/v4/neo4j
More info: https://github.com/neo4j/neo4j-go-driver/blob/4.2/MIGRATIONGUIDE.md
For anyone looking for the answer, the bolt driver will try to use TLS by default and since in my case is not configured, the encryption needs to be disabled in the driver constructor call.
driver, err := neo4j.NewDriver("bolt://192.168.0.89:7687", neo4j.NoAuth(), func(c *neo4j.Config) { c.Encrypted = false })
Hope this helps other people experiencing the same issue :)

Erlang :ssh authentication error. How to connect to ssh using identity file

I'm getting an authentication error when trying to connect ssh host.
The goal is to connect to the host using local forwarding. The command below is an example using drop bear ssh client to connect to host with local forwarding.
dbclient -N -i /opt/private-key-rsa.dropbear -L 2002:1.2.3.4:2006 -p 2002 -l
test_user 11.22.33.44
I have this code so far which returns empty connection
ip = "11.22.33.44"
user = "test_user"
port = 2002
ssh_config = [
user_interaction: false,
silently_accept_hosts: true,
user: String.to_charlist(user),
user_dir: String.to_charlist("/opt/")
]
# returns aunthentication error
{:ok, conn} = :ssh.connect(String.to_charlist(ip), port, ssh_config)
This is the error Im seeing
Server: 'SSH-2.0-OpenSSH_5.2'
Disconnects with code = 14 [RFC4253 11.1]: Unable to connect using the available authentication methods
State = {userauth,client}
Module = ssh_connection_handler, Line = 893.
Details:
User auth failed for: "test_user"
I'm a newbie to elixir and have been reading this erlang ssh document for 2 days. I did not find any examples in the documentation which makes it difficult to understand.
You are using non-default key name, private-key-rsa.dropbear. Erlang by default looks for this set of names:
From ssh module docs:
Optional: one or more User's private key(s) in case of publickey authorization. The default files are
id_dsa and id_dsa.pub
id_rsa and id_rsa.pub
id_ecdsa and id_ecdsa.pub`
To verify this is a reason, try renaming private-key-rsa.dropbear to id_rsa. If this works, the next step would be to add a key_cb callback to the ssh_config which should return the correct key file name.
One example implementation of a similar feature is labzero/ssh_client_key_api.
The solution was to convert dropbear key to ssh key. I have used this link as reference.
Here is the command to convert dropbear key to ssh key
/usr/lib/dropbear/dropbearconvert dropbear openssh /opt/private-key-rsa.dropbear /opt/id_rsa

Informix HDR implementation on Windows 2012 R2 server

We are implementing HDR (High Availability Data Replication) on Windows 2012 R2 Server.
Steps done:
1) Two new Windows 2012 R2 Servers.
IDS 12.10FC8 installed and created the instance manually using Server Instance
Manager.
Server A details:
DBSERVERNAME: hdr_primary
Host Name: winhdr
IP Address: 199.166.155.195
Port Number: 50005
Server B details:
DBSERVERNAME: hdr_secondary
Host Name: winhdr2
IP Address: 199.166.155.196
Port Number: 50005
2) We have only one instance with one database in Server A (Primary).
No database in Server B (Secondary).
3) We have made changes required for HDR in ONCONFIG, Sqlhosts file on both server.
ONCONFIG parameters Server A:
DBSERVERNAME hdr_primary
ROOTPATH C:\IFMXDATA\hdr_primary\rootdbs_dat.000
ROOTSIZE 204800
DRAUTO 0
DRINTERVAL 0
HDR_TXN_SCOPE FULL_SYNC
DRTIMEOUT 30
ONCONFIG parameters Server B:
DBSERVERNAME hdr_primary
ROOTPATH C:\IFMXDATA\hdr_primary\rootdbs_dat.000
ROOTSIZE 204800
DRAUTO 0
DRINTERVAL 0
HDR_TXN_SCOPE FULL_SYNC
DRTIMEOUT 30
SQL hosts at both servers: placed in %INFORMIXDIR%\etc
hdr_secondary onsoctcp winhdr2 hdrsecport
hdr_primary onsoctcp winhdr hdrpriport
host file at both servers: placed in C:\Windows\System32\drivers\etc
199.166.155.195 winhdr
199.166.155.196 winhdr2
winhdr 199.166.155.195
winhdr2 199.166.155.196
host.equvi file # both servers: placed in C:\Windows\System32\drivers\etc
winhdr informix
winhdr2 informix
services file # both servers: placed in C:\Windows\System32\drivers\etc
hdrpriport 50005/tcp #hdr_primary
hdrsecport 50005/tcp #hdr_secondary
4) After all configuration setting has done we have take ontape backup at
Server A.
Server A status: On-Line
ontape -s -L 0
5) Moved the L0 backup to server B and restored with ontape. Cold restore.
ontape -p
Server B status: Fast Recovery
6) On Server A we had run the below command:
onmode -d primary hdr_secondary
Server A status: On-Line(Prim)
7) On Server B we had run the below command:
onmode -d secondary hdr_primary**
Server B status: Fast Recovery(sec).
Till here we have done.
From here we are facing an issue.
The output at server B of onstat -g dri:
Data Replication at 0000000080CEC030:
Type---------------State-------- Paired server -----------Last DR CKPT (id/pg)
Supports Proxy Writes
HDR Secondary off hdr_primary -1 / -1 N
DRINTERVAL 0
DRTIMEOUT 30
DRAUTO 0
DRLOSTFOUND C:\PROGRA~1\IBMINF~1\etc\dr.lostfound
DRIDXAUTO 1
ENCRYPT_HDR 0
Backlog 0
Nothing Sent
Nothing Received
No Pings
Last log page applied(log id,page): 0,0
Issue: Primary and Secondary are not Paired.
Error in Online log is:
Server A
DR: Trying to connect to secondary server = hdr_secondary
DR: Cannot connect to secondary server
DR: Turned off on primary server
Server B
DR: Trying to connect to primary server = hdr_primary
DR: Cannot connect to primary server
DR: Turned off on secondary server
A good practice to test communication between the two servers, is opening dbaccess -> connect -> and choose the remote server alias.
If you cannot connect through dbaccess, you have a network/communication issue that must be investigated. Open a PMR with IBM support.
Make sure your UPDATABLE_SECONDARY onconfig is set to 0, if you don't have licensed your secondary instance as a read/write, just in case.

Gettng error while creating DSE Graph -"Host did not respond in a timely fashion"

We are using DataStax Enterprise version 5.0.1 and are facing issue while creating the graph from the Gremlin Console.
Here are the details of the error that I am getting:
adminuser#dc0vm1:~$ dse gremlin-console
\,,,/
(o o)
-----oOOo-(3)-oOOo-----
plugin activated: tinkerpop.tinkergraph
plugin activated: tinkerpop.server
plugin activated: tinkerpop.utilities
gremlin> :remote connect tinkerpop.server conf/remote.yaml
==>Configured 13.82.30.252/13.82.30.252:8182
gremlin> :> 1+1
Host did not respond in a timely fashion - check the server status and submit again.
gremlin> :> system.graph('food').create()
Host did not respond in a timely fashion - check the server status and submit again.
I changed the Remote.yaml file settings from [locahost] to
hosts: [13.82.30.252].
I ran the nodetool command to check if the server is running properly:
adminuser#dc0vm1:~$ nodetool status
Datacenter: dc0
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns Host ID Rack
UN 13.82.25.134 168.92 KB 64 ? d7a98eed-9b15-42ee-bc5c-f406e98fd6fc FD2
UN 13.82.25.152 189.17 KB 64 ? 7ffa11ea-8607-4bdb-903b-2ee3baeacae8 FD0
UN 13.82.30.252 150.6 KB 64 ? a57f6cd8-5466-480e-b919-329c36fbfd28 FD1
The cassandra.yaml has the following entries related to the host:
broadcast_rpc_address: 13.82.30.252
rpc_address: 0.0.0.0
Could you please let me know what configuration I am missing here?
I figured out that by default the DSE Graph service is not enabled so you need to edit the file "dse" to enable it -
sudo vim /etc/default/dse
Make sure that the following parameter is set to 1 –
# Enable the DSE Graph service on this node
GRAPH_ENABLED=1
Restart the DSE service -
sudo service dse stop
sudo service dse start
Now Gremlin Console is able to connect and create the Graph.

Resources