Cấu hình tường lửa trên Centos 6/7

Cấu hình tường lửa trên Centos 6/7

Tường lửa là gì?

Trong ngành mạng máy tính,  tường lửa (firewall) là rào chắn mà một số cá nhân, tổ chức, doanh nghiệp, cơ quan nhà nước lập ra nhằm ngăn chặn các truy cập thông tin không mong muốn từ ngoài vào hệ thống mạng nội bộ cũng như ngăn chặn các thông tin bảo mật nằm trong mạng nội bộ xuất ra ngoài internet mà không được cho phép.

Tường lửa là một thiết bị phần cứng hoặc một phần mềm hoạt động trong một môi trường máy tính nối mạng để ngăn chặn một số liên lạc bị cấm bởi chính sách an ninh của cá nhân hay tổ chức. Tường lửa còn được gọi là Thiết bị bảo vệ biên giới(Border Protection Device – BPD), đặc biệt trong các ngữ cảnh của NATO, hay bộ lọc gói tin (packet filter) trong hệ điều hành BSD – một phiên bản Unix của Đại học California, Berkeley. (Theo Wikipedia)

Vậy trên hệ điều hành Centos 6/7 thì cấu hình tường lửa như thế nào, mời các bạn cùng tìm hiểu nhé.

Centos 6.x

Cài đặt

Tường lửa thường được cài mặc định theo hệ điều hành, để kiểm tra đã có tường lửa trong hệ thống hay chưa, bạn dùng lệnh:

# iptables –version

Nếu chưa thì cài đặt bằng lệnh sau:

# yum install iptables

Cấu hình iptables

Kiểm tra ban đầu:

Để mở port cần thiết bạn cần phải xác định được service muốn mở và port nó.

Ví dụ:

Bạn có thể đóng tất cả các port đang mở bằng lệnh:

# iptables -F

Xem danh sách cổng (port) đang mở:

# iptables -L -n
 

Các cột trong ảnh có ý nghĩa như sau:

target: hành động sẽ được áp dụng

  • Accept: gói dữ liệu được chuyển tiếp để xử lý.
  • Drop: gói dữ liệu bị chặn và tiêu hủy.
  • Reject: gói dữ liệu bị chặn, và tiêu hủy đồng thời thông báo lỗi tới người gửi.

prot (protocol – giao thức) quy định các giao thức sẽ được áp dụng bao gồm: all, TCP hay UDP.

source: địa chỉ nguồn

destination: địa chỉ đích

Mở port

Mở port bằng lệnh:

# iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport XXX -j ACCEPT

Trong đó XXX là port muốn mở.

Lưu cấu hình iptable:

# service iptables save

Khởi động lại dịch vụ:

# service iptables restart

Kiểm tra xem port đã được mở chưa:

# iptables -L -n
Đóng port

Để đóng port bạn chỉ cần chỉnh sửa file iptable bằng lệnh:

# nano /etc/sysconfig/iptables

Sau đó muốn đóng port nào thì comment dòng đó bằng cách thêm dấu # vào phía trước.

Chặn IP

Để chặn 1 IP bất kì truy cập bạn dùng lệnh:

# iptables -A INPUT -s IP_ADDRESS -j DROP

Trong đó IP_ADDRESS là địa chỉ IP muốn chặn. Nếu muốn chặn IP truy cập port cụ thể thì dùng lệnh:

# iptables -A INPUT -p tcp -s IP_ADDRESS –dport PORT -j DROP

Trong đó PORT là cổng muốn cấm IP_ADDRESS truy cập.

Lưu cấu hình

Sau khi đã thiết lập mở/chặn port, bạn cần chặn toàn bộ kết nối còn lại và mở toàn bộ kết nối từ máy chủ ra ngoài.

Mở tất cả kết nối từ máy chủ ra ngoài:

# iptables -P OUTPUT ACCEPT

Chặn tất cả kết nối còn lại:

# iptables -P INPUT DROP

Kiểm tra lại một lần nữa:

# iptables -L –n

Tránh việc phải cấu hình lại khi reboot máy chủ thì bạn phải lưu lại những thiếp lập đã thực hiện bằng lệnh:

# iptables-save | sudo tee /etc/sysconfig/iptables

Hoặc

# service iptables save

Kết quả trả về như sau là lưu thành công:

iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]

Centos 7.x

Ở Centos 7, tường lửa mặc định được cài đặt là firewalld, tuy nhiên nếu bạn muốn sử dụng  Iptables trên Centos 7 thì bạn có thể tắt  Firewalld và sử dụng Iptables bằng cách sau:

Tắt firewallld:

# systemctl mask firewalld

Dừng dịch vụ firewalld

# systemctl stop firewalld

Cài đặt các gói Iptables:

Để iptables và ip6tables tự chạy khi khởi động máy:

# systemctl enable iptables
# systemctl enable ip6tables

Khởi động iptables và ip6tables# systemctl start iptables

# systemctl start ip6tables

Bạn đã có thể cấu hình tường lửa như mình hướng dẫn cho Centos 6 nhé.

Chúc các bạn thành công. Cảm ơn các bạn đã theo dõi.