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.
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ạn2015-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