Đóng/mở Port CentOS được quản lý thông qua hệ thống tường lừa mặc định, Iptables đối với CentOS 6 và FirewallD đối với CentOS 7

Để sử dụng sâu hơn, các bạn tham khảo bài viết:

1. Mở port VPS

Ví dụ để mở port xxx, bạn hãy thực hiện lệnh sau:
– Đối với Iptables.

# iptables -I INPUT -p tcp -m tcp --dport xxx -j ACCEPT

Sau đó lưu lại cấu hình và khởi động lại iptables

# service iptables save
# service iptables restart

– Đối với FirewallD.

# firewall-cmd --zone=public --add-port=9999/tcp
# firewall-cmd --zone=public --add-port=9999/tcp --permanent
# firewall-cmd --reload

2. Đóng port VPS

– Đối với Iptables, chỉnh sửa trực tiếp file /etc/sysconfig/iptables và comment(#) những dòng có port cần đóng.

# nano /etc/sysconfig/iptables

Sau đó lưu lại cấu hình và khởi động lại iptables

# service iptables save
# service iptables restart

– Đối với FirewallD

# firewall-cmd --zone=public --remove-port=9999/tcp
# firewall-cmd --zone=public --remove-port=9999/tcp --permanent
# firewall-cmd --reload

3. Kiểm tra lại port đang mở

– Danh sách toàn bộ port đang mở:
Đối với Iptables

# iptables -L -n

Đối với FirewallD

# firewall-cmd --list-all

– Kiểm tra qua website Port Check
– Kiểm tra port đang được dùng bởi service nào, ví dụ port 80. Nếu dùng CentOS 7 bạn cần cài đặt: yum install net-tools

# netstat -tulpn | grep 80

Comment của bạn

Lưu ý: tất cả comment đều được kiểm duyệt cẩn thận! Nếu có code bạn hãy up lên pastebin.com rồi để lại link trong comment.

65 Comments

  1. bé heo 2 comment

    # nano /etc/sysconfig/iptables
    Bạn ơi cenots mình gõ lệnh vào xóa port thì mở ra trống không. mình phải làm sao ạ ?
    kiểm tra bằng lệnh , thì nó vẫn hiện đầy đủ
    # iptables -L -n

    ===> có cách nào mở file này thủ công không ạ ? vì vào ftp thì không thấy file này tồn tại mà kiểm tra bằng code thì vẫn thấy dữ liệu trong đó.

    1. Học VPS Admin

      Chào bạn,
      Không rõ bạn đang sử dụng phiên bản Centos nào?Bạn kiểm tra xem trong thư mục /etc/sysconfig xem có file iptables.sve không nhé, Bạn có thể thử chạy lệnh service iptables restart để lưu file iptables với các rule hiện tại nhé

  2. Hong Vi 48 comment

    Ad cho hỏi sao mình không vô được domain.com:port. mình bật port như hướng dẫn, và làm theo google mà k được. web vẫn hoạt động bình thường

    không hiểu kiểu gì dạo này hay lỗi quá 🙁

    1. Hong Vi 48 comment

      2 này đều dùng ramnode, và cloudfare. mình hỏi thì ramnode họ bảo k chặn port

  3. Lasso EZ 17 comment

    Hi AD! Giúp mình với. Là cái VPS mình mua ở Vutur nhưng gặp phải trường hợp là mình dổi port vào admin hocvps và sử dụng Iptables (mình dùng hướng dẫn để tắt firewall rồi nhé ad) cái này mình sẽ để mở port. Sau khi mình add port vô iptable để mở rồi nhưng vẫn thì check trên website thì lại báo không mở (hình : https://prnt.sc/pj5nwp).

  4. Trương Phi Tâm 2 comment

    a Luân ơi.

    Mấy hôm nay tự nhiên e connect ssh không được nữa. Nó cứ báo connect refused. Nhưng mà cái http://IP:port vào cái quản lý của hocvps nó vẫn chạy. E restart vps ở trên vultr nhưng mà vẫn k connect vào được. Thanks a

  5. duy 1 comment

    làm sao để chặn không cho google index địa chỉ IP admin,

    thỉnh thoảng mình thấy google tìm kiếm hiển thị url IP thay cho domain.

    Thanks

  6. Kien Nguyen 3 comment

    Trên vulrtt mình check:
    ACCEPT tcp — 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 ctstate NEW
    ACCEPT tcp — 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 ctstate NEW
    ACCEPT tcp — 0.0.0.0/0 0.0.0.0/0 tcp dpt:25 ctstate NEW
    ACCEPT tcp — 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 ctstate NEW
    ACCEPT tcp — 0.0.0.0/0 0.0.0.0/0 tcp dpt:465 ctstate NEW
    ACCEPT tcp — 0.0.0.0/0 0.0.0.0/0 tcp dpt:587 ctstate NEW
    ACCEPT tcp — 0.0.0.0/0 0.0.0.0/0 tcp dpt:3642 ctstate NEW
    ACCEPT tcp — 0.0.0.0/0 0.0.0.0/0 tcp dpt:2222 ctstate NEW

    Các port này đều mở hết nhưng kiểm tra trên ping.eu thì mấy port mail vẫn đang close.

    1. Việt Phương Moderator

      Nhiều nhà cung cấp họ đóng port mail thủ công nhé, để tránh spam mail. Bạn viết ticket để yêu cầu họ mở

        1. Việt Phương Moderator

          Bạn muốn port đó hiển thị thư mục nào thì bạn set listen port với webroot thôi. Giống y hệt như block HTTP 80 thì ở đây bạn sửa thành port bạn cần

  7. Cuong 9 comment

    [root@3c1def01-b4e3-42ac-8686-786ac1db8d1f home]# service iptables save
    The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.
    [root@3c1def01-b4e3-42ac-8686-786ac1db8d1f home]# service iptables restart
    Redirecting to /bin/systemctl restart iptables.service
    Failed to restart iptables.service: Unit not found.

    Ad ơi,
    Biết vì sao ko có service iptables ko?
    Khắc phục cách nào ad?

    1. Việt Phương Moderator

      Hệ thống bạn CentOS 7 firewalld là mặc định và có thể script đã disable iptables và sử dụng iptables. Bạn sẽ cần disable FirewallD và cài iptables nếu muốn sử dụng iptables

  8. Nguyễn Long 23 comment

    Mình làm các bước trên nhưng mỗi lần khởi động lại vps hoặc restart lại nginx thì port mình thêm lại bị đóng, lại phải mởi lại mới được. Như vậy là bị làm sao vậy bạn?

    1. Việt Phương Moderator

      Mình chưa gặp trường hợp này bao giờ. Bạn gửi VPs qua support@hocvps.com mình xem cho
      Và port bạn có bị nhà cung cấp đóng vì gian lận traffic không? (kiểu spam…) Check mail sẽ thấy
      Và bạn mở port xong có save và restart lại iptables không

    1. Việt Phương Moderator

      Bạn truy cập VPS qua terminal trên trang quản lý để mở port nhé.

  9. Jay Ngố 5 comment

    Còn 1 lỗi nhỏ nữa thôi ạ, vấn đề bay giờ là Mysql đã start bình thường rồi nhưng dùng lệnh hocvps số 8 và 9 để tạo và xoá database thì cũng bị báo lỗi.

    /etc/hocvps/menu/tao-database: line 5: [: /var/lib/mysql/jayngo.xyz.pid

    Mon men theo /var/lib/mysql/ thì thấy có 2 file .pid tên mysql.pid và domancuaminh.pid

    Vậy nên xoá file nào để chạy bình thường a?

    1. Jay Ngố 5 comment

      Trong thời gian đợi Mod cứu em cũng đã tìm ra nguyên nhân, vì sv chưa có dữ liệu nhiều và lần đầu vọc hocvps nên cũng xác định backup rồi phá banh luôn… May mà em fix được.

      Đầu tiên sẽ Stop Mysql sau đó đổi tên mysql để phòng trường hợp có mà dùng lại, start lại thì command đơ… sau khi check lại status thì đã run

      Chức năng số 8,9 xài được bình thường.

  10. Jay Ngố 5 comment

    Nhap vao lua chon menu cua ban:8
    /etc/hocvps/menu/tao-database: line 5: [: /var/lib/mysql/jayngo.xyz.pid: binary operator expected
    MariaDB chua khoi dong hoac co the bi loi khong the khoi dong!!!
    Vui long kiem tra lai

    Nhap vao lua chon menu cua ban:cd^C
    [root@jayngo nginx]# cd /var/lib/mysql/
    [root@jayngo mysql]# ls
    aria_log.00000001 ib_logfile0 jayng_xyz mysql.pid
    aria_log_control ib_logfile1 li1342-166.members.linode.com.err mysql.sock
    ibdata1 jayngo.xyz.pid mysql performance_schema
    [root@jayngo mysql]#

    Mình mới gặp lỗi này bây giờ không tạo đc data, mặc dù web chạy bình thường. Không biết fix sao luôn 🙁

      1. Jay Ngố 5 comment

        Cảm ơn Mod đã trả lời, mình không check mail nên không biết đã có reply. Mình xin tiếp để nhờ Mod giúp fix lỗi với.

        Check status báo: SUCCESS! MySQL running (5632)

        Webserver cuả mình vẫn chạy bình thường, chỉ là không dùng chức năng của hocvps được thôi.

        Mình có thao tác sửa file hosts và hostname không biết có gì sai làm ảnh hưởng không?

        [root@jayngo public_html]# cat /etc/sysconfig/network
        NETWORKING=yes
        HOSTNAME=jayngo.xyz
        [root@jayngo public_html]# cat /etc/hosts
        127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
        ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
        139.162.82.xxx jayngo.xyz hocvps

          1. Jay Ngố 5 comment

            Sau khi restart tất cả các dịch vụ nginx, php-fpm và sau cùng là mysql với Errcode: 13. Sau 1 hồi tra Google thì phát hiện ra lỗi là do file log của mysql. Mình rm -rf nó thì start dịch vụ lại oki rồi.

            Cảm ơn Mod rất nhiều vì đã hổ trợ nhiệt tình :*

  11. sinhle 71 comment

    trên sentora thì sao vậy Admin ơi. Mình gõ nano /etc/sysconfig/iptables nhưng file trống rỗng. cảm ơn

    1. Việt Phương Moderator

      Sentora không sử dụng ứng dụng nào làm firewall mặc định mà để cho user tự lựa chọn tùy theo hệ thống của họ. Còn Iptables được cài đặc mặc định trên hầu hết các hệ thống Linux.
      Bạn test iptables -L hoặc iptables -v ra kết quả gì không

  12. Kor 3 comment

    Anh Luân cho e hỏi , website của e hôm nay tự dưng bị “refused to connect” .Đang xài ổn định cả tháng nay, k có chỉnh sửa gì, hỏi bên nhà cung cấp thì bên đó check thấy port 80 bị close. Mình có check lại iptables trên vps thì đã accept cho port 80 rồi , có cách nào kiểm tra và khắc phục không anh ?

  13. kai 1 comment

    Chào anh,
    Em cài Centos 7 trên VMware rồi, nhưng sau ko kích hoạt đc ssh vậy anh.
    Anh chỉ giúp em đc ko ạ!!
    thân!!!

  14. Hữu Tài 2 comment

    Chào anh,
    Em đã cài mọi thứ hoàn tất, nhưng nó chỉ chạy được HTML, file PHP thì khi truy cập bị báo là 502 Bad Gateway nginx, anh giúp em với ạ

  15. khoailang 2 comment

    Bạn ơi cho mình hỏi, mình deploy vps trên vultr, cặt đặt nginx xong và khởi động lên. Cho mình hỏi làm cách nào để truy cập trực tiếp từ địa chỉ ip vps. Mình gõ ip vào trình duyệt thì k truy cập được.

          1. Khanh 6 comment

            Mình cũng disable SELinux rồi.
            Giờ nếu mình stop iptables thì truy cập được nhưng start lên lại không truy cập được nữa.

          2. Khanh 6 comment

            Ok, để mình thử theo hướng dẫn của bạn

            Cảm ơn bạn nhiều

          3. Khanh 6 comment

            Cảm ơn bạn nhiều, mình làm theo hướng dẫn của bạn đã truy cập được rồi 🙂

  16. khang 1 comment

    Mình có 1 vps centros đã cài apache,bây giờ mình muốn thiết lập kết nối vpn dùng ip của host đó thì làm sao bạn.Cảm ơn

  17. Duong 4 comment

    ai muốn mở port vpn centos trên vultr thì thêm dòng này vào /etc/sysconfig/iptables nhé

    *filter
    :INPUT ACCEPT [0:0]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [0:0]
    :acctboth – [0:0]
    :cP-Firewall-1-INPUT – [0:0]
    -A INPUT -j cP-Firewall-1-INPUT
    -A INPUT -j acctboth
    -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
    -A INPUT -p icmp -j ACCEPT
    -A INPUT -i lo -j ACCEPT
    -A INPUT -p tcp -m tcp –dport 30000:50000 -j ACCEPT
    -A INPUT -p tcp -m state –state NEW -m tcp –dport 22 -j ACCEPT
    -A INPUT -j REJECT –reject-with icmp-host-prohibited
    -A FORWARD -j cP-Firewall-1-INPUT
    -A FORWARD -j REJECT –reject-with icmp-host-prohibited
    -A OUTPUT -j acctboth
    -A acctboth -s x.x.x.x/32 ! -i lo -p tcp -m tcp –dport 80

  18. phung quy 1 comment

    Chào bạn. Mình có sử dụng VPS, cài nginx và nodejs trên đó. Mình chạy thử 1 ứng dụng nodejs trên cổng 3333. Mình dùng mạng trên công ty thì chạy ok. dùng mạng khác (3G chẳng hạn) lại không thể truy cập đc.? bạn có thể giúp mình được không?

  19. thao 7 comment

    đã cài sript lúc nhấn port quên điền số dài quá giờ k login dc làm sao đổi port đây bác

  20. Cường 2 comment

    mấy anh cho em hỏi,giờ em có máy chủ ảo vps, em cài sql đẩy data vào giờ em muốn sql trên máy client kết nối sql máy chủ ảo thì làm s ạ

      1. Cường 2 comment

        Em nhận được câu trả lời lời, để em nghiên cứu.Thanks anh Luân Trần đã giúp đỡ.

  21. CươngPjh 29 comment

    Anh ơi cái HocVPS em đang sài tốt hôm nay vào thêm Database thì nó cứ báo thế này. reboot vps rồi nó vẫn thế trong khi phpadmin và database vẫn hoạt động.

    Nhap vao lua chon menu cua ban:8
    /etc/hocvps/menu/tao-database: line 5: [: /var/lib/mysql/CuongVPS.pid: binary operator expected
    MariaDB chua khoi dong hoac co the bi loi khong the khoi dong!!!
    Vui long kiem tra lai

    Làm thế nào để fix ạ? 🙁

      1. CươngPjh 29 comment

        À em fix đc rồi, tks a. Nguyên nhân là do em chuyển local VPS về máy chủ khác đồng thời đổi tên nên xuất hiện 2 file .pid chỉ cần xóa file .pid của VPS cũ đi là được 😀

      2. HienDN 1 comment

        anh cho em hỏi là e dùng bản hocvps cũ rồi menu có 16 lựa chọn ý, bây giờ e muốn nâng cấp hocvps thì có ảnh hưởng gì tới vps ko a? vps e chạy centos 6.7

        1. Luân Trần Admin

          Nếu đang chạy bình thường ổn định rồi thì không cần thiết phải nâng cấp đâu bạn. Cứ thế dùng thôi 😀