Điểm:0

Cách tải lại tường lửa mà không mất quy tắc chuyển tiếp iptables Libvirt

lá cờ cn

Ai cũng biết rằng tường lửa sẽ xóa các quy tắc Libvirt khi tải lại và do đó làm cho quá trình chuyển tiếp cổng tới máy ảo bị hỏng cho đến khi bạn khởi động lại libvirtd. Đây là những gì tôi đã làm:

  1. Tạo ra /etc/systemd/system/firewalld-reload-hook.service
[Đơn vị]
Mô tả=móc tải lại tường lửa - chạy tập lệnh hook khi tải lại tường lửa
Muốn=dbus-broker.service
Sau=dbus-broker.service

[Dịch vụ]
Loại = đơn giản
ExecStart=/bin/bash -c '/bin/busctl monitor --system --json=short --match "interface=org.fedoraproject.FirewallD1,member=Reloaded" | trong khi đọc -r dòng; làm [ -x /sbin/firewalld-reload-hook ] && /sbin/firewalld-reload-hook ; xong'

[Cài đặt]
WantedBy=multi-user.target
  1. Tạo ra /sbin/firewalld-reload-hook
#!/bin/bash

# Được gọi bởi /etc/systemd/system/firewalld-reload-hook.service
đặt -e

logger "$BASH_SOURCE: Đã kích hoạt hook tải lại tường lửa."

/usr/bin/systemctl khởi động lại libvirtd

logger "$BASH_SOURCE: Đã khởi động lại Libvirt."

thoát 0

và làm cho nó có thể thực thi được chmod +x /sbin/firewalld-reload-hook

  1. Cài đặt libvirt-hook-qemu
bản sao git https://github.com/saschpe/libvirt-hook-qemu.git
thực hiện cài đặt
  1. Chỉnh sửa /etc/libvirt/hooks/hooks.json để phù hợp với nhu cầu của bạn. Đây chỉ là một ví dụ
{
    "www": {
        "private_ip": "192.168.122.100",
        "port_map": {
            "tcp": [80, 443]
        }
    },
    "email": {
        "private_ip": "192.168.122.101",
        "port_map": {
            "tcp": [25, 465]
        }
    }
}
  1. Kích hoạt và bắt đầu tường lửa-reload-hook.service
systemctl kích hoạt tường lửad-reload-hook.service
systemctl bắt đầu tường lửad-reload-hook.service
  1. tường lửa-cmd --reload

Tại thời điểm này systemctl khởi động lại libvirtdtường lửa-cmd --reload tạo ra kết quả tương tự và tồn tại khi khởi động lại (đã thử nghiệm trên Debian bullseye với mạng nftables và libvirt 7.0/NAT)

Vì vậy, đây có phải là cách tốt nhất để làm điều đó?

Tham khảo libvirt-hook-qemu, tường lửa-reload-hook.service, tường lửa.dbus

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