Điểm:0

Các phương pháp hay nhất để duy trì các quy tắc nftables

lá cờ in

Tôi mới sử dụng Ubuntu đã chuyển từ lưu trữ trên CentOS7 đang sử dụng iptables và tôi cảm thấy thoải mái với cách apf và bfd xử lý (ẩn) iptables khỏi tôi.. và nó hoạt động tốt

Vì vậy, tôi đã chuyển sang Ubuntu (20.04 LSR) và "cách sử dụng Ubuntu" để thực hiện tường lửa với các nỗ lực cấm tự động xâm nhập dường như là nftables và fail2ban

Tôi đã sử dụng iRedMail để thiết lập một máy chủ thư cơ bản dựa trên nginx, postfix, dovecot,clamav, roundcube, v.v. và nó đã định cấu hình fail2ban để xem nhật ký về các nỗ lực xâm nhập vào dịch vụ thư và ssh, v.v. và tôi đã thấy nó phân tích chính xác nhật ký thư của tôi và lưu trữ các ip bị chặn của fial2ban trong bảng inet f2b-table

Điều này vẫn tồn tại khi khởi động lại nhưng tôi nhận thấy rằng tệp /etc/nftables.conf không có bất kỳ bảng fail2ban nào trong đó - nó có tường lửa cơ sở của tôi mà tôi có thể cập nhật tĩnh để từ chối tất cả các cổng tcp sau đó bỏ chặn mà tôi muốn (về cơ bản thư và máy chủ web và ssh)

Nhưng theo như tôi thấy, các quy tắc fail2ban không có trong tệp cấu hình nhưng dường như được xây dựng lại khi khởi động từ các mục trong bảng fail2ban trong cơ sở dữ liệu mysql do iRedMail thiết lập

Điều này là tốt.. nhưng đây là vấn đề nan giải: nếu tôi thêm quy tắc vào tường lửa theo cách thủ công bằng cách tận dụng bảng hiện có cho fail2ban, tôi có thể..

nft thêm phần tử inet f2b-bảng addr-set-postfix-pregreet { spammer.ip.addr.here }

Nó hiển thị và hoạt động.. Tôi đã thử nghiệm bằng cách tự khóa thành công rồi xóa thông qua bảng điều khiển cục bộ..

Ngoại trừ khi tôi khởi động lại, toàn bộ bảng đó bị mất và được tạo lại bởi fail2ban từ các mục trong bảng (một lần nữa tôi rất tuyệt với điều đó)

Vì vậy, tôi đã tiếp tục và thêm bảng/nội dung mới của riêng mình

kẻ gửi thư rác trên bảng inet {
    đặt hố đen {
            gõ ipv4_addr
            phần tử = {mẫu.ip.addr.here}
    }

    chuỗi người gửi thư rác-chuỗi {
            loại bộ lọc hook bộ lọc ưu tiên đầu vào - 2; chính sách chấp nhận;
            ip saddr @blackhole drop
    }
 }

Một lần nữa, đã thử nghiệm điều này và nó hoạt động tốt nhưng để duy trì điều này, tôi cần ghi nó vào /etc/nftables.conf hoặc thiết lập thư mục đó để đọc trong các quy tắc của tôi, v.v.

Tôi có thể làm điều này bằng cách thêm một phần bao gồm trong nftables.conf của mình vào một thư mục chứa các quy tắc tùy ý và sau đó lưu bảng của tôi vào đó mỗi khi tôi thêm một địa chỉ nhưng điều này có vẻ xấu và sai

như nếu tôi muốn thêm một người gửi thư rác mới vào danh sách của mình, tôi có thể làm

nft add element lỗ đen kẻ gửi thư rác inet { new.ip.addr.here }

nhưng sau đó sẽ cần phải .. Tôi không biết? tiếp tục ra khỏi bảng để tập tin của tôi?

bảng danh sách nft kẻ gửi thư rác inet > /etc/nftables.d/spammers.conf

Vì vậy, đó là một cách tôi có thể làm, nhưng tôi đã thấy những người khác nói về netfilter-persist nhưng đó không phải là một phần của Ubuntu nên trước khi tôi bắt đầu phát minh ra bánh xe của riêng mình hoặc xuống lỗ thỏ của bộ lọc mạng hoặc (không, cảm ơn) làm điều gì đó tương tự như những gì fail2ban dường như đã làm... (lưu trữ các IP bị cấm trong cơ sở dữ liệu và xây dựng lại danh sách khi đăng nhập)

Tôi có thể nghĩ ra một số cách tôi có thể làm điều này .. nhưng tôi tự hỏi liệu có "cách thực hành tốt nhất" "cách Ubuntu" nào tôi đang thiếu ở đây không ...

CẬP NHẬT/CHỈNH SỬA: Trừ khi tôi nhận được đề xuất tốt hơn, "giải pháp" của tôi bây giờ là

