Quản trị viên Linux - Thiết lập tường lửa

firewalld là bộ điều khiển front-end mặc định cho iptables trên CentOS. Giao diện người dùng firewalld có hai ưu điểm chính so với iptables thô -

  • Sử dụng các chuỗi và quy tắc trừu tượng hóa vùng dễ định cấu hình và triển khai.

  • Các bộ quy tắc là động, có nghĩa là các kết nối trạng thái không bị gián đoạn khi các cài đặt được thay đổi và / hoặc sửa đổi.

Hãy nhớ rằng firewalld là trình bao bọc cho iptables - không phải là sự thay thế. Mặc dù các lệnh iptables tùy chỉnh có thể được sử dụng với firewalld , nhưng bạn nên sử dụng firewalld để không phá vỡ chức năng của tường lửa.

Trước tiên, hãy đảm bảo rằng firewalld đã được khởi động và kích hoạt.

[root@CentOS rdc]# systemctl status firewalld 
● firewalld.service - firewalld - dynamic firewall daemon 
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) 
Active: active (running) since Thu 2017-01-26 21:42:05 MST; 3h 46min ago 
 Docs: man:firewalld(1) 
Main PID: 712 (firewalld) 
  Memory: 34.7M 
 CGroup: /system.slice/firewalld.service 
       └─712 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

Chúng ta có thể thấy, firewalld vừa đang hoạt động (để bắt đầu khi khởi động) vừa đang chạy. Nếu không hoạt động hoặc không bắt đầu, chúng tôi có thể sử dụng -

systemctl start firewalld && systemctl enable firewalld

Bây giờ chúng ta đã cấu hình dịch vụ firewalld của mình, hãy đảm bảo rằng nó đang hoạt động.

[root@CentOS]# firewall-cmd --state 
running 
[root@CentOS]#

Chúng ta có thể thấy, dịch vụ firewalld có đầy đủ chức năng.

Firewalld hoạt động dựa trên khái niệm về khu vực . Một vùng được áp dụng cho các giao diện mạng thông qua Trình quản lý mạng. Chúng ta sẽ thảo luận về vấn đề này trong cấu hình mạng . Nhưng hiện tại, theo mặc định, việc thay đổi vùng mặc định sẽ thay đổi bất kỳ bộ điều hợp mạng nào còn lại ở trạng thái mặc định là "Vùng mặc định".

Hãy xem nhanh từng khu vực xuất hiện với firewalld .

Sr.No. Vùng & Mô tả
1

drop

Mức độ tin cậy thấp. Tất cả các kết nối đến và gói dữ liệu bị loại bỏ và chỉ các kết nối đi mới có thể thực hiện được thông qua trạng thái

2

block

Các kết nối đến được trả lời bằng một thông báo icmp cho người khởi xướng biết yêu cầu bị cấm

3

public

Tất cả các mạng đều bị hạn chế. Tuy nhiên, các kết nối đến đã chọn có thể được cho phép một cách rõ ràng

4

external

Định cấu hình firewalld cho NAT. Mạng nội bộ vẫn riêng tư nhưng có thể truy cập được

5

dmz

Chỉ một số kết nối đến mới được phép. Được sử dụng cho các hệ thống cách ly DMZ

6

work

Theo mặc định, hãy tin tưởng nhiều máy tính hơn trên mạng giả sử hệ thống ở trong môi trường làm việc an toàn

7

hone

Theo mặc định, nhiều dịch vụ hơn không được lọc. Giả sử một hệ thống nằm trên mạng gia đình, nơi các dịch vụ như NFS, SAMBA và SSDP sẽ được sử dụng

số 8

trusted

Tất cả các máy trên mạng đều được tin cậy. Hầu hết các kết nối đến đều được phép không bị kiểm soát.This is not meant for interfaces exposed to the Internet

Các khu vực phổ biến nhất để sử dụng là: công cộng, thả, cơ quan và nhà riêng.

