Cách di chuyển từ FirewallD sang Iptables trên CentOS 7
Giống như hầu hết các bản phân phối Linux khác, CentOS 7 sử dụng khungnetfilter bên trong nhân Linux để truy cập các gói truyền qua  mạng . Điều này cung cấp giao diện cần thiết để kiểm tra và thao tác các gói nhằm triển khai hệ thống firewall .   Hầu hết các bản phân phối sử dụng firewall  iptables , sử dụng các móc netfilter để thực thi các  luật  firewall . CentOS 7 đi kèm với một dịch vụ thay thế được gọi là firewalld đáp ứng cùng mục đích này.
 Mặc dù firewalld là một giải pháp firewall  rất có khả năng với các tính năng tuyệt vời, nhưng một số  user  có thể dễ dàng gắn bó với iptables nếu họ cảm thấy thoải mái với cú pháp của nó và hài lòng với hành vi và hiệu suất của nó. Các iptables lệnh được thực sự được sử dụng bởi firewalld chính nó, nhưng iptables dịch vụ không được cài đặt trên CentOS 7 theo mặc định. Trong hướng dẫn này,  ta  sẽ trình bày cách cài đặt dịch vụ iptables trên CentOS 7 và di chuyển firewall  của bạn từ firewalld sang iptables (hãy xem hướng dẫn này nếu bạn muốn tìm hiểu cách sử dụng FirewallD thay thế).
Lưu Luật firewall hiện tại của bạn (Tùy chọn)
 Trước khi chuyển sang iptables làm giải pháp firewall  cho  server  của bạn, bạn nên lưu các  luật  hiện tại mà firewalld đang thực thi.  Ta  đã đề cập ở trên rằng daemon firewalld thực sự sử dụng lệnh iptables để nói với các hook của  kernel  netfilter . Do đó,  ta  có thể kết xuất các  luật  hiện tại bằng lệnh iptables .
 Đưa bộ  luật  hiện tại vào  kết quả  tiêu chuẩn và vào một file  trong folder  chính của bạn có tên firewalld_iptables_rules  bằng lệnh :
- sudo iptables -S | tee ~/firewalld_iptables_rules 
Làm tương tự với ip6tables :
- sudo ip6tables -S | tee ~/firewalld_ip6tables_rules 
Tùy thuộc vào các vùng firewalld đang hoạt động, các dịch vụ đã được kích hoạt và các  luật  được chuyển trực tiếp từ firewall-cmd đến iptables , bộ  luật  được kết xuất có thể khá rộng.
 Dịch vụ firewalld thực hiện các policy  firewall  của nó bằng cách sử dụng các  luật  iptables thông thường, thực hiện điều này bằng cách xây dựng một khung quản lý sử dụng chuỗi iptables . Hầu hết các  luật  mà bạn có thể thấy sẽ được sử dụng để tạo ra các chuỗi quản lý này và định hướng stream  lưu lượng vào và ra khỏi các cấu trúc này.
 Các  luật  firewall  mà bạn cuối cùng chuyển sang dịch vụ iptables  của bạn  sẽ không cần tạo lại khung quản lý mà firewalld dựa vào. Do đó, bộ  luật  mà bạn cuối cùng thực hiện có thể sẽ đơn giản hơn nhiều.  Ta  đang lưu toàn bộ tập hợp ở đây để giữ càng nhiều dữ liệu thô càng tốt.
Bạn có thể xem một số dòng quan trọng hơn để biết policy mà bạn sẽ phải tạo lại bằng lệnh nội dung như sau:
- grep 'ACCEPT\|DROP\|QUEUE\|RETURN\|REJECT\|LOG' ~/firewalld_iptables_rules 
Điều này chủ yếu sẽ hiển thị các luật dẫn đến quyết định cuối cùng. Các luật chỉ chuyển đến chuỗi do user tạo sẽ không được hiển thị.
Download và cài đặt Dịch vụ Iptables
 Để bắt đầu quá trình chuyển đổi  server , bạn cần  download  và cài đặt gói iptables-service từ repository  CentOS.
Download và cài đặt các file dịch vụ bằng lệnh :
- sudo yum install iptables-services 
Thao tác này sẽ  download  và cài đặt các tập lệnh systemd được sử dụng để quản lý dịch vụ iptables . Nó cũng sẽ ghi một số file  cấu hình iptables và ip6tables mặc định vào folder  /etc/sysconfig .
Xây dựng Luật firewall Iptables của bạn
 Tiếp theo, bạn cần xây dựng các  luật  firewall  iptables  của bạn  bằng cách sửa đổi các file  /etc/sysconfig/iptables và /etc/sysconfig/ip6tables . Các file  này chứa các  luật  sẽ được đọc và áp dụng khi  ta  khởi động dịch vụ iptables .
 Cách bạn xây dựng các  luật  firewall   của bạn  phụ thuộc vào việc quá trình system-config-firewall có được cài đặt và được sử dụng để quản lý các file  này hay không. Kiểm tra phần đầu của file  /etc/sysconfig/iptables để xem liệu nó có khuyến nghị không nên chỉnh sửa thủ công hay không:
- sudo head -2 /etc/sysconfig/iptables 
Nếu  kết quả  trông giống như thế này, vui lòng chỉnh sửa thủ công các file  /etc/sysconfig/iptables và /etc/sysconfig/ip6tables để triển khai các policy  cho firewall  iptables của bạn:
output# sample configuration for iptables service # you can edit this manually or use system-config-firewall Mở và chỉnh sửa các file  có  quyền  sudo để thêm các  luật  của bạn:
- sudo nano /etc/sysconfig/iptables 
- sudo nano /etc/sysconfig/ip6tables 
Sau khi thực hiện các luật của bạn , bạn có thể kiểm tra các luật IPv4 và IPv6 của bạn bằng các lệnh sau:
- sudo sh -c 'iptables-restore -t < /etc/sysconfig/iptables' 
- sudo sh -c 'ip6tables-restore -t < /etc/sysconfig/ip6tables' 
Mặt khác, nếu  kết quả  từ việc kiểm tra file  /etc/sysconfig/iptables trông giống như thế này, bạn không nên chỉnh sửa file  theo cách thủ công:
output# Firewall configuration written by system-config-firewall # Manual customization of this file is not recommended. Điều này  nghĩa là  công cụ quản lý system-config-firewall được cài đặt và được sử dụng để quản lý file  này. Mọi thay đổi thủ công sẽ bị công cụ overrides . Nếu bạn thấy điều này, bạn nên  áp dụng các thay đổi  đối với firewall   của bạn  bằng một trong các công cụ liên quan. Đối với giao diện  user  văn bản, hãy nhập:
- sudo system-config-firewall-tui 
Nếu bạn đã cài đặt giao diện user đồ họa, bạn có thể chạy nó bằng lệnh :
- sudo system-config-firewall 
Nếu bạn cần một số trợ giúp để tìm hiểu về các  luật  và cú pháp iptables , các hướng dẫn sau có thể hữu ích mặc dù chúng chủ yếu được  nhắm đến  vào hệ thống Ubuntu:
- Cách cài đặt firewall bằng Iptables trên Ubuntu 14.04
- Iptables Essentials: Các luật và lệnh firewall chung
- Cách triển khai mẫu firewall cơ bản với Iptables trên Ubuntu 14.04
Dừng Dịch vụ Tường lửaD và Bắt đầu Dịch vụ Iptables
 Tiếp theo,  ta  cần dừng firewalld hiện tại và kích hoạt các dịch vụ iptables của  ta .  Ta  sẽ sử dụng cấu trúc && để bắt đầu các dịch vụ firewall  mới ngay sau khi dịch vụ firewalld tắt thành công:
- sudo systemctl stop firewalld && sudo systemctl start iptables; sudo systemctl start ip6tables 
Bạn có thể  xác minh  firewalld không chạy  bằng lệnh :
- sudo firewall-cmd --state 
Bạn cũng có thể thấy rằng các  luật  bạn  cài đặt  trong folder  /etc/sysconfig đã được tải và áp dụng  bằng lệnh :
- sudo iptables -S 
- sudo ip6tables -S 
 Đến đây,  các dịch vụ iptables và ip6tables đang hoạt động cho phiên hiện tại. Tuy nhiên, hiện tại, dịch vụ firewalld vẫn là dịch vụ sẽ tự động khởi động khi  server  khởi động lại.
Đây là thời điểm tốt nhất để kiểm tra các policy firewall của bạn đảm bảo rằng bạn có cấp độ truy cập mà bạn cần, vì bạn có thể khởi động lại server để hoàn nguyên về firewall cũ nếu có sự cố nào .
Tắt Dịch vụ Tường lửaD và Bật Dịch vụ Iptables
 Sau khi kiểm tra các  luật  firewall  của bạn  đảm bảo  rằng policy  của bạn đang được thực thi một cách chính xác, bạn có thể tiếp tục và tắt dịch vụ firewalld  bằng lệnh :
- sudo systemctl disable firewalld 
Điều này sẽ ngăn dịch vụ tự động  khởi động khi server khởi động . Vì dịch vụ firewalld không nên được khởi động theo cách thủ công trong khi các dịch vụ iptables đang chạy, bạn có thể thực hiện thêm một bước bằng cách che dịch vụ. Điều này cũng sẽ ngăn dịch vụ firewalld khởi động theo cách thủ công:
- sudo systemctl mask firewalld 
Bây giờ, bạn có thể kích hoạt các dịch vụ iptables và ip6tables để chúng sẽ tự động  khởi động khi server khởi động :
- sudo systemctl enable iptables 
- sudo systemctl enable ip6tables 
Điều này sẽ hoàn tất quá trình chuyển đổi firewall của bạn.
Kết luận
 Triển khai firewall  là một bước cần thiết để giữ an toàn cho  server  của bạn. Mặc dù firewalld là một giải pháp firewall  tuyệt vời, nhưng đôi khi việc sử dụng công cụ quen thuộc nhất hoặc sử dụng cùng một hệ thống trên các cơ sở hạ tầng đa dạng hơn lại có ý nghĩa nhất.
Các tin liên quan
Tìm hiểu sâu về kiến trúc Iptables và Netfilter2015-08-20
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
Cách triển khai mẫu firewall cơ bản với Iptables trên Ubuntu 14.04
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
Cách thiết lập firewall Iptables cơ bản trên Centos 6
2013-04-16
 

