(/ etc / sysconfig / iptables) Không nên sử dụng tùy chỉnh thủ công của tập tin này. Tại sao?


20

Chỉnh sửa tập tin này trực tiếp

/etc/sysconfig/iptables 

có thể tiết kiệm cho tôi rất nhiều đau đầu rất nhiều thời gian và vân vân ...

và trên đầu tập tin có ghi ..

Manual customization of this file is not recommended.

đây là '/ etc / sysconfig / iptables' vừa đi kèm với một máy chủ đám mây 6.4 centos hoàn toàn mới.

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

để mở cổng 80 tôi chỉ có thể sao chép dòng ..

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

và sau đó thay đổi "22" thành "80" và sau đó lưu tệp này và sau đó khởi động lại toàn bộ hệ thống.

Điều này sẽ mở cổng 80 cho tôi.

Đây là hoạt động khá đơn giản. và các tập tin nói rằng chỉnh sửa thủ công không được khuyến khích.

Tại sao tôi nên làm theo lời khuyên?

Câu trả lời:


18

Bởi vì công cụ được gọi system-config-firewall(hoặc nó là nsurses dựa trên anh em system-config-firewall-tui) quản lý tệp này. Mỗi khi bạn sử dụng công cụ này để tạo các quy tắc iptables mới, nó sẽ ghi đè lên /etc/sysconfig/iptables.

Trang chủ liên quan: 28.1.16. / etc / sysconfig / iptables-config

Đây là lý do tại sao nó không được khuyến khích, nhưng không bị cấm . Cách tốt nhất để lưu quy tắc của bạn bằng CentOS hoặc bất kỳ EL phiên bản 6 nào khác là sử dụng dịch vụ iptables sau khi bạn thêm một số quy tắc vào bộ nhớ:

# service iptables save

Câu hỏi liên quan: Tại sao iptables không tìm nạp thông tin từ / etc / sysconfig / iptables trên centOs?

Lý do không chỉnh sửa /etc/sysconfig/iptablestrực tiếp tệp này ( ):

  • Bởi vì nó là một tập tin được tạo tự động. Nội dung của nó đến từ kịch bản / daemon /etc/init.d/iptables.
  • Một số hành động như đặt lại hoặc dừng trình nền iptables có thể dẫn đến mất dữ liệu, vì nó sẽ ghi đè lên tệp. Các biến thú vị về chủ đề này: IPTABLES_SAVE_ON_STOP=""IPTABLES_SAVE_ON_RESTART=""bên trong /etc/sysconfig/iptables-configtệp. Có lẽ, điều chỉnh những điều đó sẽ làm cho những thay đổi của bạn bên trong /etc/init.d/iptablesliên tục.
  • Bởi vì tài liệu đã nói như vậy .Red Hat khuyên rằng đây là phương pháp tốt nhất để sử dụng cơ sở hạ tầng tường lửa của họ.

Một giải pháp thay thế cho "ghi đè lên các quy tắc tường lửa của tôi" mindf *** là vô hiệu hóa hoàn toàn các tập lệnh đó và dựa vào một phương pháp quản lý tường lửa tùy chỉnh, giống như phương pháp tiếp xúc với goldilocks .


Điều này nghe có vẻ giống như một đối số chống lại việc trộn và kết hợp chỉnh sửa tệp trực tiếp và thêm quy tắc bằng system-config-firewallcông cụ. Bạn có thể mở rộng lý do tại sao việc chỉnh sửa tệp thay vì sử dụng công cụ này không?
Michelle

Đã thêm thông tin bổ sung. Cảm ơn vì mẹo @Michelle

8

và trên đầu tập tin có ghi ..

Hmmm, thật lạ. Ở đầu của tôi, nó nói:

# Manual customization of this file is strongly encouraged.

Ai đó phải thay đổi nó;) Và trên thực tế, thậm chí đã chuyển nó ra /etc/sysconfigđể nó không bị "tự động không quen thuộc" bởi người quản lý gói hoặc bất cứ điều gì khác;);)

Tôi nghĩ rằng điểm chung ở đây với các tệp cấu hình như vậy là nếu bạn không biết bạn đang làm gì, đừng làm điều đó. Đôi khi cũng có cảnh báo rằng thỉnh thoảng tập tin bị ghi đè bởi hệ thống. Điều này có thể là do trình quản lý gói nâng cấp - mặc dù đôi khi PM sẽ lưu ý một tệp đã được thay đổi bằng tay và không ghi đè lên nó, hoặc lưu một bản sao, v.v. - và nó có thể là một công cụ khác chịu trách nhiệm cho cấu hình này trong cụ thể (xem câu trả lời của nwildner ).

Một phần của "biết những gì bạn đang làm" là nhận thức được các góc độ như thế này. Tôi cũng đã tùy chỉnh dịch vụ init cho iptables để sử dụng một vị trí khác cho tệp cấu hình và quan trọng nhất: Tôi là người duy nhất sử dụng máy tính này.

Giả sử có những người khác có quyền truy cập root, tôi sẽ không làm điều này trên máy chủ mà tôi chịu trách nhiệm trừ khi có lý do tốt hơn là "Tôi thích nó theo cách này", bởi vì nó có thể sẽ dẫn đến nhầm lẫn và khiến người khác đau đầu Ở một vài điểm. Nhưng nếu bạn là người dùng duy nhất và không ai khác phụ thuộc vào hệ thống, thì bạn có thể tự do làm những gì bạn muốn. "Phương pháp ưa thích" của tôi để định cấu hình tường lửa trông như thế này:

#!/bin/bash

if [[ ! -n "$IPTSET_FILE" ]]; then
        IPTSET_FILE=/etc/iptables.current
fi

if [[ ! -e $IPTSET_FILE ]]; then
        echo "$IPTSET_FILE does not exist!"
        exit 1
fi

vim $IPTSET_FILE
iptables-restore < $IPTSET_FILE

/etc/iptables.currentđược tạo khi khởi động bằng cách sao chép /etc/iptables(dịch vụ iptables được cấu hình để tải ban đầu). Bằng cách này, tôi có thể sửa đổi mọi thứ một cách nhanh chóng trong khi duy trì điểm tham chiếu mà hệ thống bắt đầu.

Điều này đưa chúng ta đến một điểm quan trọng, nếu bạn muốn đánh lừa các cấu hình có chứa loại cảnh báo này: Luôn tạo bản sao dự phòng của bản gốc trướ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.