Một số tình huống trong đó mỗi khu vực chung sẽ được sử dụng là:

  • public- Đây là vùng phổ biến nhất được quản trị viên sử dụng. Nó sẽ cho phép bạn áp dụng các cài đặt tùy chỉnh và tuân theo các thông số kỹ thuật RFC cho các hoạt động trên mạng LAN.

  • drop- Một ví dụ điển hình về thời điểm sử dụng drop là tại hội nghị bảo mật, trên WiFi công cộng hoặc trên giao diện được kết nối trực tiếp với Internet. drop giả định rằng tất cả các yêu cầu không được yêu cầu đều độc hại bao gồm các đầu dò ICMP. Vì vậy mọi yêu cầu ngoài bang sẽ không nhận được hồi âm. Mặt trái của drop là nó có thể phá vỡ chức năng của các ứng dụng trong một số tình huống nhất định yêu cầu tuân thủ RFC nghiêm ngặt.

  • work- Bạn đang sử dụng mạng LAN công ty bán bảo mật. Nơi tất cả giao thông có thể được coi là an toàn vừa phải. Điều này có nghĩa là nó không phải là WiFi và chúng tôi có thể có IDS, IPS và bảo mật vật lý hoặc 802.1x tại chỗ. Chúng ta cũng nên làm quen với những người sử dụng mạng LAN.

  • home- Bạn đang sử dụng mạng LAN gia đình. Bạn phải chịu trách nhiệm cá nhân đối với mọi hệ thống và người dùng trong mạng LAN. Bạn biết mọi máy trong mạng LAN và không máy nào bị xâm phạm. Thông thường, các dịch vụ mới được đưa ra để chia sẻ phương tiện giữa các cá nhân đáng tin cậy và bạn không cần phải mất thêm thời gian vì lợi ích bảo mật.

Các vùng và giao diện mạng hoạt động ở mức một đến nhiều mức. Một giao diện mạng chỉ có thể có một vùng duy nhất được áp dụng cho nó tại một thời điểm. Trong khi, một vùng có thể được áp dụng cho nhiều giao diện đồng thời.

Hãy xem những khu vực có sẵn và những khu vực hiện đang được áp dụng.

[root@CentOS]# firewall-cmd --get-zones 
 work drop internal external trusted home dmz public block

[root@CentOS]# firewall-cmd --get-default-zone 
public
[root@CentOS]#

Sẵn sàng thêm một số quy tắc tùy chỉnh trong firewalld?

Đầu tiên, hãy xem hộp của chúng ta trông như thế nào, đối với một máy quét cổng từ bên ngoài.

bash-3.2# nmap -sS -p 1-1024 -T 5  10.211.55.1
 
