Thứ tư, 02/09/2015 | 00:00 GMT+7

Cách di chuyển quy tắc firewall Iptables sang server mới

Khi di chuyển từ server này sang server khác, bạn thường muốn di chuyển các luật firewall iptables như một phần của quy trình. Hướng dẫn này sẽ chỉ cho bạn cách dễ dàng sao chép bộ luật iptables đang hoạt động của bạn từ server này sang server khác.

Yêu cầu

Hướng dẫn này yêu cầu hai server . Ta sẽ đề cập đến server nguồn, có các luật iptables hiện tại, là Server A. Server đích, nơi các luật sẽ được di chuyển đến, sẽ được gọi là Server B.

Bạn cũng cần phải có superuser hoặc sudo , quyền truy cập vào cả hai server .

Xem các luật Iptables hiện tại

Trước khi di chuyển các luật iptables của bạn, hãy xem chúng được đặt thành gì. Bạn có thể làm điều đó với lệnh này trên Server A :

  • sudo iptables -S
Example output:
-P INPUT ACCEPT -P FORWARD ACCEPT -P OUTPUT ACCEPT -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -s 15.15.15.51/32 -j DROP

Các luật ví dụ ở trên sẽ được sử dụng để chứng minh quá trình di chuyển firewall .

Xuất luật Iptables

Lệnh iptables-save ghi các luật iptables hiện tại vào stdout (tiêu chuẩn). Điều này cho ta một cách dễ dàng để xuất các luật firewall sang file , bằng cách chuyển hướng stdout đến một file .

Trên Server A , server có luật iptables mà bạn muốn di chuyển, hãy sử dụng iptables-save để xuất các luật hiện tại sang file có tên "iptables-export" như sau:

  • cd ~
  • sudo iptables-save > iptables-export

Thao tác này sẽ tạo file iptables-export , trong folder chính của bạn. Tệp này được dùng trên một server khác để tải các luật firewall vào iptables.

Xem nội dung file (Tùy chọn)

Ta hãy xem nhanh nội dung của file . Ta sẽ sử dụng lệnh cat để in nó ra terminal:

  • cat iptables-export
iptables-export contents:
# Generated by iptables-save v1.4.21 on Tue Sep 1 17:32:29 2015 *filter :INPUT ACCEPT [135:10578] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [8364:1557108] -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -s 15.15.15.51/32 -j DROP COMMIT # Completed on Tue Sep 1 17:32:29 2015

Như bạn thấy , file chứa cấu hình của các luật iptables đang hoạt động. Bây giờ ta đã sẵn sàng sao chép file này vào server đích của ta , Server B.

Sao chép các luật đã xuất sang server đích

Ta cần sao chép file luật vào server đích của ta , Server B. Cách dễ nhất để làm điều này là sử dụng scp hoặc copy paste nội dung file vào một file mới trên Server B. Ta sẽ trình bày cách sử dụng scp để sao chép file qua mạng vào /tmp .

Trên Server A , chạy lệnh scp này. Đảm bảo thay thế các phần được đánh dấu bằng thông tin đăng nhập và địa chỉ IP của server của bạn:

  • scp iptables-export user@server_b_ip_address:/tmp

Sau khi cung cấp xác thực thích hợp, file sẽ được sao chép vào /tmp trên Server B. Lưu ý nội dung của /tmp sẽ bị xóa khi khởi động lại — vui lòng đặt nó ở nơi khác nếu bạn muốn giữ nó.

Nhập luật Iptables

Với các luật đã xuất trên server đích, bạn có thể tải chúng vào iptables. Tuy nhiên, tùy thuộc vào tình huống của bạn, bạn có thể cần cập nhật các luật trong file với địa chỉ IP và dải mới, và có thể cập nhật tên giao diện. Nếu bạn muốn thay đổi các luật trước khi tải chúng, hãy nhớ chỉnh sửa file /tmp/iptables-export ngay bây giờ.

Khi đã sẵn sàng tải các luật từ file iptables-export vào iptables, hãy sử dụng lệnh iptables-restore để thực hiện.

Trên Server B , server đích, chạy lệnh này để tải các luật firewall :

  • sudo iptables-restore < /tmp/iptables-export

Điều này sẽ tải các luật vào iptables. Bạn có thể xác minh điều này bằng sudo iptables -S .

Lưu luật

Các luật Iptables là tạm thời, vì vậy cần đặc biệt chú ý để chúng tồn tại sau khi khởi động lại — có khả năng là bạn cần thực hiện bước này trên Server B. Ta sẽ hướng dẫn bạn cách lưu các luật trên cả Ubuntu và CentOS.

Ubuntu

Trên Ubuntu, cách dễ nhất để lưu các luật iptables, để chúng tồn tại sau khi khởi động lại, là sử dụng gói iptables-dai dẳng. Cài đặt nó bằng apt-get như sau:

  • sudo apt-get install iptables-persistent

Trong khi cài đặt, bạn sẽ hỏi bạn có muốn lưu các luật firewall hiện tại của bạn hay không. Trả lời yes , nếu bạn muốn lưu bộ luật hiện tại.

Nếu bạn cập nhật các luật firewall của bạn trong tương lai và muốn lưu các thay đổi, hãy chạy lệnh sau:

  • sudo invoke-rc.d iptables-persistent save

CentOS 6 trở lên

Trên CentOS 6 trở lên — CentOS 7 sử dụng FirewallD theo mặc định — bạn có thể sử dụng tập lệnh iptables init để lưu các luật iptables của bạn :

  • sudo service iptables save

Thao tác này sẽ lưu các luật iptables hiện tại của bạn vào file /etc/sysconfig/iptables , được tải bởi iptables khi khởi động.

Kết luận

Xin chúc mừng! Các luật firewall của bạn đã được di chuyển từ server ban đầu sang server mới.


Tags:

Các tin liên quan

Cách thiết lập firewall Iptables để bảo vệ lưu lượng truy cập giữa các server của bạn
2015-08-20
Tìm hiểu sâu về kiến trúc Iptables và Netfilter
2015-08-20
Cách triển khai mẫu firewall cơ bản với Iptables trên Ubuntu 14.04
2015-08-20
Cách di chuyển từ FirewallD sang Iptables trên CentOS 7
2015-08-20
Cách liệt kê và xóa các quy tắc firewall Iptables
2015-08-14
Iptables Essentials: Các quy tắc và lệnh firewall chung
2015-08-10
Cách cô lập server trong mạng riêng bằng Iptables
2014-06-04
Cách thiết lập firewall bằng Iptables trên Ubuntu 14.04
2014-05-06
Cách thức hoạt động của firewall Iptables
2014-05-02
Cách thiết lập firewall Iptables cơ bản trên Centos 6
2013-04-16