Hướng dẫn mở port trên CentOS, bao gồm firewall và SELinux

1️⃣ Mở port 5000 trên firewall

# Mở tạm thời (mất sau reboot)
sudo firewall-cmd --zone=public --add-port=5000/tcp

# Mở vĩnh viễn
sudo firewall-cmd --zone=public --add-port=5000/tcp --permanent
sudo firewall-cmd --reload

# Kiểm tra
sudo firewall-cmd --list-ports
  • Kết quả sẽ hiển thị 5000/tcp nếu mở thành công.

2️⃣Thêm port vào SELinux cho dịch vụ tùy chỉnh

SELinux cần biết port 5000 được phép sử dụng:

  1. Tạo type port mới (ví dụ myapp_port_t):
sudo semanage port -a -t myapp_port_t -p tcp 5000
  1. Kiểm tra port đã được SELinux ghi nhận chưa:
sudo semanage port -l | grep 5000
  • Kết quả ví dụ:
myapp_port_t  tcp  5000

Lưu ý: Nếu semanage chưa có, cài bằng:

sudo yum install policycoreutils-python-utils

3️⃣ Kiểm tra port từ ngoài mạng

Từ máy khác (hoặc máy ngoài Internet) chạy:

telnet <public-ip> 5000

hoặc

nc -vz <public-ip> 5000
  • Nếu kết nối thành công → port đã public ra Internet.

4️⃣ Lưu ý bảo mật

  • Chỉ mở port cần thiết.
  • Nếu dịch vụ nhạy cảm, cân nhắc VPN hoặc firewall nâng cao.
  • SELinux vẫn nên bật để bảo vệ server.

Script hoàn chỉnh

#!/bin/bash

# 1️⃣ Hiển thị IP nội bộ
IP_NOI_BO=$(ip -4 addr show | grep -oP '(?<=inet\s)\d+(\.\d+){3}' | grep -v '^127')
echo "IP nội bộ: $IP_NOI_BO"

# 2️⃣ Hiển thị IP công cộng
IP_CONG_CONG=$(curl -s ifconfig.me)
echo "IP công cộng: $IP_CONG_CONG"

# 3️⃣ Mở port 5000 trên firewall
echo "Mở port 5000 trên firewall..."
sudo firewall-cmd --zone=public --add-port=5000/tcp
sudo firewall-cmd --zone=public --add-port=5000/tcp --permanent
sudo firewall-cmd --reload
echo "Port 5000 đã mở trên firewall."

# 4️⃣ Thêm port 5000 vào SELinux cho dịch vụ tùy chỉnh
echo "Thêm port 5000 vào SELinux..."
# Kiểm tra nếu semanage chưa cài, sẽ cài
if ! command -v semanage &> /dev/null
then
    echo "Cài semanage..."
    sudo yum install -y policycoreutils-python-utils
fi

# Thêm port mới nếu chưa tồn tại
if ! semanage port -l | grep -q 5000; then
    sudo semanage port -a -t myapp_port_t -p tcp 5000
    echo "Port 5000 đã thêm vào SELinux."
else
    echo "Port 5000 đã tồn tại trong SELinux."
fi

echo "Hoàn tất! Bạn có thể kiểm tra kết nối từ bên ngoài bằng:"
echo "telnet $IP_CONG_CONG 5000  hoặc nc -vz $IP_CONG_CONG 5000"

✅ Cách sử dụng

  1. Tạo file, ví dụ setup_port5000.sh
nano setup_port5000.sh
  1. Dán nội dung script vào, lưu lại.
  2. Cho phép chạy:
chmod +x setup_port5000.sh
  1. Chạy script:
./setup_port5000.sh
  • Script sẽ in ra IP nội bộ, IP công cộng, mở port 5000 và thêm vào SELinux.

Hãy bình luận đầu tiên

Để lại một phản hồi

Thư điện tử của bạn sẽ không được hiện thị công khai.


*