AT2k Design BBS Message Area
Casually read the BBS message area using an easy to use interface. Messages are categorized exactly like they are on the BBS. You may post new messages or reply to existing messages!

You are not logged in. Login here for full access privileges.

Previous Message | Next Message | Back to BBS Support/Help/Discussion  <--  <--- Return to Home Page
   Networked Database  BBS Support/Help/Discussion   [1497 / 1540] RSS
 From   To   Subject   Date/Time 
Message   Warpslide    All   Bink Block   November 29, 2024
 9:28 AM *  

Just in case someone else may find this useful...

Scenario 1:  You belong to a network but decide to drop it.  You've sent your
hub a netmail & email letting them know.  Even though two years have gone by
they constantly try to poll you.

You netmail and email again & again, never receiving a response yet they still
poll your system, sometimes hundreds of times a day, each time with a password
error.

Scenario 2:  You no longer want one of your downlinks polling you.  You've asked
them to update their config but are unresponsive.

Solution?  Block their ass(es)!

Create an IP set to store ip networks:
ipset -N block4 hash:net
ipset -N block6 hash:net family inet6

Add lines to firewall to block referenced IP sets:
iptables -A INPUT -p all -m set --match-set block4 src -j DROP
ip6tables -A INPUT -p all -m set --match-set block6 src -j DROP

Run this script each time you toss mail or at least once per day:

#!/bin/bash
BINKLOG="/path/to/binkd.log"

BLOCK=(
  "ZYZ John Doe$"
  "ZYZ Jane Doe$"
  "ZYZ j0hnd03$"
  "addr: 1:234/567@fidonet"
  "addr: 21:3/999@fsxnet"
)

for i in "${BLOCK[@]}"; do

  # Find the latest log entry matching the pattern
  getpoll=$(tac "$BINKLOG" | grep -m 1 "$i";)

  if [[ -n $getpoll ]]; then
    # Extract the PID from the log entry using bash string manipulation
    pollpid="${getpoll#*[}"
    pollpid="${pollpid%%]*}"

    # Find the incoming session log entry associated with PID & extract IP
address
    poll=$(grep "\[$pollpid\] incoming session with" "$BINKLOG";)
    poll="${poll#*]}"
    poll="${poll#*[}"

    ip="${poll%%]*}"

    # If IP is IPv4
    if [[ "$ip" =~ ^([0-9]{1,3}\.){3}[0-9]{1,3}$ ]]; then

      # Convert to CIDR format
      cidr="${ip%.*}.0/24"

      # Check if CIDR is already in the block4 IP set
      if ! sudo ipset test block4 "$cidr" > /dev/null 2>&1; then
        # Add the CIDR to the block4 IP set and save changes
        sudo ipset add block4 "$cidr"
        sudo sh -c "ipset save > /etc/iptables/ipsets"
      fi
    # If IP is IPv6
    elif [[ "$ip" =~ ^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$  "$ip" == *"::"*
]]; then

      # Convert to CIDR format
      cidr="$(echo "$ip" | cut -d: -f1-4)::/64"

      # Check if CIDR is already in the block6 IP set
      if ! sudo ipset test block6 "$cidr" > /dev/null 2>&1; then
        # Add the CIDR to the block6 IP set and save changes
        sudo ipset add block6 "$cidr"
        sudo sh -c "ipset save > /etc/iptables/ipsets"
      fi
    fi
  fi
done

You can also find a copy here:
https://nrbbs.net/binkblock.sh.txt


Jay

... Anyone can get old.  All you have to do is live long enough

--- Mystic BBS v1.12 A49 2024/05/29 (Linux/64)
 * Origin: Northern Realms (618:400/23)
  Show ANSI Codes | Hide BBCodes | Show Color Codes | Hide Encoding | Hide HTML Tags | Show Routing Message Info 
Previous Message | Next Message | Back to BBS Support/Help/Discussion  <--  <--- Return to Home Page

VADV-PHP
Execution Time: 0.0184 seconds

If you experience any problems with this website or need help, contact the webmaster.
VADV-PHP Copyright © 2002-2025 Steve Winn, Aspect Technologies. All Rights Reserved.
Virtual Advanced Copyright © 1995-1997 Roland De Graaf.
v2.1.250224