Cách mở cổng trong CentOS 7 bằng Firewalld

Tác giả sysadmin, T.M.Hai 23, 2022, 02:21:09 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Cách mở cổng trong CentOS 7 bằng Firewalld


Hướng dẫn này sẽ hướng dẫn bạn cách mở một cổng trong tường lửa mặc định trong CentOS 7, Firewalld.

Bạn sẽ thấy rằng mặc dù chúng ta có thể mở một cổng cụ thể theo cách thủ công, nhưng thay vào đó, việc cho phép dựa trên các dịch vụ được xác định trước thường dễ dàng và có lợi hơn.

1. Mở cổng cụ thể

Việc mở một cổng trong tường lửa khá đơn giản, trong ví dụ dưới đây, chúng tôi cho phép lưu lượng truy cập từ bất kỳ địa chỉ IP nguồn nào tới cổng TCP 100. Trước tiên, chúng tôi sửa đổi cấu hình liên tục, sau đó chúng tôi tải lại tường lửa-cmd để tải thay đổi này vào cấu hình đang chạy.

Mã nguồn [Chọn]
[root@centos7 ~]# firewall-cmd --permanent --add-port=100/tcp
success
[root@centos7 ~]# firewall-cmd --reload
success

Nếu cờ --Permanent không được chỉ định, điều này sẽ chỉ thay đổi cấu hình đang chạy nhưng sẽ không được lưu.

Chúng tôi có thể kiểm tra các cổng được mở trong vùng mặc định hiện tại bằng '--list-ports'.

Mã nguồn [Chọn]
[root@centos7 ~]# firewall-cmd --list-ports
100/tcp

Như mong đợi, chúng tôi thấy rằng cổng TCP 100 đang mở.

Nếu chúng tôi muốn xóa một cổng, chúng tôi có thể sử dụng '--remove-port=' để thay thế.

Chúng tôi cũng có thể mở một loạt các cổng theo cách tương tự.

Mã nguồn [Chọn]
[root@centos7 ~]# firewall-cmd --permanent --add-port=200-300/tcp
success

2. Mở dịch vụ được xác định trước

Thay vì chỉ định thủ công một số cổng để cho phép đi qua tường lửa, chúng ta có thể sử dụng một loạt các dịch vụ được xác định trước có thể dễ dàng hơn. Ví dụ: thay vì mở cổng TCP 80, chúng ta có thể sử dụng dịch vụ 'http'.

Mã nguồn [Chọn]
[root@centos7 ~]# firewall-cmd --permanent --add-service=http
success
[root@centos7 ~]# firewall-cmd --reload
success

Bây giờ nếu chúng tôi liệt kê các dịch vụ được chấp nhận thông qua tường lửa, chúng tôi sẽ thấy http được liệt kê cùng với ssh và dhcpv6-client, được phép thông qua theo mặc định.

Mã nguồn [Chọn]
[root@centos7 ~]# firewall-cmd --list-services
dhcpv6-client http ssh

Đây là một dịch vụ được xác định trước và có thể được tìm thấy dưới dạng tệp XML trong thư mục /usr/lib/firewalld/services/. Đây là giao diện của dịch vụ http mà chúng ta vừa sử dụng.

Mã nguồn [Chọn]
[root@centos7 ~]# cat /usr/lib/firewalld/services/http.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>WWW (HTTP)</short>
  <description>HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages.</description>
  <port protocol="tcp" port="80"/>
</service>

Chúng ta có thể tạo các dịch vụ tùy chỉnh bằng cách sao chép một trong các dịch vụ này vào thư mục /etc/firewalld/services/ rồi tùy chỉnh nó. Các dịch vụ trong thư mục /usr/lib/firewalld/services/ KHÔNG được sửa đổi, các thay đổi phải được sao chép vào /etc/firewalld/services/ sau đó tải lại tường lửa-cmd để nhận các thay đổi.

3. Mở dịch vụ hoặc cổng thủ công?

Tại sao chúng tôi muốn sử dụng các dịch vụ nếu chúng tôi chỉ có thể chỉ định cổng? Các mô-đun có thể được chỉ định trong một dịch vụ, ví dụ: samba.xml tải mô-đun "nf_conntrack_netbios_ns" cho chúng tôi khi nó được bật, cùng với bốn cổng khác nhau, điều này dễ dàng hơn nhiều so với việc tự làm tất cả những điều này vì chúng tôi không cần phải ghi nhớ tất cả của các cổng cần thiết cho một dịch vụ.

Vẫn không phải là một fan hâm mộ của tường lửa? Đừng lo lắng, thay vào đó, bạn luôn có thể cài đặt ifconfig trong CentOS 7, tuy nhiên lưu ý rằng điều này được coi là không dùng nữa.

Chúng tôi đã thấy rằng tường lửa trong CentOS 7 có thể được sửa đổi để mở một cổng cụ thể hoặc tốt hơn là chúng tôi có thể mở nó cho một dịch vụ.

Mặc dù các ví dụ cơ bản này chứng minh việc mở một cổng tới bất kỳ nguồn nào, nhưng điều này thường không được mong muốn. Chúng tôi có thể lọc thêm dựa trên lưu lượng truy cập nguồn với các quy tắc phong phú của tường lửa.