Cấu hình tường lửa và bất kỳ quy tắc tường lửa tùy chỉnh nào được lưu trữ trong tệp /etc/ sysconfig/iptables. Nếu bạn chọn Đã tắt và nhấp vào OK, các cấu hình và quy tắc tường lửa này sẽ bị mất. Nếu Vô hiệu hóa tường lửa đã được chọn, tập tin /etc/sysconfig/iptables bị xóa và dịch vụ iptables bị dừng ngay lập tức. Các tùy chọn được chọn cũng được ghi vào tập tin /etc/sysconfig/ system-config-selinux để cài đặt có thể được khôi phục vào lần tiếp theo khi ứng dụng được khởi động. Không chỉnh sửa tệp này bằng tay.
Bật các tùy chọn trong danh sách Dịch vụ đáng tin cậy cho phép dịch vụ được chỉ định truyền qua tường lửa.
WWW (HTTP)
FTP
SSH
Telnet
Mail (SMTP)
NFS4
Samba
194: tcp, 631: tcp
Các quy tắc tường lửa chỉ hoạt động nếu dịch vụ iptables đang chạy. Để bắt đầu dịch vụ theo cách thủ công, hãy sử dụng lệnh sau:
# service iptables start
# service iptables restart
Để đảm bảo rằng iptables bắt đầu khi hệ thống được khởi động, sử dụng lệnh sau:
# chkconfig --level 345 iptables on
Nếu ipchains được cài đặt (ví dụ, nâng cấp đã được thực hiện và hệ thống đã cài đặt trước đó ipchains), các dịch vụ ipchains và iptables sẽ không được kích hoạt đồng thời. Để đảm bảo dịch vụ ipchains bị vô hiệu hóa và được cấu hình không khởi động lúc khởi động, hãy sử dụng hai lệnh sau:
# service ipchains stop
# chkconfig --level 345 ipchains off
Dịch vụ ip6tables có thể được tắt nếu bạn định sử dụng dịch vụ iptables. Nếu bạn tắt dịch vụ ip6tables, hãy nhớ tắt mạng IPv6. Không bao giờ để thiết bị mạng hoạt động mà không có tường lửa phù hợp.
Lệnh iptables mẫu sau đây minh họa cú pháp lệnh cơ bản:
# iptables -A -j
: INPUT, OUTPUT và FORWARD.
-j : ACCEPT, DROP và REJECT.
Các chính sách sau chặn tất cả các gói đến và đi trên cổng mạng:
# iptables -P INPUT DROP
# iptables -P OUTPUT DROP
Nó cũng được khuyến nghị rằng bất kỳ gói chuyển tiếp nào - lưu lượng mạng được định tuyến từ tường lửa đến nút đích của nó - cũng bị từ chối, để hạn chế các khách hàng nội bộ vô tình tiếp xúc với Internet. Để thực hiện việc này, hãy sử dụng quy tắc sau:
# iptables -P FORWARD DROP
Các thay đổi đối với iptables là tạm thời; nếu hệ thống được khởi động lại hoặc nếu dịch vụ iptables được khởi động lại, các quy tắc sẽ tự động được xóa và đặt lại. Để lưu các quy tắc để chúng được nạp khi dịch vụ iptables được khởi động, sử dụng lệnh sau:
# service iptables save
#/sbin/service iptables save
Các quy tắc được lưu trữ trong tập tin / etc / sysconfig / iptables và được áp dụng bất cứ khi nào dịch vụ được khởi động hoặc máy được khởi động lại. Sau khi khởi động máy thực hiện lệnh sau để khởi động lại quy tắc
#/sbin/iptables-restore
Để các quy tắc có hiệu lực hảy thực hiện
#/sbin/service iptables restart
Để cho phép người dùng thực hiện các chức năng liên quan đến mạng và sử dụng các ứng dụng mạng, quản trị viên phải mở một số cổng nhất định để liên lạc. Để cho phép truy cập cổng 80 trên tường lửa, hãy thêm quy tắc sau:
# iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
Để cho phép truy cập vào các trang web bảo mật (ví dụ: https://www.example.com/), bạn cũng cần cung cấp quyền truy cập vào cổng 443, như sau:
# iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
Khi tạo một ruleset iptables, thứ tự là quan trọng.
Nếu một quy tắc chỉ định rằng bất kỳ gói nào từ mạng con 192.168.100.0/24 sẽ bị loại bỏ và sau đó là một quy tắc cho phép các gói từ 192.168.100.13 (nằm trong mạng con bị loại bỏ), thì quy tắc thứ hai bị bỏ qua.
Quy tắc cho phép các gói từ 192.168.100.13 phải đứng trước quy tắc giảm phần còn lại của mạng con.
Để chèn một quy tắc vào một vị trí cụ thể trong một chuỗi hiện có, hãy sử dụng tùy chọn -I. Ví dụ:
# iptables -I INPUT 1 -i lo -p all -j ACCEPT
Quy tắc này được chèn vào như quy tắc đầu tiên trong chuỗi INPUT để cho phép lưu lượng thiết bị loopback cục bộ.
Các quy tắc sau cho phép truy cập SSH từ xa:
# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
Để cho phép chuyển tiếp cho toàn bộ mạng LAN (giả sử tường lửa / cổng được gán một địa chỉ IP nội bộ trên eth1), hãy sử dụng các quy tắc sau:
# iptables -A FORWARD -i eth1 -j ACCEPT
# iptables -A FORWARD -o eth1 -j ACCEPT
Theo mặc định, chính sách IPv4 trong hạt nhân Red Hat Enterprise Linux vô hiệu hóa hỗ trợ cho chuyển tiếp IP. Điều này ngăn các máy chạy Red Hat Enterprise Linux hoạt động như các bộ định tuyến cạnh chuyên dụng. Để bật chuyển tiếp IP, hãy sử dụng lệnh sau:
# sysctl -w net.ipv4.ip_forward=1
Thay đổi cấu hình này chỉ hợp lệ cho phiên hiện tại; nó không tồn tại sau khi khởi động lại hoặc khởi động lại dịch vụ mạng. Để đặt vĩnh viễn chuyển tiếp IP, hãy chỉnh sửa tệp /etc/sysctl.conf như sau:
Xác định vị trí dòng sau:
net.ipv4.ip_forward = 0
Chỉnh sửa nó để đọc như sau:
net.ipv4.ip_forward = 1
Sử dụng lệnh sau để cho phép thay đổi tệp sysctl.conf:
# sysctl -p /etc/sysctl.conf
Để cho phép các nút mạng LAN có địa chỉ IP riêng để giao tiếp với các mạng công cộng bên ngoài, hãy cấu hình tường lửa cho giả mạo IP, sẽ che dấu các yêu cầu từ các nút LAN với địa chỉ IP của thiết bị bên ngoài của tường lửa (trong trường hợp này là eth0):
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Nếu bạn muốn chuyển tiếp các yêu cầu HTTP đến máy chủ HTTP Apache chuyên dụng của bạn tại 172.31.0.23, hãy sử dụng lệnh sau đây:
# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 172.31.0.23:80
Nếu bạn có chính sách mặc định DROP trong chuỗi FORWARD của mình, bạn phải thêm một quy tắc để chuyển tiếp tất cả các yêu cầu HTTP đến để có thể định tuyến NAT đích. Để thực hiện việc này, sử dụng lệnh sau:
# iptables -A FORWARD -i eth0 -p tcp --dport 80 -d 172.31.0.23 -j ACCEPT
Quy tắc này chuyển tiếp tất cả các yêu cầu HTTP đến từ tường lửa đến đích dự định; Apache HTTP Server phía sau tường lửa.
Để thiết lập một quy tắc định tuyến các yêu cầu HTTP đến một máy chủ HTTP chuyên dụng ở 10.0.4.2 (ngoài phạm vi 192.168.1.0/24 của LAN), NAT sử dụng bảng PREROUTING để chuyển tiếp các gói đến đích thích hợp:
# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 10.0.4.2:80
Các quy tắc sau thả tất cả lưu lượng TCP cố gắng sử dụng cổng 31337:
# iptables -A OUTPUT -o eth0 -p tcp --dport 31337 --sport 31337 -j DROP
# iptables -A FORWARD -o eth0 -p tcp --dport 31337 --sport 31337 -j DROP
nếu mạng LAN của bạn sử dụng dải 192.168.1.0/24, bạn có thể thiết kế quy tắc hướng dẫn thiết bị mạng quay mặt (ví dụ, eth0) để thả bất kỳ gói nào vào thiết bị đó bằng địa chỉ trong dải IP LAN của bạn.
Bởi vì nó được khuyến khích để từ chối các gói chuyển tiếp như là một chính sách mặc định, bất kỳ địa chỉ IP giả mạo nào khác cho thiết bị quay mặt bên ngoài (eth0) đều bị từ chối tự động.
# iptables -A FORWARD -s 192.168.1.0/24 -i eth0 -j DROP
Có sự khác biệt giữa DROP và mục tiêu REJECT khi xử lý các quy tắc được nối thêm.
Mục tiêu REJECT từ chối truy cập và trả về kết nối bị từ chối lỗi cho người dùng cố kết nối với dịch vụ. Mục tiêu DROP, như tên của nó, giảm gói tin mà không có bất kỳ cảnh báo nào.
Quản trị viên có thể sử dụng quyết định của riêng mình khi sử dụng các mục tiêu này. Tuy nhiên, để tránh nhầm lẫn người dùng và cố gắng tiếp tục kết nối, mục tiêu REJECT được đề xuất.
Ví dụ sau đây cho thấy một quy tắc sử dụng theo dõi kết nối để chỉ chuyển tiếp các gói được kết hợp với một kết nối được thiết lập:
# iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT