SSH.NET - SOCKS5: Host unreachable - proxy

I am trying to connect to an external SFTP server via a SOCKS proxy server using SSH.NET library (V2013.4.7) but I'm getting error "SOCKS5:Host unreacheable". The connection works fine in other tools such as WinSCP.
I am using class SftpClient instantiated with a PasswordConnectionInfo using ProxyType.Socks5 protocol as shown by the given constructor below:
public PasswordConnectionInfo(string host,int port,string username,string password,ProxyTypes proxyType,string proxyHost,int proxyPort) - the Host port number is 30206 and the proxy port here is the default 1080
Debugging ssh.net source code, The error is being thrown after my machine sends the connection request to the Proxy and awaits a response in class Session.cs:
// Send port
this.SocketWriteByte((byte)(this.ConnectionInfo.Port / 0xFF));
this.SocketWriteByte((byte)(this.ConnectionInfo.Port % 0xFF));
// Read Server SOCKS5 version
if (this.SocketReadByte() != 5) **** error is thrown here after about 2 minutes!
Using WireShark, I checked that my machine/Proxy handshake was successful, and the IP address of the external server is being looked up correctly - The bit I am not sure about here in the library source code above is the 2 lines where the port number is being specified. What is the use of "0xFF"?
According to Socks5 protocol, the port number is specified at:
[field 6: network byte order port number, 2 bytes].
I am having a suspucion about the Port number not being sent correctly!
Grateful if anyone can throw some ligth upon this or if someone had similar issues or if anyone had this working successfully.
Thank you.

Related

Error trying to connect to AD server from Gitea

I configured Gitea to authenticate against an AD server, and I'm receiving the following error:
[...dels/login_source.go:390 LoginViaLDAP()] [E] LDAP Connect error, my.ad.server.address.here:LDAP Result Code 200 "Network Error": read tcp <gitea host ip>:37590-><ad server ip>:389: read: connection reset by peer
What is strange to me is that the number 37590 in the example above always changes at each occurrence. Is it a port number? If true, how can I track it so I can whitelist it at the AD server firewall?
I'm a newbie in Go, so I can't figure out what's happening.
The 37590 that you see is the source port. It is the port that the server will use when replying and helps your computer know which application the response is for. It's normal for that to change on each request.
You are correct in thinking that this is a network problem. The error message "connection reset by peer" means that someone along the line (either a firewall along the path, or the host itself) closed the connection. (a little more detail here)
If it is a firewall that is not allowing you, then you need a rule allowing access from gitea host ip:any to ad server ip:389.

How to get the IP address of a connected WebSocket-client?

I'm currently working on a ABAP Push Channel server to WebSocket client connection and I need the IP-address of the client in order to identify whether this client is the one I want to send the message to. In my scenario there could be multiple WebSocket connections.
Now there is the ssi_websocket_table table and the ssi_websocket_table_row row with the the field caller_ip, however this gives me the IP address of the DNS-Server of the network I'm connected to, and I expected the IP address of my local PC since the WebSocket-client is running on this machine.
Is there any other way to get the clients IP address from an active WebSocket connection in ABAP?
P.S. Looking at all the table entries, it shows the correct IP when using a different server configuration, as soon as I know why that's the case I will report back.
As pointed out by vwegert it makes no sense to use the IP to tell the WebSockets apart, I think it would probably be better to use an ID for each WebSocket connection instead.
You could get the IP from the WebSocket server context which gets the IP header apparently from the opening HTTP handshake for the connection:
DATA(lo_context) = i_context. " IF_APC_WSP_SERVER_CONTEXT type
DATA(lo_request) = lo_context->get_initial_request( ).
" initialize G_CONTEXT_ID_FIELD for PCP_SET_CONTEXT_FIELDS
DATA(lv_id) = lo_request->get_header_field( if_http_header_fields_sap=>remote_addr ).
the sample is taken from the SAP standard class CL_APC_WS_EXT_ABAP_ONLINE_COMM, ON_MESSAGE method.

Tftpd64 unable to transfer file to client

I am using Tftpd64 as server for transferring file to client.
Now when client request the file then i see below error in log viewer window of Tftpd64.
Connection received from 2a01:7e00:e000:11c:3546:7805:766:7110 on port 61445 [23/06 11:50:44.967]
Read request for file <test.ota>. Mode octet [23/06 11:50:44.967]
OACK: <blksize=1200,timeout=5,> [23/06 11:50:44.967]
Using local port 61801 [23/06 11:50:44.967]
File <test.ota> : error 10054 in system call recv An existing connection was forcibly closed by the remote host. [23/06 11:50:45.131]
Is any one have idea about above error?
Also i disabled the firewall in my PC but still getting same error.
Finally i am able to make Tftpd64 server up and running. I made below changes.
Enabled Windows Firewall.
Create rule for Tftp server (Widnows firewall->Advance settings->Inbound Rules->New Rule) to allow connection and apply rule for domain, public and private.

FTP Connection Refused (Using FTPZilla)

I have googled and searched all over but I am still having trouble getting connected to a site using the ftpzilla
I am getting this read out when I try to connect to the server using the network connection wizard
Connecting to probe.filezilla-project.org
Response: 220 FZ router and firewall tester ready
USER FileZilla
Response: 331 Give any password.
PASS 3.9.0.6
Response: 230 logged on.
Checking for correct external IP address
Retrieving external IP address from
http://ip.filezilla-project.org/ip.php
Checking for correct external IP address IP 173.56.114.112
bhd-fg-bbe-bbc
Response: 200 OK
PREP 60010
Response: 200 Using port 60010, data token 1063172065
PORT 173,56,114,112,234,106
Response: 200 PORT command successful
LIST
Response: 150 opening data connection
Response: 503 Failure of data connection.
Server sent unexpected reply.
Connection closed
The weird thing is I only get this error for this particular server and the server I use for my personal site (namecheap.com) gives me no such error. Does anyone know why this may be happening? And please try not to point me to the network configuration wiki because I have read through that and I still am at this point.
PORT 173,56,114,112,234,106
....
Response: 503 Failure of data connection.
...
please try not to point me to the network configuration wiki
You are using active mode, that is the ftp client (FileZilla) waits for a connection from the server. Obviously the server can not connect to the client which indicates that something like a firewall restricts the connection.
Since according to your description this happens only with few servers, you either use only these servers with active mode or these servers are protected by firewalls which do not allow active mode. Have you tried with passive mode?
I had a similar issue connecting and made the following changes and had success.
Go to File>>>Site Manager>>>
For my site, I changed the Encryption to "Only use plain FTP(insecure)" and had success. May you find the same success.

Other hosts cannot connect to websocket server on my host

First of all, sorry for my bad English : )
My Java application (multiplayer game server) uses this package to communicate with a web application in client's browser using websockets: https://github.com/TooTallNate/Java-WebSocket
I've encountered a problem running my application: only I can connect to the websocket server, clients on other hosts can't do so. In browser I estabilish connection as usual, address here is certainly correct:
new WebSocket("ws://"+serverIp+":8787");
When I connect from my own host to the websocket server running on the same host, it runs perfectly. When other hosts try to connect to me, connection in not being estabilished: in browser WebSocket objects's .readyState is 0 (whilst it should be 1), and even server does not recieve any handshakes (no output from onClientOpen in server console, I even tried to get any output from certain WebSocketServer class' methods).
Other hosts are still recieving, for example, static contents of web application from webserver on 80 port on the same host. Problem is not the closed 8787 port: I checked it, it's open.
What may be the reason that other host can't connect to my websocket server?
WebSockets uses a cross-origin permission system. You might need to tell you WebSocket server to accept connections from more than just your local host. The verification of Origin happens during the WebSocket handshake which likely happens prior to onclientOpen.

Resources