mkdir /etc/nftables.d/
bảng danh sách nft kẻ gửi thư rác inet > /etc/nftables.d/spammers.conf

và sau đó tôi đã chỉnh sửa /etc/nftables.conf của mình để thêm dòng này ở dưới cùng

bao gồm "/etc/nftables.d/*.conf"

Bây giờ, khi tôi thêm một khối vào bảng, đó là 2 bước:

nft add element lỗ đen kẻ gửi thư rác inet { some.evildoer.ip.address }
bảng danh sách nft kẻ gửi thư rác inet > /etc/nftables.d/spammers.conf

Nó không phải là đẹp nhất nhưng nó hoàn toàn hoạt động .. Tất nhiên tôi có thể gói tất cả những thứ này trong tập lệnh tùy chỉnh của riêng mình để tôi có thể gọi một cái gì đó như

banspammer "badguy.ip.addr.here"

và banspammer sẽ thêm phần tử địa chỉ được chỉ định và lưu lại bảng đã cập nhật def...

một lần nữa, điều này giống như "không phải là cách thực hành tốt nhất" do đó là câu hỏi của tôi.

CHỈNH SỬA: 22-12-2021 Được rồi, tôi đang nói chuyện với chính mình nhưng vì tôi không nhận được bất kỳ phản hồi nào nên tôi đã thực hiện ý tưởng của mình - nó đang hoạt động và tôi đã viết kịch bản banspammer nhỏ này...nó thô và có thể rất nguy hiểm - Tôi đã không thực hiện kiểm tra độ tỉnh táo như bận tâm kiểm tra xem đường dẫn tệp cấu hình có hợp lệ hay không và không thực hiện bất kỳ sao lưu nào của tệp đã nói, v.v ...

Vì mục nhập trong bảng là loại ipv4_addr nftables có xác thực nên tôi không quá lo lắng về điều đó

LƯU Ý rằng thiết lập cụ thể của tôi đã có bộ lọc có tên là bộ lọc trong họ inet - Tôi đặc biệt thêm bộ lọc này dưới dạng danh sách ưu tiên thấp hơn một chút. Tôi cũng đã tạo thư mục /etc/nftables.d và thêm vào mã của mình để nó phân tích cú pháp thư mục cấu hình như tôi đã đề cập ở trên

đây là hy vọng ai đó tìm thấy điều này hữu ích.

Tôi vẫn sẽ quan tâm đến một "cách thức Ubuntu" hơn nếu có một thứ như vậy.

#!/usr/bin/sh

################################################# #############################
# banspammer 2021-12-22 DigitalSorceress
#  
# TÓM LƯỢC
# Tập lệnh này thêm một ip hoặc dải Ips (xem thêm phần tử) vào nftables
# đặc biệt cho lỗ đen người gửi thư rác của tôi
# nó cũng lưu nó ra /etc/nftables.d/spammers.conf
#
# đặt cái này ở đâu đó như /root/tandautils
# sau đó truy cập /user/local/sbin và ln -s /root/tandautils/banspammer.sh banspammer
#
################################################# #############################

# Xử lý đối số dòng lệnh
LỆNH=$1
ĐỊA CHỈ=$2


# vị trí của tệp cấu hình ssh daemon
# mặc định cho CentOS là CONFIG_FILE=/etc/ssh/sshd_config
#
CONFIG_FILE=/etc/nftables.d/spammers.conf



# Đây là các chương trình con cho các hành động riêng lẻ
ban_spam() {
    # Ban hành lệnh cơ bản để cấm người gửi thư rác 
    tiếng vang "thêm người gửi thư rác vào hố đen ..."
    
    nft thêm phần tử kẻ gửi thư rác inet hố đen { ${ADDRESS} }
    BAN_SPAMMER_RESULT=$?
    nếu [ $BAN_SPAMMER_RESULT -eq 0 ] 
    sau đó
        echo " XONG: ${ADDRESS} được thêm vào bảng của người gửi thư rác"
    fi
    tiếng vang ""
}

bỏ cấm_spam() {
    # Ban hành lệnh cơ bản để cấm người gửi thư rác 
    tiếng vang "loại bỏ người gửi thư rác khỏi hố đen ..."
    
    nft xóa phần tử kẻ gửi thư rác inet hố đen { ${ADDRESS} }

    UNBAN_SPAMMER_RESULT=$?
    nếu [ $UNBAN_SPAMMER_RESULT -eq 0 ] 
    sau đó
        echo " XONG: ${ADDRESS} đã bị xóa khỏi bảng"
    fi
    tiếng vang ""
}

kiên trì_spamtable () {
    echo "liên tục gửi thư rác tới ${CONFIG_FILE}..."
    # chúng ta cần duy trì bảng thư rác để cấu hình
    kẻ gửi thư rác trong bảng danh sách nft > ${CONFIG_FILE}
    nếu [ $? -eq 0 ]
    sau đó
      tiếng vang " đã xong.. đang hiển thị bảng..."
      tiếng vang ""
      bảng danh sách nft kẻ gửi thư rác inet
    khác
      echo "bảng vẫn tồn tại lỗi.."
    fi
    tiếng vang ""
}

