this post was submitted on 18 Oct 2023
13 points (93.3% liked)

Selfhosted

40133 readers
519 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 1 year ago
MODERATORS
 

I run different services on my debian server and I would like to know if there any terminal command or something to show the countries and number connections that have established contact

top 7 comments
sorted by: hot top controversial new old
[–] [email protected] 6 points 1 year ago* (last edited 1 year ago) (2 children)

For HTTP/web server logs: goaccess using the free db-ip database will give you country-level geolocation info.

For other connections (SSH etc.), setup a Graylog instance, send all your logs to it using rsyslog over TLS, setup pipelines to extract IP addresses from the messages, and setup the GeoIP plugin (https://graylog.org/post/how-to-set-up-graylog-geoip-configuration/). It's not a small task though. My ansible roles for goaccess and graylog.

[–] [email protected] 2 points 1 year ago

How I wish I had seen this about a month ago when I spent hours smarting up the nginx module and converting the maxmind DBs to v1 to make the compatible.

I do wonder how well this performs compared to the nginx module

[–] [email protected] 1 points 1 year ago (1 children)

Thanks for the answers, but my specs are very low (intel atom with 2GB ram), I only wanted to know which countries are using my snowflake tor bridge.

[–] [email protected] 1 points 1 year ago* (last edited 1 year ago)

Graylog and elasticsearch might fit on that, depending on how much is already used, and if you set the heap sizes at their bare minimum... but it will perform badly, and it's overkill anyway if you just need this simple stat.

I would look into writing a custom log parser for goaccess (https://goaccess.io/man#custom-log) and let it parse your bridge logs. This is how the geolocation section looks in the HTML report (each continent can be expanded and it will reveal the stat by country).

I update the report every hour via cron, as I don't need real-time stats (but goaccess can do that).

[–] [email protected] 3 points 1 year ago

The less straight forward way is to put a Middleware To query the IP with some geoIP site the get the info.

nginx+ supports geoIP blocking as well, there may be a free version of this feature

[–] [email protected] 1 points 1 year ago* (last edited 1 year ago)

I think the most straightforward way to collect these info would be to use Cloudflare as the DNS for your domains, which allows for a good deal of analytics.

[–] [email protected] 0 points 1 year ago* (last edited 1 year ago)

Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I've seen in this thread:

Fewer Letters More Letters
DNS Domain Name Service/System
HTTP Hypertext Transfer Protocol, the Web
IP Internet Protocol
SSH Secure Shell for remote terminal access
SSL Secure Sockets Layer, for transparent encryption
TLS Transport Layer Security, supersedes SSL
nginx Popular HTTP server

6 acronyms in this thread; the most compressed thread commented on today has 8 acronyms.

[Thread #224 for this sub, first seen 19th Oct 2023, 08:15] [FAQ] [Full list] [Contact] [Source code]