Hướng dẫn cách mở port trên CentOS 7 và 8

Hướng dẫn chi tiết cách mở port trên CentOS 7 và 8 để có thể truy cập tới dịch vụ Web khi bị Firewall (tường lửa) block port 80.

Nếu bạn có một máy chủ CentOS 8, trên đó cài dịch vụ Apache Web Server và lắng nghe trên cổng 80. Nhưng khi bạn cài xong thì không thể truy cập được cổng 80 thông qua domain cùng với IP máy chủ thì nguyên nhân là do đâu.

Hướng dẫn cách mở port trên CentOS 7 và 8 (1)

Nguyên nhân chính là Firewall (tường lửa) trên CentOS 7/8 mặc định block port 80 trên server. Chính vì thế, bạn phải mở port trên server để có thể truy cập tới dịch vụ Web.

Mở cổng (port) trên CentOS 7/8

Tường lửa trên CentOS 7/8 được quản lý bằng công vụ Firewall-cmd nên để mở port sử dụng command sau với quyền của tài khoản root.

  • Kiểm tra zone nào của tường lửa đang được active.
firewall-cmd --get-active-zones

Hướng dẫn cách mở port trên CentOS 7 và 8 (2)

  • Mở cổng (Ví dụ 80) trên zone đang active (Public Zone)
firewall-cmd --zone=public --add-port=80/tcp --permanent
  • Sau đó để luật mới có hiệu lực cần reload lại tường lửa bằng command sau:
firewall-cmd --reload

Hướng dẫn cách mở port trên CentOS 7 và 8 (3)

Để kiểm tra việc mở port thành công hay chưa, bạn hãy truy cập trực tiếp bằng domain hoặc địa chỉ IP của Server để xem máy chủ web đã hoạt động chưa.

Mở cổng trên CentOS 7/8 chỉ chi IP nhất định

Với phương pháp trên thì ai cũng có thể truy cập tới server của bạn. Nhưng nếu muốn tăng cường bảo mật thì chỉ cần thiết lập cho 1 địa chỉ IP hoặc 1 dải IP nhất định được phép truy cập.

firewall-cmd --permanent --zone=public --add-rich-rule='

rule family="ipv4"

source address="1.2.3.4/32"

port protocol="tcp" port="80" accept'
Hoặc sửa trực tiếp file config của firewall tại địa chỉ:  /etc/firewalld/zones/public.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Public</short>
  <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
  <service name="dhcpv6-client"/>
  <service name="ssh"/>
  <rule family="ipv4">
    <source address="1.2.3.4"/>
    <port protocol="tcp" port="80"/>
    <accept/>
  </rule>
  <rule family="ipv4">
    <source address="1.2.3.5"/>
    <port protocol="tcp" port="80"/>
    <accept/>
  </rule>
</zone>

Và đừng quên reload lại firewall để áp dụng luật mới.

firewall-cmd --reload

Chúc bạn thành công!