Một số vấn đề với cấu hình tường lửa trong Linux CentOS

06/05/2013 17:53

Trong quá trình cài đặt Linux, CentOS sẽ yêu cầu bạn xác định có bật tường lửa lên hay không.

Trường hợp bạn quyết định bật tường lửa bằng cách chọn Enable firewall, bạn vẫn có thể cho phép một số ứng dụng và dịch vụ có thể đi xuyên qua tường lửa này, chẳng hạn như Remote Login, Web Server, File Transfer hay Mal Server.

Ngoài ra, trong bước cài đặt này, bạn cũng được chọn lựa sử dụng tính năng bảo mật nâng cao Security Enhanced Linux (SELinux) theo hai mức độ Warn (chỉ cảnh báo), Active (bảo mật toàn diện) hoặc bỏ qua không dùng tính năng này (Disable).

Dịch vụ iptables

Bạn cũng có thể cài đặt thêm dịch vụ IPTables trong CentOS để biến máy chủ Linux thành một tường lửa cho hệ thống mạng. Đây là một cách làm khá hiệu quả, vì IPtables có thể tích hợp tốt hơn phần nhân của hệ điều hành Linux CentOS, có khả năng phân tích gói tin hiệu quả, lọc gói tin dựa vào địa chỉ MAC và một số cờ hiệu trong TCP Header.Dịch vụ này cũng cung cấp các tuỳ chọn để ghi nhận sự kiện hệ thống (Event Log) và khả năng ngăn chặn được cơ chế tấn công theo kiểu DOS (Denial Of Service).

Cài đặt dịch vụ iptables

Để kiểm tra xem dịch vụ iptables đã được cài đặt hay chưa trong CentOS, ta sử dụng lệnh:

Nếu không có kết quả nào tìm thấy, để cài đặt, ta dùng lệnh:

Và sau đó tiến hành khởi động dịch vụ iptables

Cấu hình dịch vụ iptables

Có 2 cách cấu hình iptables là dùng lệnh và sửa file /etc/sysconfig/iptables. Nếu cấu hình iptables bằng cách dùng lệnh, cấu hình sẽ không được lưu lại sau khi ta khởi động lại dịch vụ iptables. Ví dụ sau đây là cấu hình iptables cho phép truy cập ssh:

Trong đó, dòng Firewall -1 INPUT –m tcp –p tcp –dport 22 –j ACCEPT sẽ mở cổng giao tiếp mặc định của dịch vụ SSH (port 22) và cho phép truy cập hệ thống bằng dịch vụ này.

Sau khi cấu hình, ta khởi động lại dịch vụ iptables, để phần thay đổi bắt đầu có tác dụng

Rồi chúng ta sẽ sang một máy tính Linux khác trong mạng, và kiểm tra cấu hình vừa hoàn tất bằng cách gõ lệnh ssh dia_chi_ip, với dia_chi_ip là địa chỉ IP của máy chủ cài iptables, và ta thấy truy cập là thành công.

Nếu thử nghiệm lại, ta thực hiện thao tác thêm dấu # vào đầu dòng để xóa tạm dòng cấu hình này trong trong file /etc/sysconfig/iptables, và cũng khởi động lại dịch vụ iptables, rồi bạn hãy tự kiểm tra lại kết quả.

Tương tự là phần cấu hình để iptables cấm thao tác trả lời gói tin ICMP (ping):

Ta thêm dấu # vào trước dòng cấu hình cho phép ICMP trong /etc/sysconfig/iptables, rồi khởi động lại

Khi dùng một máy tính bất kỳ để ping vào máy tính có iptables, bạn sẽ nhận được các phản hồi dạng Destination host unreachable.

Để có thể trở lại trạng thái ban đầu, bạn mở lại dòng cấu hình trong /etc/sysconfig/iptables để cho phép ping

Một số cấu hình iptables thường được sử dụng

Chấp nhận các packet vào cổng 80 trên card mạng eth0

iptables -A INPUT -i eth0 --dport 80 -j ACCEPT

Bỏ các gói tin gửi đến cổng 23 dùng giao thức TCP trên card mạng eth0