Starting Nmap 7.30 ( https://nmap.org ) at 2017-01-27 23:36 MST 
Nmap scan report for centos.shared (10.211.55.1) 
Host is up (0.00046s latency). 
Not shown: 1023 filtered ports 
PORT   STATE SERVICE 
22/tcp open  ssh


Nmap done: 1 IP address (1 host up) scanned in 3.71 seconds 
bash-3.2#

Hãy cho phép các yêu cầu đến cổng 80.

Trước tiên, hãy kiểm tra xem vùng nào được áp dụng làm mặc định.

[root@CentOs]# firewall-cmd --get-default-zone 
public
[root@CentOS]#

Sau đó, đặt quy tắc cho phép cổng 80 thành vùng mặc định hiện tại.

[root@CentOS]# firewall-cmd --zone=public --add-port = 80/tcp 
success
[root@CentOS]#

Bây giờ, hãy chọn hộp của chúng ta sau khi cho phép kết nối cổng 80.

bash-3.2# nmap -sS -p 1-1024 -T 5  10.211.55.1

Starting Nmap 7.30 ( https://nmap.org ) at 2017-01-27 23:42 MST 
Nmap scan report for centos.shared (10.211.55.1) 
Host is up (0.00053s latency). 
Not shown: 1022 filtered ports 
PORT   STATE  SERVICE 
22/tcp open   ssh 
80/tcp closed http

Nmap done: 1 IP address (1 host up) scanned in 3.67 seconds 
bash-3.2#

Bây giờ nó cho phép lưu lượng truy cập không mong muốn đến 80.

Hãy đặt vùng mặc định để giảm và xem điều gì sẽ xảy ra với quá trình quét cổng.

[root@CentOS]# firewall-cmd --set-default-zone=drop 
success

[root@CentOS]# firewall-cmd --get-default-zone 
drop

[root@CentOs]#

Bây giờ chúng ta hãy quét máy chủ có giao diện mạng trong một vùng an toàn hơn.

bash-3.2# nmap -sS -p 1-1024 -T 5  10.211.55.1 
Starting Nmap 7.30 ( https://nmap.org ) at 2017-01-27 23:50 MST 
Nmap scan report for centos.shared (10.211.55.1) 
Host is up (0.00094s latency). 
All 1024 scanned ports on centos.shared (10.211.55.1) are filtered

Nmap done: 1 IP address (1 host up) scanned in 12.61 seconds 
bash-3.2#

Bây giờ, mọi thứ đều được lọc từ bên ngoài.

Như được minh họa bên dưới, máy chủ lưu trữ thậm chí sẽ không phản hồi các yêu cầu ping ICMP khi bị giảm .

bash-3.2# ping 10.211.55.1 
PING 10.211.55.1 (10.211.55.1): 56 data bytes 
Request timeout for icmp_seq 0 
Request timeout for icmp_seq 1 
Request timeout for icmp_seq 2

Hãy đặt lại vùng mặc định thành công khai .

[root@CentOs]# firewall-cmd --set-default-zone=public 
success

[root@CentOS]# firewall-cmd --get-default-zone 
public

[root@CentOS]#

Bây giờ hãy kiểm tra bộ quy tắc lọc hiện tại của chúng tôi ở chế độ công khai .

[root@CentOS]# firewall-cmd --zone=public --list-all 
public (active) 
target: default 
icmp-block-inversion: no 
interfaces: enp0s5 
sources:  
services: dhcpv6-client ssh 
ports: 80/tcp 
protocols:  
masquerade: no 
forward-ports:  
sourceports:  
icmp-blocks:  
rich rules:

[root@CentOS rdc]#

Như đã định cấu hình, quy tắc bộ lọc cổng 80 của chúng tôi chỉ nằm trong ngữ cảnh của cấu hình đang chạy. Điều này có nghĩa là khi hệ thống được khởi động lại hoặc dịch vụ firewalld được khởi động lại, quy tắc của chúng tôi sẽ bị hủy.

Chúng tôi sẽ sớm định cấu hình daemon httpd , vì vậy hãy thực hiện các thay đổi của chúng tôi liên tục -

[root@CentOS]# firewall-cmd --zone=public --add-port=80/tcp --permanent 
success

[root@CentOS]# systemctl restart firewalld

[root@CentOS]#

Giờ đây, quy tắc cổng 80 của chúng tôi trong khu vực công cộng vẫn tồn tại qua các lần khởi động lại và khởi động lại dịch vụ.

Sau đây là các lệnh firewalld phổ biến được áp dụng với firewall-cmd .

Chỉ huy Hoạt động
firewall-cmd --get-zone Liệt kê tất cả các vùng có thể được áp dụng cho một giao diện
firewall-cmd —status Trả về trạng thái dòng của dịch vụ firewalld
firewall-cmd --get-default-zone Nhận vùng mặc định hiện tại
firewall-cmd --set-default-zone = <zone> Đặt vùng mặc định thành ngữ cảnh hiện tại
firewall-cmd --get-active-zone Nhận các vùng hiện tại trong ngữ cảnh như được áp dụng cho một giao diện
firewall-cmd --zone = <zone> --list-all Liệt kê cấu hình của vùng được cung cấp
firewall-cmd --zone = <zone> --addport = <port / transport protocol> Áp dụng quy tắc cổng cho bộ lọc vùng
--dài hạn Làm cho các thay đổi đối với khu vực liên tục. Cờ được sử dụng nội tuyến với các lệnh sửa đổi

Đây là những khái niệm cơ bản về quản trị và cấu hình firewalld .

Định cấu hình các dịch vụ tường lửa dựa trên máy chủ trong CentOS có thể là một nhiệm vụ phức tạp trong các tình huống mạng phức tạp hơn. Cách sử dụng và cấu hình nâng cao của firewalld và iptables trong CentOS có thể mất toàn bộ hướng dẫn. Tuy nhiên, chúng tôi đã trình bày những điều cơ bản đủ để hoàn thành phần lớn các công việc hàng ngày.