Có cách nào để chạy chỉ lưu với tường lửa trong RHEL7 không?


11

Tôi đang bắt đầu sử dụng RHEL7 và tìm hiểu một chút về những thay đổi đi kèm với systemd.

Có cách nào để thực hiện /sbin/service iptables savetrong tường lửa?

$ /sbin/service iptables save
The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.

Song song gần nhất tôi có thể tìm thấy từ Tài liệu là --reload:

Reload the firewall without loosing state information:
$ firewall-cmd --reload

Nhưng nó không nói rõ ràng nếu nó tiết kiệm hay không.

Câu trả lời:


21

Phiên bản tường lửa trong RHEL 7.0 không có tập lệnh "lưu" và không có cách nào để sao chép cấu hình tường lửa đang chạy sang cấu hình cố định. Bạn lưu thay đổi tường lửa bằng tường lửa bằng cách thêm --permanentvào dòng lệnh thực hiện thay đổi. Không có nó, mọi thay đổi bạn thực hiện là tạm thời và sẽ bị mất khi hệ thống khởi động lại.

Ví dụ:

firewall-cmd --add-service=http                 # Running config
firewall-cmd --add-service=http --permanent     # Startup config

Các phiên bản tường lửa (sau RHEL 7) sau này bao gồm một cách để lưu cấu hình đang chạy và hiện có sẵn trong Fedora và trong RHEL 7.1 . Trong trường hợp này, lệnh chỉ đơn giản là:

firewall-cmd --runtime-to-permanent

2
Để tiếp tục nhận xét của Michael Hampton, tôi thấy rằng tôi phải khởi động lại dịch vụ tường lửa ("systemctl restart Firewalld") sau khi chạy "tường lửa-cmd --r nb-to-Permanent" để các quy tắc tường lửa được lưu chính xác, đặc biệt là các quy tắc tường lửa được lưu chính xác, đặc biệt là sau khi phải loại bỏ một số quy tắc bằng tay thông qua iptables. Nó xuất hiện tường lửa lưu trữ một số quy tắc, do đó, "tường lửa-cmd - tải lại" có thể tạo lại các quy tắc từ tường lửa cần được loại bỏ thông qua lệnh "--r nb-to-Permanent".
Antony Nguyễn

2
Lưu ý rằng lệnh --r Yoon-to-Permanent không hiển thị khi hoàn thành tab, nhưng thực tế là nó có (được thử nghiệm trên hệ thống CentOS 7.5).
dodexahedron

@AntonyNguyen bạn không nên sử dụng các lệnh iptables khi tường lửa đang quản lý các quy tắc. FIrewalld không có cách nào để biết về sự thay đổi (nó sẽ cần thăm dò định kỳ và điều đó sẽ giết chết hiệu suất của tường lửa vì thiết kế của nó, mà btw đã được sửa bởi nftables) sử dụng 'tường lửa-cmd --direct --passthrough ipv4
-MỘT

0

Tôi cần thêm dịch vụ SIP và một số IP

trong thư mục / usr / lib / tường lửa / dịch vụ / Tôi đã thêm sip.xml dựa trên các tệp dịch vụ xml khác.

<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>SIP</short>
  <description>This is SIP, Yo! </description>
  <port protocol="udp" port="5060"/>
</service>

Sau đó, tôi đã thêm dịch vụ sip vào tường lửa

# firewall-cmd --add-service=sip --permanent 

Sau đó, tôi đã thêm IP vào dịch vụ trong /etc/firewalld/zones/public.xml

<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Public</short>
  <description></description>
  <service name="dhcpv6-client"/>
  <service name="http"/>
  <service name="ssh"/>
  <service name="https"/>

  <rule family="ipv4">
    <source address="x.x.x.x/32"/>
    <service name="sip"/>
    <accept/>
  </rule>

</zone>

bạn cũng có thể thêm LOG nếu bạn thêm mức ghi nhật ký

  <rule family="ipv4">
    <source address="x.x.x.x/32"/>
    <service name="sip" 
    <log prefix="sip" level="info"/>
    <accept/>
  </rule>

sau khi bạn thêm quy tắc vào vùng của mình, hãy thực thi

# firewall-cmd --reload

kiểm tra iptables của bạn - bạn sẽ được thiết lập tất cả.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.