iptables -A INPUT -i eth0 -p tcp --dport 23 -j DROP

Cho phép firewall chấp nhận các gói tin TCP có địa chỉ nguồn là bất kỳ và địa chỉ đích là 192.168.1.1; và có hướng đi vào là công interface eth0:

iptables –AINPUT –s0/0 i eth0 -d 192.168.1.1-p TCP -j ACCEPT

Chấp nhận các gói tin TCP cho việc forward khi các gói tin có địa chỉ nguồn là bất kì đến từ interface ethernet 0, source post nằm trong dãy 1024-65535 và có địa chỉ đích là 192.168.1.58, ngõ ra là interface ethernet 1, với destination post là 80 (www)

iptables -A FORWARD -s 0/0 -i eth0 -d 192.168.1.58 -o eth1 -p TCP --sport 1024:65535 --dport 80 -j ACCEPT

Chấp nhận cho firewall send ICMP (echo-request) và nhận ICMP (echo-reply)

iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT-p icmp --icmp-type echo-reply-j ACCEPT

Firewall chấp nhận các gói tin TCP sẽ được route khi chúng đi vào interface ethernet0 với địa chỉ nguồn là bất kì và có chiều đi ra là interface ethernet 1 với địa chỉ đích là 192.168.1.58. Source post là dãy 1024-65535 và destination port là 80 (www) và 443 (https).

iptables -A FORWARD -s 0/0 -i eth0 -d 192.168.1.58 -o eth1 -p TCP --sport 1024:65535 -m multiport --dport 80,443 -j ACCEPT

Thay vì phải định ra source post và destination port, ta chỉ đơn giản sử dụng tùy chọn –m state --state ESTABLISHED

iptables -A FORWARD -d 0/0 -o eth0 -s 192.168.1.58 -i eth1 -p TCP -m state --state ESTABLISHED -j ACCEPT

Đổi IP nguồn cho các packet ra card mạng eth0 là 210.40.2.71. Khi nhận được packet vào từ Internet, Iptables sẽ tự động đổi IP đích 210.40.2.71 thành IP đích tương ứng của máy tính trong mạng LAN 192.168.0/24

iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 210.40.2.71

Hoặc bạn có thể dùng MASQUERADE thay cho SNAT như sau:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

(MASQUERADE thường được dùng khi kết nối đến Internet là pp0 và dùng địa chỉ IP động)

Đổi địa chỉ đích của server thành 192.168.1.2 khi truy cập đến 172.28.24.199

iptables -t nat -A PREROUTING -d 172.28.24.199 -i eth0 -j DNAT to-destination 192.168.1.2

Quản lý iptables bằng shorewall:

Shorewall là một kiểu giao diện để dễ quản lý iptables hơn. Ta có thể cài đặt shorewall bằng gói rpm như sau:

Cấu hình shorewall:

Trong tập tin cấu hình /etc/shorewall/interfaces, ta định nghĩa interface như sau:

Tiếp theo là định nghĩa các vùng trong tập tin cấu hình /etc/shorewall/zone:

Còn trong tập tin cấu hình /etc/shorewall/policy, ta xác định các chính sách kết nối giữa các vùng (zone) mà bạn đã định nghĩa trong file /etc/shorewall/zone phía trên

Việc cấu hình tập tin /etc/shorewall/rules là quan trọng nhất, kiểm soát những rule cho phép kết nối hay không. File /etc/shorewall/rules được hiểu như giao diện của iptables, thay vì định nghĩa bằng iptables phức tạp, thì ta tiến hành định nghĩa theo cấu trúc của shorewall, sau đó shorewall sẽ biên dịch lại thành những câu lệnh iptables.

Sau đó, bạn sửa chữa tập tin cấu hình /etc/shorewall/shorewall.conf, giữ nguyên cấu hình mặc định, chỉ sửa dòng sau:

Trước khi sử dụng, bạn phải khởi động dịch vụ shorewall, rồi kiểm tra các luật iptables phát sinh từ shorewall:

THANH DUY – TUYẾT PHONG

Ý kiến bạn đọc (0)
Tên   Email

Lên đầu trang