list_spamtable() {
    echo "liệt kê thư rác"
    tiếng vang ""
    bảng danh sách nft kẻ gửi thư rác inet
    tiếng vang ""
}

kill_spamtable () {
    echo "đặt lại/tạo thư rác trống ${CONFIG_FILE}..."

    #rm -f /etc/nftables.d/spammers.conf
    tee /etc/nftables.d/spammers.conf <<EOF
kẻ gửi thư rác trên bảng inet {
    đặt hố đen {
        gõ ipv4_addr
    }

    chuỗi người gửi thư rác-chuỗi {
        loại bộ lọc hook bộ lọc ưu tiên đầu vào - 2; chính sách chấp nhận;
        ip saddr @blackhole drop
    }
}
EOF
    tiếng vang ""
    nếu [ $? -eq 0 ]
    sau đó
        echo "success.. đây là tập tin mới:"
        tiếng vang ""
        con mèo /etc/hftables.d/spammers.conf
    khác
        echo "lỗi khi ghi tập tin..."
    fi
    
    tiếng vang ""
}

giúp tôi () {
  echo "Đây là công cụ giúp đơn giản hóa việc chặn địa chỉ IP của những kẻ gửi thư rác "
  tiếng vang " "
  echo "banspammer 2021-12-22 DigitalSorceress" 
  tiếng vang " "
  tiếng vang "TÓM TẮT"
  echo " Tập lệnh này được sử dụng để đơn giản hóa hành động thêm/xóa người gửi thư rác khỏi "
  echo " một bảng người gửi thư rác trong bộ quy tắc nftables "
  tiếng vang " "
  tiếng vang " "
  tiếng vang "cách sử dụng: lệnh banspammer $0 [địa chỉ]"
  tiếng vang " "
  echo " tùy chọn lệnh: "
  tiếng vang " địa chỉ cấm "
  echo " cấm địa chỉ đích; có thể là một IP đơn lẻ hoặc danh sách dấu phẩy "
  tiếng vang " "
  tiếng vang "bỏ cấm địa chỉ"
  echo " xóa địa chỉ đích có thể là một IP đơn hoặc danh sách dấu phẩy "
  tiếng vang " "
  tiếng vang "đặt lại"
  echo " xóa tất cả các mục khỏi bảng kẻ gửi thư rác "
  echo " lưu ý điều này có thể được sử dụng để tạo một bảng trống mới "
  tiếng vang " "
  tiếng vang "hiển thị"
  echo " hiển thị danh sách bảng thư rác hiện tại"
  tiếng vang " "
  tiếng vang "giúp đỡ"
  echo "Hiển thị hộp thoại trợ giúp này"
}



# Đây là nơi chúng tôi thực hiện công việc thực tế dựa trên lệnh đã truyền
trường hợp "$ COMMAND" trong
  lệnh cấm)
    nếu [ $# -eq 2 ] 
    sau đó
        echo "địa chỉ cấm: ${ADDRESS}"
        ban_spammer ${ADDRESS}
      nếu [ $BAN_SPAMMER_RESULT -eq 0 ]
      sau đó
        kiên trì_spamtable
      fi
    khác
        echo "lệnh cấm yêu cầu một IP duy nhất hoặc danh sách IP được phân tách bằng dấu phẩy"
    fi
    ;;
  bỏ cấm)
    nếu [ $# -eq 2 ] 
    sau đó
      echo "bỏ cấm địa chỉ: ${ADDRESS}"
      bỏ cấm_spam ${ADDRESS}
      nếu [ $UNBAN_SPAMMER_RESULT -eq 0 ]
      sau đó
        kiên trì_spamtable
      fi
    fi
    ;;
  trình diễn)
      list_spamtable
      ;;
  cài lại)
      kill_spamtable
      ;;
  Cứu giúp)
    giúp tôi
    ;;
  *)
      echo "Cách sử dụng: $0 cấm|bỏ cấm danh sách ip được phân tách bằng dấu phẩy hoặc $0 hiển thị|đặt lại"
      thoát 1
thoát hiểm
Điểm:0
lá cờ us

nếu bạn apt-get cài đặt iptables-kiên trì nó sẽ kéo vào bộ lọc mạng liên tục đó dường như là những gì bạn đang tìm kiếm để duy trì các quy tắc bộ lọc mạng của mình?

Someone avatar
lá cờ my
Vì nó hiện đang được viết, câu trả lời của bạn không rõ ràng. Vui lòng [chỉnh sửa] để thêm các chi tiết bổ sung sẽ giúp người khác hiểu cách điều này giải quyết câu hỏi được hỏi. Bạn có thể tìm thêm thông tin về cách viết câu trả lời hay [trong trung tâm trợ giúp](/help/how-to-answer).

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.