Điểm:2

định cấu hình linux của tôi làm bộ định tuyến, làm cách nào để bật chuyển tiếp cổng bằng nftables?

lá cờ au
ufk

Tôi đang cố định cấu hình Gentoo Linux của mình làm bộ định tuyến.

đây là cấu hình của tôi cho đến nay.

NIC mạng bây giờ là enp3s0 và LAN NIC là enp1s0f0

chấp nhận các kết nối tới các cổng ICMP, tcp 53, 22, 80, 443, 445, 5900 và udp 53,67,68 từ mạng LAN

chấp nhận kết nối từ cổng SSH 22 từ WAN

những thứ này hoạt động rất tốt, điều tôi không làm được là tạo cổng chuyển tiếp.

Tôi đang cố gắng thiết lập nếu một kết nối trên cổng 222 đến từ mạng WAN, để chuyển tiếp nó tới máy có địa chỉ IP 192.168.1.2 trên cảng 22 và quy tắc này không tạo ra lỗi, nhưng cũng không cho phép tôi kết nối.

đây là cấu hình của tôi:

bộ lọc ip bảng {
    chuỗi đầu vào {
        loại móc bộ lọc đầu vào bộ lọc ưu tiên; chính sách chấp nhận;
        trạng thái ct { đã thành lập, có liên quan } chấp nhận
        iif "lo" chấp nhận
        iif "enp1s0f0" tcp dport { 22, 53, 80, 443, 445, 5900 } gói truy cập 0 byte 0 nhật ký chấp nhận
        iif "enp3s0" tcp dport { 22 } gói truy cập 0 byte 0 nhật ký chấp nhận
        iif "enp1s0f0" udp dport { 53, 67, 68 } chấp nhận
        iif "enp1s0f0" giao thức ip icmp chấp nhận
        truy cập gói 1 byte 259 drop
    }

    đầu ra chuỗi {
        loại móc bộ lọc đầu ra bộ lọc ưu tiên; chính sách chấp nhận;
        trạng thái ct { đã thành lập, có liên quan, mới } chấp nhận
        iif "lo" chấp nhận
    }

    chuỗi về phía trước {
        loại bộ lọc móc chuyển tiếp bộ lọc ưu tiên; chính sách chấp nhận;
        iif "enp3s0" oif "enp1s0f0" trạng thái ct { đã thiết lập, có liên quan } chấp nhận
        iif "enp1s0f0" oif "enp3s0" chấp nhận
        gói truy cập iif "enp3s0" oif "enp1s0f0" 0 byte 0 drop
    }

    chuyển tiếp chuỗi {
        loại bộ lọc hook bộ lọc ưu tiên postrouting; chính sách chấp nhận;
    }
}
bảng ip nat {
    chuyển tiếp chuỗi {
        gõ nat hook postrouting ưu tiên srcnat; chính sách chấp nhận;
        oifname "enp3s0" giả trang
    }

    định tuyến trước chuỗi {
        gõ nat hook prerouting ưu tiên 100; chính sách chấp nhận;
        iif "enp3s0" tcp dport { 222 } dnat to 192.168.1.2:22 ### <- QUY TẮC CHUYỂN ĐỔI CỔNG TẠI ĐÂY
    }
}

làm thế nào tôi có thể khắc phục vấn đề này?

Cảm ơn.

Điểm:2
lá cờ cl
A.B

Khi gói đầu tiên của một luồng mới (do đó ở trạng thái MỚI) đi qua định tuyến tự nhiên chuỗi, không xảy ra và với đích mới, gói được định tuyến và đi qua lọc về phía trước chuỗi.

Sau đó, quy tắc này loại bỏ nó:

        gói truy cập iif "enp3s0" oif "enp1s0f0" 0 byte 0 drop

Một quy tắc cho phép gói đầu tiên này (không có trong thành lập bang) là cần thiết.

Điều này có thể được chèn trước quy tắc thả theo cách ngây thơ đầu tiên:

iif "enp3s0" oif "enp1s0f0" ip daddr 192.168.1.2 tcp dport 22 chấp nhận

và do cấu trúc liên kết cụ thể: LAN 192.168.1.0/24 không thể định tuyến được nên không thể truy cập được theo mặc định từ Internet, nó có thể đủ tốt (về mặt kỹ thuật, bộ định tuyến chặng tiếp theo có thể gian lận và truy cập trực tiếp 192.168.1.2:22 mà không cần NAT). Nhưng nếu hệ thống không hoạt động hóa trang (và có một mạng LAN có thể định tuyến thay vì 192.168.1.0/24), điều này sẽ khiến dịch vụ có thể truy cập trực tiếp.

Thực sự có một phương pháp đơn giản và an toàn hơn, cũng chung chung hơn trong trường hợp một số cổng khác cũng không-ed và tất cả như vậy không tất cả các quy tắc đều được phép: thêm một quy tắc cho phép không tí nào gói tin đã trải qua một không chuyển đổi. Nó chi tiết hơn trong tương đương iptables-tiện ích mở rộng' trận đấu conntrack:

ADNT

Trạng thái ảo, khớp nếu đích ban đầu khác với đích nguồn trả lời.

Thay vào đó, chỉ cần chèn cái này vào lọc về phía trước trước khi cuối cùng rơi vãi quy tắc:

trạng thái ct dnat chấp nhận

hoặc chính xác hơn một chút:

iif enp3s0 oif enp1s0f0 trạng thái ct dnat chấp nhận

lên đến rất chính xác:

iif enp3s0 oif enp1s0f0 trạng thái ct trạng thái ct mới dnat ip Daddr 192.168.1.2 tcp dport 22 chấp nhận

Trạng thái này chỉ có thể xuất hiện do trước đó không quy tắc được thực hiện trên một luồng, vì vậy nó xác thực mục đích: chấp nhận.


Ghi chú:

  • không cần sử dụng các bảng khác nhau cho các loại móc khác nhau (lọctự nhiên) miễn là về cùng một gia đình (ip đây).

    Đó là thói quen di truyền từ iptables điều đó có thể hạn chế khả năng. Ví dụ, phạm vi của một bộ là một cái bàn. Sử dụng cùng một bộ giữa một lọc chuỗi và một tự nhiên chuỗi yêu cầu chúng phải ở trong cùng một bảng (trong đó bộ được định nghĩa). Đáng buồn thay, nhiều ví dụ ngay cả từ wiki vẫn sử dụng quy ước đặt tên bắt chước iptables.

  • trong khi nó không quan trọng ở đây, ưu tiên lịch sử cho định tuyến tự nhiên không phải là 100 mà là -100 (còn gọi là dstnat).

    Sẽ chỉ có vấn đề nếu có các bảng khác cũng bao gồm định tuyến tự nhiên chuỗi hoặc nếu iptables tự nhiên các quy tắc đã được sử dụng cùng nhau (và trong trường hợp như vậy, nên sử dụng -101 hoặc -99 thay vì chính xác -100), để xác định quy tắc nào được ưu tiên.

Đă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.