Công cụ CSF là một giải pháp bảo mật mạnh mẽ giúp bảo vệ hệ thống Linux khỏi các mối đe dọa từ mạng. Với khả năng quản lý firewall, ngăn chặn các cuộc tấn công brute-force, và bảo vệ kết nối SSH, CSF đảm bảo rằng quyền truy cập vào máy chủ luôn được kiểm soát chặt chẽ, nâng cao mức độ an toàn và ổn định cho hệ thống của bạn. Vì vậy, hãy cùng mình tìm hiểu cách cài đặt và tối ưu hóa CSF để bảo vệ máy chủ của bạn một cách hiệu quả nhất.
Những điểm chính
- CSF Firewall và cách cài đặt: Giới thiệu về CSF và hướng dẫn chi tiết cách cài đặt và cấu hình tường lửa trên hệ thống Linux để bảo vệ an toàn mạng.
- Cấu hình bảo mật nâng cao: Hướng dẫn các thiết lập bảo mật quan trọng như giới hạn kết nối, chống SYNFlood và theo dõi đăng nhập thất bại.
- Quản lý tường lửa qua command line: Cung cấp các lệnh cơ bản để quản lý và cấu hình CSF Firewall qua dòng lệnh, giúp người dùng tối ưu hóa bảo mật hệ thống.
- Vietnix – Nhà cung cấp VPS đáng tin cậy và tối ưu hiệu suất cho doanh nghiệp.
1. CSF Firewall là gì
CSF (ConfigServer Security & Firewall) là tường lửa Stateful Packet Inspection (SPI) mã nguồn mở phổ biến, giúp bảo vệ hệ thống sử dụng hệ điều hành Linux. Ngoài các tính năng cơ bản của Firewall là filter packet in/out thì CSF còn hỗ trợ ngăn chặn các cuộc tấn công như Brute Force, DDoS Attack.
CSF có thể cấu hình block/restrict port để giới hạn port truy cập. Đồng thời, CSF duy trì danh sách whitelist và blacklist để kiểm soát truy cập. CSF cũng cung cấp Connection Limiting để giới hạn số lượng kết nối, Rate Limitng để giới hạn tần số truy cập, Real Time Block Liste và Port Scan Tracking (chống Scan Port).
CSF bao gồm cả LFD (Hướng dẫn cài đặt và cấu hình CSF Firewall chi tiết nhất 2021 có thể scan log file để giám sát và phát hiện các cuộc tấn công từ bên ngoài vào các tài khoản FTP, Mail, SSH, cPanel, DirectAdmin… Giám sát các thư mục (dirwatch), tiến trình (process tracking), tính toàn vẹn của các file hệ thống (integrity check) để nhanh chóng phát hiện các bất thường, rủi ro có thể gây hại cho hệ thống.
Để quản lý các log file tốt hơn bạn có thể đọc qua bài viết về Logrotate.
CSF có thể được quản lý dễ dàng bằng GUI (giao diện) được tích hợp sẵn, và hoàn toàn tương thích với:
- DirectAdmin
- cPanel
- WebMin / Virtualmin
- CentOS 6, CentOS 7, CentOS 8
- Ubuntu
- Debian
- RHEL
CSF Firewall vs iptables
CSF thực chất là một bộ script giúp chúng ta tương tác với iptables một cách dễ dàng hơn, bản chất nó không phải là một firewall thay thế cho iptables. Những thông số chúng ta cấu hình trong file config (csf.conf) sẽ được generate thành những rule iptables tương ứng và apply vào hệ thống.
Có thể xem CSF là một interface đứng giữa người sử dụng và iptables. Thông qua việc tương tác với file config, giao diện hoặc bộ command line của CSF, người sử dụng dễ dàng tạo ra những rule iptables để bảo vệ hệ thống mà không cần tương tác trực tiếp với iptables.
2. Cài đặt CSF
Hướng dẫn này giả định rằng bạn đã quen thuộc với SSH và biết cách sử dụng command line cơ bản. Hướng dẫn này chủ yếu áp dụng cho những người dùng có Virtual Private Servers hoặc Dedicated Servers. Nếu bạn không có quyền truy cập root, bạn không thể cấu hình theo hướng dẫn.
Cài đặt Dependencies
Bắt đầu bằng cách cài đặt các dependencies:
CENTOS 5, 6
yum install perl-libwww-perl
- Ngoài ra, libwww có thể được cài đặt bằng CPAN:
perl -MCPAN -e 'install Bundle::LWP'
CENTOS 7
yum -y install wget perl unzip net-tools perl-libwww-perl perl-LWP-Protocol-https perl-GDGraph -y
CENTOS, RHEL 8
- Install PERL
dnf -y install @perl
UBUNTU & DEBIAN
apt-get install perl wget unzip
Cài đặt CSF Firewall
Download CSF vào thư mục /tmp của server bằng lệnh wget, giải nén file bằng lệnh tar và cuối cùng install CSF bằng cách chạy script ./install.sh.
cd /tmp
wget https://download.configserver.com/csf.tgz
tar -zxvf csf.tgz
cd csf
./install.sh
Để cài đặt CSF cho cPanel hoặc cài đặt CSF cho Directadmin, các bạn cũng chỉ cần thực hiện các bước tương tự như trên. Việc chạy file “./install.sh” sẽ tự động nhận biết server có đang sử dụng cPanel hoặc Directadmin hay không và sử dụng tiến trình cài đặt tương ứng.
Sau khi cài đặt thành công, chúng ta sẽ nhận được giao diện tương tự như sau:
Sau khi cài đặt hoàn tất, xóa các file cài đặt:
rm -rf /tmp/csf
rm -f /tmp/csf.tgz
Tắt Firewalld (Centos 7+)
Trước khi config, cần lưu ý CentOS 7 có một ứng dụng tường lừa mặc định được gọi là “firewalld“. Bạn cần tắt firewalld và xóa nó khỏi startup.
systemctl stop firewalld
systemctl disable firewalld
Test iptable
Test này được khuyến nghị để kiểm tra xem các modules cần thiết của iptables được được cài đặt đầy đủ hay chưa. Nó có thể được thực hiện bằng cách chạy command bên dưới hoặc đi tới phần “test iptables” ở cuối giao diện Đồ họa (GUI) của CSF.
Quy trình này nằm ngoài phạm vi của bài viết và có thể yêu cầu thay đổi kernel trên server. Những VPS sử dụng công nghệ OpenVZ sẽ cần liên hệ với nhà cung cấp (host) để load các module cần thiết. Nếu bạn đang sử dụng dịch vụ tại Vietnix, hãy liên hệ với bộ phận kỹ thuật để được hỗ trợ nhanh nhất.
$ /etc/csf/csftest.pl
Testing ip_tables/iptable_filter...OK
Testing ipt_LOG...OK
Testing ipt_multiport/xt_multiport...OK
Testing ipt_REJECT...OK
Testing ipt_state/xt_state...OK
Testing ipt_limit/xt_limit...OK
Testing ipt_recent...OK
Testing xt_connlimit...OK
Testing ipt_owner/xt_owner...OK
Testing iptable_nat/ipt_REDIRECT...OK
Testing iptable_nat/ipt_DNAT...OK
RESULT: csf should function on this server
3. Cấu hình CSF
Cấu hình được thực hiện bằng cách chỉnh sửa các file config khác nhau mà CSF đi kèm. Bạn có thể tìm thấy chúng ở /etc/csf/
Các config files chính bao gồm:
- csf.conf: File cấu hình chính, nó có các ghi chú hữu ích giải thích chức năng của từng option
- csf.allow: Danh sách các địa chỉ IP, CIDR được phép thông qua tường lửa (whitelist)
- csf.deny: Tập hợp các địa chỉ IP, CIDR không bao được phép thông qua tường lửa (blacklist)
- csf.ignore: Danh sách các địa chỉ IP, CIDR mà lfd nên bỏ qua và không block nếu phát hiện vi phạm
- csf.*ignore: Các file ignore khác nhau liệt kê các files, users, IP mà lfd nên bỏ qua. Xem từng file để biết mục đích cụ thể của chúng.
Nếu sửa đổi bất kỳ file nào được liệt kê ở trên, bạn cần restart csf & lfd (chạy lệnh: csf -r và lfd -r) để chúng có hiệu lực. Nếu sử dụng các command line để add hoặc deny IP, csf sẽ chèn rule trực tiếp vào iptables mà không cần phải restart. Danh sách chi tiết các file cấu hình quan trọng khác được liệt kê ở phần 8 của bài viết này.
Tuy nhiên, đối với người dùng bình thường, việc sử dụng Graphic Interface (GUI) sẽ nhanh hơn rất nhiều. Các cấu hình hướng dẫn bên dưới được thực hiện bằng cách thay đổi config của file /etc/csf/csf.conf
Enable CSF Firewall
Để kích hoạt, chúng ta cần thay đổi gía trị TESTING:
TESTING = 0
Điều này có thể được thực hiện thông qua giao diện GUI hoặc bằng cách chỉnh sửa file cấu hình chính
FASTSTART = 1
Option FASTSTART sử dụng IPTABLES_SAVE, IPTABLES_RESTORE và IP6TABLES_SAVE, IP6TABLES_RESTORE theo hai cách:
- Khi server reboot, toàn bộ cấu hình iptables được lưu lại và sau đó restore để cung cấp khả năng khởi động firewall gần như tức thì.
- Khi restart, IP trong các cấu hình CC_*, SPAMHAUS, DSHIELD, BOGON, TOR được load bằng phương pháp này chỉ mất một phần nhỏ thời gian so với khi FASTSTART bị tắt.
Lưu ý: Tính năng này không được hỗ trợ trên tất cả hệ điều hành.
CSF Open Port (Mở Port)
Open Port là thao tác giúp cho các client ở bên ngoài có thể truy cập vào các port trên server (incomming traffic), hoặc cho phép server mở các kết nối ra ngoài (outgoing traffic).
Ví dụ bên dưới, bạn sẽ danh sách các cổng TCP_IN được khuyến nghị mở cho các kết nối incoming tới web server phổ biến. Các cổng này có thể được mở từ GUI hoặc file csf.conf:
20,21 | FTP* |
22 | SSH |
25,587 | SMTP (gửi mail) |
53 | DNS – nên mở cả port TCP và UDP cho nameserver |
80,443 | Web Service |
110,993 | POP3 (nhận mail) |
143,995 | IMAP (nhận mail) |
3306 | MySQL – nếu bạn không cần truy cập MySQL từ xa thì không nên mở port này. |
2222 | DirectAdmin |
2083 | Truy cập cPanel (sử dụng HTTPS) |
2082 | Truy cập cPanel (sử dụng HTTP) |
2086 | Truy cập WHM (sử dụng HTTP) |
2087 | Truy cập WHM (sử dụng HTTPS) |
10000 | Truy cập Webmin |
* FTP yêu cầu một range port riêng để trao đổi dữ liệu. Khi sử dụng ProFTP, bạn cần thêm port range vào file /etc/proftpd.conf, ví dụ: PassivePorts 35000 35999 và sau đó mở port range đó trong CSF. Range port được khai báo bằng cách sử dụng dấu hai chấm “:”, ví dụ 35000:35999
Tham số TCP_IN/TCP_OUT và UDP_IN/UDP_OUT dùng để khai báo danh sách port, các port được cách nhau bằng dấu phẩy
- Cho phép user truy cập tới (incoming) các TCP port trên server:
TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995,2222,35000:35999"
- Server kết nối ra (outgoing) tới các TCP port bên ngoài:
# Cho phép server kết nối ra ngoài Internet các port chỉ định
TCP_OUT = "20,21,22,25,53,80,110,113,443"
# Cho phép server kết nối ra tất cả các port ở bên ngoài
TCP_OUT = "1:65535" Internet.
- Cấp phép cho user truy cập tới (incoming) các UDP port trên server:
# Chỉ cho phép client kết nối vào các port UDP chỉ định trên server.
UDP_IN = "20,21,53"
# Không cho phép client kết nối bất kỳ port UDP nào trên server
UDP_IN = ""
- Server kết nối ra ngoài (outgoing) tới các UDP port bên ngoài:
# Cho phép Server kết nối ra ngoài Internet các port chỉ định
UDP_OUT = "20,21,53,113,123"
# Cho phép server kết nối ra tất cả các port ở bên ngoài Internet
UDP_OUT = "1:65535"
ICMP_IN VÀ ICMP_OUT
Cho phép client bên ngoài Internet ping đến server:
ICMP_IN = 1
Không cho phép ping đến server:
ICMP_IN = 0
Nếu bạn đang host các dịch vụ public, bạn nên cho phép ping vì chúng sẽ có ích trong quá trình debug lỗi hoặc kiểm tra server của bạn có đang hoạt động hay không.
ICMP_IN_LIMIT Đặt số lượng ICMP (ping) requests được phép từ một địa chỉ IP trong một khoảng thời gian cụ thể. Thường không cần thay đổi giá trị mặc định (1/s). Tuy nhiên, nếu bạn thường gặp tình trạng kết quả Ping bị “Timeout” nhưng server vẫn hoạt động bình thường, có thể là do có nhiều người cùng ping đến server nên vượt quá tần số. Khi đó, hãy nâng giá trị này lên.
ICMP_IN_LIMIT = 5/s
Lưu ý: Đặt ICMP_OUT thành 1 để cho phép outgoing ping đi từ server của bạn. Đặt thành 0 từ chối các requests như vậy. ICMP_OUT_LIMIT Đặt số lượng outgoing ICMP (ping) requests gửi đi trong một khoảng thời gian cụ thể. Thường không cần thay đổi giá trị mặc định (0)
PORTFLOOD CSF
Cài đặt này cung cấp khả năng bảo vệ chống lại các cuộc tấn công flood vào port, chẳng hạn như denial of service (DoS). Bạn có thể chỉ định số lượng kết nối được phép trên port cổng trong khoảng thời gian nào đó. Nên bật tính năng này khi bị DDoS vì nó có thể giúp bạn chặn các IP tấn công. Bạn nên chú ý và tính toán kỹ những tham số như số lượng kết nối, khoảng thời gian đếm số lượng kết nối này, vì chúng sẽ rất dễ chặn nhầm các client hợp lệ. Tuy nhiên, nếu để giới hạn quá cao thì sẽ không thể bắt được các IP tấn công.
PORTFLOOD là danh sách được tách bằng dấu phẩy theo cú pháp:
Port;protocol;hit count;interval seconds
Ví dụ, cài đặt PORTFLOOD = “22; tcp; 5; 300,80; tcp; 20; 5” có nghĩa là:
- Nếu IP nào có hơn 5 kết nối TCP đến cổng 22 trong vòng 300 giây, thì chặn không cho IP đó kết nối đến cổng 22 trong ít nhất 300 giây sau khi packet cuối cùng được nhìn thấy. Tức là phải có khoảng thời gian “silent” là 300 giây dành cho IP này trước khi chúng được phép truy cập trở lại.
- Nếu có hơn 20 kết nối TCP đến cổng 80 trong vòng 5 giây, thì chặn không cho IP đó kết nối đến cổng 80 nữa trong ít nhất 5 giây sau khi gói cuối cùng được nhìn thấy. Tức là phải có khoảng thời gian “silent” là 5 giây trước khi chúng được phép truy cập trở lại vào port 80.
Bạn có thể thêm nhiều cổng hơn bằng cách tách chúng bằng dấu phẩy như được mô tả như sau:
port1;protocol1;connection_count1;time1,port2;protocol2;connection_count2
PORT KNOCKING
Port Knocking cho phép client thiết lập kết nối tới một port trên server nhưng bình thường port này không được Open Public. Server chỉ cho phép clients kết nối tới port chính sau khi client phải hoàn thành một chuỗi knock port thành công.
Tính năng này yêu cầu bạn liệt kê một lựa chọn ngẫu nhiên các cổng không sử dụng (ít nhất 3) với thời gian chờ. Các cổng bạn chọn không được sử dụng và không xuất hiện trong TCP_IN (UDP_IN cho UDP packets). Cổng được mở cũng không được xuất hiện trong TCP_IN (UDP_IN đối với UDP packets).
PORTKNOCKING là danh sách được tách bằng dấu phẩy gồm:
openport; protocol; timeout; kport1; kport2; kport3 [...; kportN]
Vì vậy, cài đặt PORTKNOCKING = “22; TCP; 20; 100; 200; 300; 400” có nghĩa là:
Mở Cổng 22 TCP trong 20 giây tới địa chỉ IP đang kết nối với các kết nối mới sau khi các cổng 100, 200, 300 và 400 đã được truy cập (tức là được knocked bằng SYN packet) mỗi lần knock cách nhau chưa đến 20 giây.
Truy cập vào cổng 22 vẫn hoạt động sau 20 giây cho đến khi kết nối bị ngắt, tuy nhiên các kết nối mới sẽ không được phép.
SYSLOG và RESTRICT_SYSLOG
Khi được kích hoạt, option này sẽ log các lfd (Login Failure Daemon) messages vào nhật ký syslog cũng như /var/log/lfd.log. Các user trên server đều có thể trigger các application để sinh ra các log trong syslog và ảnh hưởng đến các hoạt động của LFĐ như:
LF_SSHD LF_FTPD LF_IMAPD LF_POP3D LF_BIND LF_SUHOSIN LF_SSH_EMAIL_ALERT LF_SU_EMAIL_ALERT LF_CONSOLE_EMAIL_ALERT LF_DISTATTACK LF_DISTFTP LT_POP3D LT_IMAPD PS_INTERVAL UID_INTERVAL WEBMIN_LOG LF_WEBMIN_EMAIL_ALERT PORTKNOCKING_ALERT ST_ENABLE SYSLOG_CHECK LOGSCANNER CUSTOM * _LOG
Bạn nên đặt tùy chọn RESTRICT_SYSLOG thành 3 để hạn chế ai có thể truy cập vào unix syslog / rsyslog socket. Nhóm mặc định là mysyslog. Một nhóm tùy chỉnh có thể được xác định trong RESTRICT_SYSLOG_GROUP
Để giảm thiểu các log giả mạo, bạn nên làm như sau:
1. Lướt qua các options ở trên để đảm bảo rằng chỉ những options bạn cần mới được bật.
2. Đảm bảo rằng DENY_IP_LIMIT và DENY_TEMP_IP_LIMIT được đặt ở mức thấp hợp lý (ví dụ: 200). Điều này sẽ hạn chế nỗ lực chặn số lượng lớn địa chỉ IP.
3. Đảm bảo rằng địa chỉ IP của admin/ hỗ trợ được liệt kê trong:
/etc/csf/csf.allow
/etc/csf/csf.ignore
Điều này sẽ ngăn chặn việc các log giả mạo khiến địa chỉ IP của bạn bị LFD chặn và bạn không thể truy cập để quản trị server.
4. Để xác nhận những phiên đăng nhập thành công vào SSH, sử dụng lệnh “last”. Ví dụ: last -da
5. Thường xuyên kiểm tra server và dữ liệu người dùng để biết các hoạt động khai thác lỗ hổng, các ứng dụng cũ dễ bị tấn công và các ứng dụng hệ OS lỗi thời.
6. Hãy xem xét cẩn thận bất kỳ ứng dụng nào mà bạn sử dụng tập trung vào các actions và syslog/rsyslog logs và tác động của các log lines giả mạo.
7. Xem xét tác động của vấn đề tổng thể đối với các ứng dụng và scripts khác ngoài CSF/LFD sử dụng log files bị ảnh hưởng.
Bước cuối cùng và lưu ý:
Bạn có thể xem xét việc hạn chế quyền truy cập vào tất cả các syslog/rsyslog unix sockets. Điều này có thể được sử dụng thông qua việc phân quyền file và quyền sở hữu các socket (ví dụ: /dev/log) nhưng có một số lưu ý: quyền và quyền sở hữu file phải được áp dụng lại khi khởi động lại syslog/rsyslog; hạn chế logging sẽ ảnh hưởng đến một số ứng dụng sử dụng syslog/rsyslog, ví dụ như crond.
Không bật syslog/rsyslog reception qua cổng UDP/TCP.
CONNECTION LIMIT – Giới hạn số lượng kết nối
Tính năng này có thể được sử dụng để giới hạn số lượng kết nối đang hoạt động đồng thời từ một địa chỉ IP đến mỗi cổng. Khi được cấu hình đúng cách, điều này có thể ngăn chặn các hành vi lạm dụng trên server, chẳng hạn như các cuộc tấn công DoS.
CONNLIMIT là danh sách được tách bằng dấu phẩy gồm:
port;limit
Ví dụ, cấu hình CONNLIMIT = “22;5,80;20” có nghĩa là:
- Chỉ cho phép tối đa 5 kết nối mới đồng thời tới cổng 22 trên mỗi địa chỉ IP
- Chỉ cho phép tối đa 20 kết nối mới đồng thời tới cổng 80 trên mỗi địa chỉ IP
CSF NAT – Thay đổi port/IP của gói tin
Có thể cấu hình CSF redirect các kết nối từ một IP/port đến một IP/port khác. Lưu ý: Sau khi chuyển hướng, địa chỉ source IP của gói tin sẽ là địa chỉ IP của server.
Yêu cầu:
nat tables
ipt_DNAT iptables module
ipt_SNAT iptables module
ipt_REDIRECT iptables module
Sau đây là các format redirect được phép cấu hình trong CSF:
DNAT – Destination NAT: Redirect từ một địa chỉ IP nhận sang địa chỉ IP nhận khác:
IPx|*|IPy|*|tcp/udp - Chuyển tất cả gói tin tcp/udp từ IPx đến IPy
IPx|portA|IPy|portB|tcp/udp - Chuyển tất cả gói tin tcp/udp từ IPx ở portA đến IPy portB
Ví dụ DNAT:
# Chuyển gói tin TCP gửi đến IP 192.168.254.62 đến địa chỉ IP 10.0.0.1
192.168.254.62|*|10.0.0.1|*|tcp
# Chuyển gói tin TCP gửi đến IP 192.168.254.62 - port 666 đến địa chỉ IP 10.0.0.1 - port 25
192.168.254.62|666|10.0.0.1|25|tcp
Trong trường hợp một port được chỉ định, nó không thể là một range, chỉ cấu hình được một port duy nhất.
Tất cả các gói tin được redirect đến một địa chỉ IP khác sẽ mang source IP của gói tin là IP của server này chứ không phải là IP gốc của client truy cập.
Chống SYNFLOOD với CSF
CSF cung cấp khả năng bảo vệ chống lại các cuộc tấn công SYN Flood. Tuy nhiên, điều này làm chậm quá trình khởi tạo mọi kết nối, vì vậy bạn chỉ nên kích hoạt tính năng này nếu bạn biết rằng server của mình đang bị tấn công. Tính năng chống SYN Flood sử dụng module limit của iptables, do đó, tần số giới hạn SYNFLOOD_RATE được cấu hình sẽ giới hạn tần số SYN của toàn server, chứ không phải giới hạn trên mỗi địa chỉ IP truy cập của client.
SYNFLOOD = "0"
SYNFLOOD_RATE = "100/s"
SYNFLOOD_BURST = "150"
Messenger Service
Bật tính năng này cho phép gửi thông báo nhiều thông tin hơn đến client khi một IP bị block. Tính năng này có cả ưu và nhược điểm. Một mặt, việc kích hoạt nó cung cấp nhiều thông tin hơn cho client và do đó có thể ít gây khó chịu hơn, chẳng hạn như trong trường hợp đăng nhập không thành công. Mặt khác, nó cung cấp thêm thông tin, điều này có thể khiến kẻ tấn công dễ dàng tấn công server của bạn hơn.
DENY_IP_LIMIT và DENY_TEMP_IP_LIMIT
DENY_IP_LIMIT đặt số lượng địa chỉ IP tối đa sẽ bị chặn. Bạn nên hạn chế số lượng địa chỉ IP bị từ chối vì có quá nhiều block có thể làm chậm hiệu suất server.
DENY_TEMP_IP_LIMIT có chức năng tương tự, nhưng đối với các block địa chỉ IP tạm thời.
CSF Allow/Deny IP theo Port và Protocol
Trong /etc/csf/csf.allow và /etc/csf/csf.deny, bạn có thể thêm các filter port và IP phức tạp hơn bằng cách sử dụng format sau (bạn phải chỉ định Port và địa chỉ IP):
tcp/udp|in/out|s/d=port|s/d=ip|u=uid
Cụ thể:
tcp/udp | Xét giao thức TCP hoặc UDP |
in/out | Áp dụng vào incoming (traffic đi vào) hoặc outgoing (traffic đi ra) |
s/d=port | Áp dụng cho source port hoặc destination port (hoặc ICMP type). Có thể khai báo range port bằng cách sử dụng dấu “_”, ví dụ: 2000_3000 |
s/d=ip | source IP hoặc Destination IP |
u/g=UID | UID hoặc GID của source packet, áp dụng vào outgoing connection. Lúc này, giá trị của s/d=IP sẽ bị bỏ qua |
Filter ICMP sử dụng “port” cho s/d=port để đặt type ICMP. Việc bạn sử dụng s hay d không có liên quan vì bạn chỉ cần sử dụng tùy chọn iptables –icmp-type. Sử dụng “iptables -p icmp -h” để có danh sách các loại ICMP hợp lệ. Chỉ một loại cho mỗi filter được hỗ trợ
Ví dụ:
- TCP connections inbound đến port 3306 từ IP 11.22.33.44
tcp|in|d=3306|s=11.22.33.44
- TCP connections outbound đến port 22 đến IP 11.22.33.44
tcp|out|d=22|d=11.22.33.44
Lưu ý: Dấu “|” nếu bị bỏ qua, giao thức mặc định được đặt thành “tcp”, connetion direction mặc định được đặt thành “in”:
- TCP connections inbound đến port 22 từ IP 44.33.22.11
d=22|s=44.33.22.11
- TCP connections outbound đến port 80 từ UID 99
tcp|out|d=80||u=99
- ICMP connections inbound for type ping from 44.33.22.11
icmp|in|d=ping|s=44.33.22.11
- TCP connections inbound đến port 22 từ Dynamic DNS domain dyn.vietnix.vn (phải được khai báo trong csf.dyndns)
tcp|in|d=22|s=dyn.vietnix.vn
PORT SCAN TRACKING – Chống Scan Port
Port scan là một phương pháp để xác định cổng nào trên mạng đang mở. Mặc dù tính năng Port scan không phải là hành vi tấn công, nhưng đây thường là bước đầu tiên mà hacker thực hiện khi cố gắng xâm nhập vào mạng.
CSF có khả năng chặn các Địa chỉ IP tham gia vào quá trình port scan bằng cách sử dụng tính năng Port Scan Tracking. Tính năng này hoạt động bằng cách quét các gói tin bị IPtables blocks trong syslog. Nếu địa chỉ IP tạo port block được log nhiều hơn PS_LIMIT trong vòng PS_INTERVAL giây, địa chỉ IP sẽ bị chặn.
Ví dụ: Khi PS_INTERVAL được đặt ở giá trị mặc định là 300 và PS_LIMIT được đặt ở 10, bất kỳ địa chỉ IP nào được ghi lại hơn 10 lần trong khoảng thời gian 300 giây sẽ bị chặn.
Cài đặt PS_DIVERSITY chỉ định số lượng cổng khác nhau đủ điều kiện làm Port Scan. Giá trị mặc định là 1. Việc tăng giá trị này sẽ dẫn đến nguy cơ các nỗ lực liên tục tấn công một cổng đã đóng cụ thể sẽ không bị phát hiện và bị chặn.
PS_PORTS directive xác định các cổng sẽ được theo dõi bởi port scanning. Trong trường hợp servers xử lý nhiều người dùng và domains hoặc servers sử dụng nhiều FTP, chúng tôi khuyên bạn nên tắt Port Scan Tracking cho FTP. FTP tạo ra rất nhiều kết nối và có thể là nguyên nhân của các IP blocks sai.
Bạn nên làm như sau nếu bạn muốn bật Port Scan Tracking trong khi tạo điều kiện cho nhiều người dùng FTP:
PS_PORTS = "0:19,22:988,991:65535,ICMP"
Các cổng bị loại trừ ở đây là:
- Port 20 = FTP Data
- Port 21 = FTP Control
- Port 989 = FTP Data (SSL)
- Port 990 = FTP Control (SSL)
Trong các trường hợp khác, cài đặt mặc định sẽ hoạt động mà không gặp sự cố.
PS_PERMANENT xác định xem một IP sẽ bị block tạm thời hay vĩnh viễn. Trong trường hợp IP block là tạm thời, thời gian block IP được xác định trong PS_BLOCK_TIME. Sau đó, bật directive PS_EMAIL_ALERT sẽ cho phép gửi cảnh báo qua e-mail khi địa chỉ IP bị chặn bởi Port Scanning. Địa chỉ E-mail có thể được xác định trong LF_ALERT_TO.
Việc cấu hình CSF đòi hỏi sự tỉ mỉ và kiến thức kỹ thuật để thực hiện một cách chính xác, vì cấu hình sai cách có thể dẫn đến lỗ hổng bảo mật và ảnh hưởng đến hệ thống, đặc biệt là trên các máy chủ chia sẻ hoặc môi trường phức tạp. Để đơn giản hóa quá trình, Vietnix cung cấp dịch vụ VPS giá rẻ với giao diện quản lý dễ sử dụng, giúp bạn cấu hình CSF và các ứng dụng khác một cách dễ dàng. VPS Vietnix không chỉ mạnh mẽ mà còn dễ quản lý, giúp bạn tập trung vào công việc mà không phải lo lắng về kỹ thuật.
4. LOGIN FAILURE DAEMON (LFD)
Để bổ sung cho ConfigServer Firewall, một daemon process chạy mọi lúc và định kỳ (mỗi X giây) quét các log file lấy ra entries mới nhất để phát hiện ra các nỗ lực đăng nhập vào server của bạn liên tục bị lỗi trong một khoảng thời gian ngắn. Những nỗ lực như vậy thường được gọi là “Brute-force attacks” và daemon process phản ứng rất nhanh với các patterns như vậy và chặn các IP vi phạm.
Có một loạt các kiểm tra mở rộng mà lfd có thể thực hiện để giúp cảnh báo cho server admin về những thay đổi đối với server, các sự cố tiềm ẩn và các thỏa hiệp có thể xảy ra.
lfd có khả năng giám sát các giao thức bị lạm dụng phổ biến nhất:
- SSHD
- POP3
- SMTP
- EXIM
- IMAP
- FTP
- HTTP password protection
- ModSecurity
- DirectAdmin
- Webmin
- BIND
Không giống như các ứng dụng khác, lfd là một daemon process theo dõi logs liên tục và do đó có thể phản ứng trong vòng vài giây sau khi phát hiện những nỗ lực đó. Nó cũng giám sát trên từng giao thức, vì vậy nếu các nỗ lực được thực hiện trên các giao thức khác nhau trong một khoảng thời gian ngắn, tất cả các nỗ lực đó sẽ được tính.
Cài đặt Block IP cho LFD
Nếu bạn đặt LF_TRIGGER thành “0”, giá trị của mỗi trigger là số lần đăng nhập thất bại đối với ứng dụng đó sẽ trigger lfd để chặn địa chỉ IP (xem bên dưới: Application Trigger).
Nếu bạn đặt LF_TRIGGER thành giá trị lớn hơn “0” thì các application trigger sau chỉ on hoặc off (“0” hoặc “1”) và giá trị của LF_TRIGGER là tổng số lỗi tích lũy sẽ trigger lfd để chặn Địa chỉ IP.
Ví dụ: Khi đặt LF_TRIGGER thành “20”, địa chỉ IP vi phạm sẽ bị chặn khi bất kỳ application trigger nào được bật đạt đến “20” lần đăng nhập không thành công sẽ bị chặn.
Đặt bất kỳ application trigger nào thành “0” sẽ vô hiệu hóa nó (xem bên dưới: application triggers).
Nếu LF_TRIGGER lớn hơn “0” thì LF_TRIGGER_PERM có thể được đặt thành “1” để chặn vĩnh viễn địa chỉ IP hoặc LF_TRIGGER_PERM có thể được đặt thành giá trị lớn hơn “1” và địa chỉ IP sẽ bị chặn tạm thời đối với giá trị đó sau vài giây .
Ví dụ:
- Khi đặt LF_TRIGGER_PERM = “1” => IP bị chặn vĩnh viễn
- Khi đặt LF_TRIGGER_PERM = “3600” => IP bị chặn tạm thời trong 3600 giây (1 giờ)
- Nếu LF_TRIGGER là “0”, thì giá trị LF_ [application] _PERM của ứng dụng hoạt động theo cách tương tự như trên và LF_TRIGGER_PERM không phục vụ chức năng nào.
Để chỉ chặn quyền truy cập vào ứng dụng bị lỗi thay vì chặn hoàn toàn địa chỉ ip, bạn có thể đặt giá trị sau thành “1”, nhưng LF_TRIGGER phải được đặt thành “0” với các application trigger [*]cụ thể cũng được đặt thích hợp.
Application Trigger – Kích hoạt nguyên tắc chặn IP cho từng ứng dụng
LF_SSHD = 5
LF_SSHD_PERM = 1
- LF_SSHD: Ngưỡng đăng nhập sai tối đa, nếu vượt quá số lượng này, IP sẽ bị block.
- LF_SSHD_PERM: Thời gian block. Giá trị “1” có nghĩa là block vĩnh viễn, giá trị cao hơn là cho IP block tạm thời trong vài giây.
Đối với SMTP, FTP và theo dõi mật khẩu đăng nhập (login Password tracking), v.v., các nguyên tắc tương tự cũng được áp dụng.
Cảnh báo qua email (email alert)
Bạn có thể chỉ định một địa chỉ email để report lỗi từ Login Failure Daemon.
# Địa chỉ email nhận
LF_ALERT_TO = ""
# Địa chỉ email gửi
LF_ALERT_FROM = ""
# Địa chỉ email server gửi, mặc định là 127.0.0.1
LF_ALERT_SMTP = ""
Login Tracking – Theo dõi các đăng nhập thất bại
Login tracking là một phần mở rộng của lfd, nó theo dõi các lần đăng nhập POP3 và IMAP và giới hạn chúng ở mức X kết nối mỗi giờ cho mỗi tài khoản trên mỗi địa chỉ IP. Nó sử dụng iptables để chỉ chặn kẻ xâm phạm đến cổng giao thức thích hợp và xóa chúng mỗi giờ và bắt đầu đếm các lần đăng nhập mới. Tất cả các block này là tạm thời và có thể được xóa thủ công bằng cách khởi động lại csf.
Có hai cài đặt, một trong POP3 và một cho IMAP logins. Nói chung không nên theo dõi thông tin IMAP logins vì nhiều clients đăng nhập mỗi lần để thực hiện một transaction của giao thức (không cần họ phải đăng nhập liên tục, nhưng bạn không thể tránh bad client programming!). Vì vậy, nếu bạn có nhu cầu có một số giới hạn đối với IMAP logins, có lẽ tốt nhất là đặt giới hạn đăng nhập khá cao.
Process Tracking – Theo dõi các tiến trình
Option này cho phép theo dõi các process và phát hiện ra các process nghi vấn, có khả năng gây hại đến server. Nếu một process đáng ngờ được phát hiện, một email cảnh báo sẽ được gửi đi kèm với các thông tin liên quan. Bạn có thể loại bỏ các process không muốn monitor bằng cách thêm chúng vào file csf.pignore
Ví dụ: để tắt Process tracking cho Spamassassin và ClamAV, hãy nhập thông tin sau vào file csf.pignore. File này cũng có thể được chỉnh sửa từ CSF gui:
exe:/usr/bin/freshclam
exe:/usr/bin/spamc
exe:/usr/bin/spamd
cmd:spamd con
Directory Watchinng – Theo dõi thư mục
Directory watching cho phép lfd kiểm tra /tmp và /dev/shm và các thư mục thích hợp khác để tìm các file đáng ngờ, các script exploit
5. IP Block List – Cập nhật danh sách IP cần chặn
Tính năng này cho phép csf/lfd tải xuống định kỳ danh sách địa chỉ IP và CIDR từ published block hoặc black list. Danh sách blocklists được khai báo trong file:
/etc/csf/csf.blocklists
IP block lists cũng có thể được định cấu hình bằng cách đi tới nút lfd blocklists được tìm thấy ở gần cuối GUI đi kèm.
Bật blocklist bằng cách bỏ ghi chú dòng bắt đầu bằng rule name để sử dụng nó, sau đó khởi động lại csf rồi đến lfd.
Mỗi block list phải được liệt kê trên mỗi dòng dưới dạng:
NAME | INTERVAL | MAX | URL
- NAME: List name với tất cả các ký tự chữ cái viết hoa không có khoảng trắng và tối đa 9 ký tự – tên này sẽ được sử dụng làm iptables chain name
- INTERVAL: Khoảng thời gian làm mới để tải xuống danh sách, tối thiểu phải là 3600 giây (một giờ), nhưng 86400 (một ngày) là thừa.
- MAX: Đây là số lượng địa chỉ IP tối đa để sử dụng từ danh sách, giá trị bằng 0 có nghĩa là tất cả các IP đều được sử dụng.
- URL: URL để tải xuống danh sách
Pre-configured blocklists có thể được kích hoạt đơn giản bằng cách uncomment chúng (bỏ dấu # ở đầu), bao gồm:
- Spamhaus
- DShield
- DKTC
- BOGON – Chặn địa chỉ bogon thường là một quyết định đúng đắn. Để bật, hãy đặt số giây giữa các lần refresh. Bạn nên bật tùy chọn này và đặt refresh ở mức 86400 (1 ngày). Nếu bạn làm như vậy, hãy đảm bảo thêm private network adapter vào skip list.
- Project Honeypot
- BruteForceBlocker
- Các mối đe dọa mới nổi – Danh sách các mạng kinh doanh của Nga
- OpenBL.org 30 day List
- Autoshun Shun List
- MaxMind GeoIP proxy ẩn danh
Một số danh sách trong số này rất dài (hàng nghìn địa chỉ IP) và có thể gây ra các vấn đề nghiêm trọng về mạng và/ hoặc hiệu suất, vì vậy cần cân nhắc việc đặt giá trị cho trường MAX.
Mỗi URL được quét để tìm địa chỉ IPv4 / CIDR trên mỗi dòng và nếu tìm thấy sẽ bị chặn.
6. CSF Allow/Deny theo Country
Với các options bên dưới, bạn có thể chặn hoặc cho phép các quốc gia truy cập vào server của mình. Để làm như vậy, hãy nhập country code vào danh sách được tách bằng dấu phẩy.
Lưu ý: Các danh sách này không bao giờ chính xác 100%. Một số danh sách CIDR rất lớn và mỗi danh sách yêu cầu một rule trong iptables chain. Điều này có thể dẫn đến chi phí hiệu suất đáng kể và có thể khiến server không thể truy cập được trong một số trường hợp. Do hạn chế về tài nguyên trên server VPS, tính năng này không nên được sử dụng trên các hệ thống như vậy trừ khi bạn chọn CC zone rất nhỏ.
cc_allow và cc_deny là danh sách country code được tách bằng dấu phẩy, ví dụ: “US, GB, DE”:
CC_DENY = "US,CN"
CC_ALLOW = "VN"
Khi sử dụng CC_ALLOW, IP sẽ được allow mà không quan tâm đến Port. Chúng ta có thể sử dụng CC_ALLOW_PORT để cho phép truy cập từ các quốc gia sau nhưng vẫn lọc dựa trên port. Tất cả các kết nối khác bị loại bỏ:
CC_ALLOW_PORTS = "US,CN"
CC_ALLOW_PORTS_TCP = "80,443"
CC_ALLOW_PORTS_UDP = "53"
Config trên cho phép truy cập từ các quốc gia “US,CN” vào các cổng cụ thể được liệt kê trong CC_ALLOW_PORTS_TCP và CC_ALLOW_PORTS_UDP
Lưu ý: Các rule cho tính năng này được chèn sau allow và deny rules để vẫn cho phép chặn địa chỉ IP. Tất cả các cổng được liệt kê phải được xóa khỏi TCP_IN/UDP_IN để chặn truy cập từ nơi khác. Option này sử dụng format tương tự như TCP_IN/UDP_IN
Danh sách Country Code này sẽ ngăn lfd chặn các lần truy cập thất bại từ địa chỉ IP của các quốc gia tương ứng:
CC_IGNORE = "VN"
Từ chối truy cập từ các quốc gia sau vào các cổng cụ thể được liệt kê trong CC_DENY_PORTS_TCP và CC_DENY_PORTS_UDP:
CC_DENY_PORTS = "US,CN"
CC_DENY_PORTS_TCP = "80,443"
CC_DENY_PORTS_UDP = "53"
Lưu ý: Các rule cho tính năng này được chèn sau allow và deny rules để vẫn cho phép chặn địa chỉ IP. Tất cả các cổng được liệt kê phải được xóa khỏi TCP_IN/UDP_IN để chặn truy cập từ nơi khác. Option này sử dụng cùng một format với TCP_IN/UDP_IN
7. Sử dụng command line
Dưới đây là một số command phổ biến nhất mà bạn sẽ sử dụng:
- csf block IP: chặn không cho IP truy cập đến server (blacklist)
csf -d 1.1.1.1
- csf allow IP: cho phép IP truy cập vào server (whitelist)
csf -a 1.1.1.1
- csf unblock IP: remove IP đang bị chặn
csf -dr 1.1.1.1
- Check csf status
csf -l
- Restart csf
csf -r
- Stop csf
csf -s
- Disable csf
csf -f
- Update CSF
csf -u
- Stop csff & lfd service
csf -x
- Start csf & lfd service:
csf -e
- Khởi động lại CSF service:
# CentOS 5 và 6
server csf restart
# CentOS 7
systemctl restart csf.service
Để có cái nhìn tổng quan đầy đủ về tất cả command line option, hãy nhập csf hoặc csf -h trên command line và bạn sẽ nhận được danh sách với tất cả các options có sẵn:
csf --help
csf: v5.17 (DirectAdmin)
ConfigServer Security & Firewall
(c)2006-2013, Way to the Web Limited (http://www.configserver.com)
Usage: /usr/sbin/csf [option] [value]
Các Options chi tiết:
Tham số | Ý nghĩa |
-h , --help | Hiện bảng help. |
-l , --status | Show danh sách các rule iptables đang được cấu hình. |
-l6 , --status6 | Show danh sách các rule iptables6 đang được cấu hình. |
-s , --start | Start firewall rules. |
-f , --stop | Xóa các rule iptables. |
-r , --restart | Restart firewall rules. |
-q , --startq | Quick restart (csf được restart bởi lfd). |
-sf , --startf | Force CLI restart, không quan tâm đến LFDSTART setting. |
-ra , --restartall | Restart CSF sau đó restart LFD. |
--lfd [stop|start|restart|status] | Ra lệnh stop|start|restart|status cho LFD. |
-a , --add ip [comment] | Allow IP, đưa IP vào whitelist và add IP vào /etc/csf/csf.allow. |
-ar , --addrm ip | Remove IP ra khỏi /etc/csf/csf.allow và xóa rule allow. |
-d , --deny ip [comment] | Deny IP, đưa IP vào blocklist và add IP vào /etc/csf/csf.deny. |
-dr , --denyrm ip | Unlock IP và remove IP ra khỏi /etc/csf/csf.deny. |
-df , --denyf | Remove và unblock toàn bộ IP trong /etc/csf/csf.deny. |
-g , --grep ip | Kiểm tra xem IP có khớp rule nào trong iptables hay không. |
-i , --iplookup ip | Kiểm tra thông tin địa lý của IP bằng cách sử dụng CC_LOOKUPS được cấu hình trong /etc/csf/csf.conf. |
-t , --temp | Hiển thị danh sách IP đang bị chặn tạm (temporary block), TTL và lý do bị chặn. |
-tr , --temprm ip | Remove IP ra khỏi danh sách temporary allow/deny. |
-trd , --temprmd ip | Remove IP ra khỏi đanh sách temporary deny. |
-tra , --temprma ip | Remove IP ra khỏi danh sách temporary allow. |
-td , --tempdeny ip ttl [-p port] [-d direction] [comment] | Add IP vào temporary deny list, kèm theo TTL, port, direction và comment. |
-ta , --tempallow ip ttl [-p port] [-d direction] [comment] | Add IP vào temporary allow list, kèm theo TTL, port, direction và comment. |
-tf , --tempf | Xóa tất cả IP trong danh sách temporary. |
-cp , --cping | Ping tất cả member trong lfd Cluster. |
-cg , --cgrep ip | Kiểm tra IP xem có khớp rule nào trên cluster hay không. |
-cd , --cdeny ip [comment] | Block IP trên toàn bộ cluster và add IP vào file /etc/csf/csf.deny trên mỗi server. |
-ctd , --ctempdeny ip ttl [-p port] [-d direction] [comment] | Add IP vào temporary block list trên Cluster. |
-cr , --crm ip | Unblock IP trên cluster và remove IP trong file /etc/csf/csf.deny trên mỗi server. |
-ca , --callow ip [comment] | Allow IP và add IP vào /etc/csf/csf.allow trên mỗi server trong Cluster. |
-cta , --ctempallow ip ttl [-p port] [-d direction] [comment] | Add IP vào temporary allow list trên Cluster. |
-car , --carm ip | Remove IP khỏi allow list trên Cluster và xóa IP khỏi /etc/csf/csf.allow trên mỗi server. |
-ci , --cignore ip [comment] | Ignore IP trên cluster và add IP vào /etc/csf/csf.ignore trên mỗi server. |
-cc , --cconfig [name] [value] | Thay đổi cấu hình của [name] thành [value] trên Cluster. |
-cf , --cfile [file] | Send [file] trên Cluster vào /etc/csf/. |
-crs , --crestart | Cluster restart csf và lfd. |
--trace [add|remove] ip | Bật chế độ trace log truy cập chi tiết của IP. Log sẽ được ghi vào /var/log/messages. |
-m , --mail [email] | Display Server Check ở định dạng HTML hoặc email to [email] nếu tồn tại. |
-lr , --logrun | Khởi tạo Log Scanner report thông qua lfd. |
-p , --ports | Liệt kê danh sách port và ứng dụng tương ứng trên server cho phép kết nối từ bên ngoài vào. |
--graphs [graph type] [directory] | Tạo graph thống kê dưới định dạng HTML, hình ảnh và output ra [directory]. |
--profile [command] [profile|backup] [profile|backup] | Quản lý profile cấu hình của csf.conf. |
--cloudflare [command] | Các câu lệnh liên quan đến tương tác CloudFlare: – list [all|block|challenge|whitelist] [user1,user2,domain1…] – add [block|challenge|whitelist] target [user1,user2,domain1…] – del target [user1,user2,domain1…] – tempadd [allow|deny] ip [user1,user2,domain1…] |
-c , --check | Check update nhưng không upgrade. |
-u , --update | Check update và upgrade csf. |
-uf | Force update. |
-x , --disable | Disable csf & lfd. |
-e , --enable | Enable csf & lfd. |
-v , --version | Show csf version. |
8. FILE LOCATIONS
Cấu trúc hệ thống file
File | Mô tả |
/etc/csf/ | configuration files |
/var/lib/csf/ | data files tạm thời |
/usr/local/csf/bin/ | scripts |
/usr/local/csf/lib/ | perl modules and static data |
/usr/local/csf/tpl/ | email alert templates |
Các file config của CSF và tác dụng của chúng
File | Description |
/etc/csf/csf.conf | File cấu hình chính. |
/etc/csf/csf.allow | Danh sách địa chỉ IP và CIDR luôn luôn được phép thông qua Firewall. |
/etc/csf/csf.deny | Danh sách địa chỉ IP và CIDR không bao giờ được phép thông qua Firewal. |
/etc/csf/csf.ignore | Danh sách địa chỉ IP và CIDR login failure daemon nên bỏ qua và không chặn nếu phát hiện. |
/etc/csf/csf.*ignore | Các ignore files khác liệt kê các files, users, IP mà login failure daemon nên bỏ qua. |
/etc/csf/csfpost.sh | File chứa các lệnh sẽ được thực thi sau khi CSF gen xong các rule iptables. |
/etc/csf/csfpre.sh | File chứa các lệnh sẽ được thực thi trước khi CSF gen ra các rule của iptables. |
/etc/csf/csf.blocklists | Khai báo định nghĩa cho những IP BLOCK List, danh sách này sẽ được download định kỳ từ URL được khai báo và apply vào Firewall. |
/etc/csf/csf.cloudflare | nếu bạn sử dụng server nằm sau CloudFlare, đây là file giúp khai báo các thông tin API để server có thể tương tác và block/allow IP trên CloudFlare. |
/etc/csf/csf.dirwatch | danh sách các thư mục bạn cần theo dõi và cảnh báo khi có sự thay đổi. |
/etc/csf/csf.dyndns | khai báo danh sách các Dynamic DNS domain. Định kỳ, CSF sẽ phân giải IP của những domain này và cập nhật IP mới vào whitelist. |
/etc/csf/csf.fignore | Danh sách các file sẽ được bỏ qua khi chạy Dirwatch (theo dõi thư mục). |
/etc/csf/csf.logfile | Danh sách các file log được xử lý bởi tính năng LOGSCANNER. |
/etc/csf/csf.logignore | danh sách những Regular Expression Pattern cho tính năng LOGSCANNER, nếu một dòng log khớp pattern được khai báo, chúng sẽ bị bỏ qua. Nếu không khớp pattern nào, /dòng log đó sẽ được xử lý. |
/etc/csf/csf.mignore | Danh sách username và IP mà tính năng RT_LOCALRELAY_ALERT sẽ bỏ qua. |
/etc/csf/csf.pignore | Danh sách những file thực thi, command hoặc user mà LFD sẽ bỏ qua. |
/etc/csf/csf.redirect | Khai báo redirect/NAT traffic. |
/etc/csf/csf.signore | danh sách những file mà LF_SCRIPT_ALERT sẽ bỏ qua. |
/etc/csf/csf.sips | chứa danh sách IP của server mà hiện tại bạn không muốn cho phép bất kỳ traffic in/out nào. |
/etc/csf/csf.smtpauth | Danh sách IP cho phép EXIM phản hồi SMTP AUTH để chứng thực. |
/etc/csf/csf.suignore | Danh sách username sẽ được bỏ qua khi kiểm tra LF_EXPLOIT. |
/etc/csf/csf.syslogs | Khai báo danh sách file log cho tính năng UI System Log Watch và Search trên giao diện. |
/etc/csf/csf.uidignore | Danh sách UID sẽ được bỏ qua khi chạy tính năng User ID Tracking. |
/etc/csf/regex.custom.pm | File nâng cao, khai báo các Regular Expression custom khi parse log và cách xử lý chúng. |
9. Các điểm cần lưu ý
Hãy đảm bảo tuân theo các khuyến nghị được nêu trên trang “Check Server Security” từ trong CSF GUI. Cũng nên kiểm tra kỹ để đảm bảo rằng tất cả các modules IPtables được yêu cầu đã được tải đúng cách bằng cách truy cập trang “Test Iptables” ở cuối CSF GUI. Nếu chúng không được tải đúng cách và bạn đang ở trên Virtual Private Server(VPS), hãy liên hệ với host của bạn để khắc phục sự cố này.
CSF giả sử file php.ini của bạn nằm trong /usr/local/lib/php.ini
Nếu tệp php.ini của bạn được cài đặt ở một vị trí khác, bạn có thể tạo một symlink đến đúng vị trí. Điều này có thể hữu ích nếu bạn muốn sử dụng các đề xuất bảo mật CSF trên trang “Check Server Security “.
Để tạo symlink, hãy nhập như sau:
ln -s /path/to/your/actual/php.ini /usr/local/lib/php.ini
Đừng bao giờ chạy iptables -F trong khi sử dụng CSF, trừ khi bạn muốn block chính mình.
10. Uninstall CSF
Nếu bạn không còn nhu cầu sử dụng CSF, có thể uninstall chúng bằng cách:
Trên cPanel servers:
cd /etc/csf
sh uninstall.sh
Trên DirectAdmin servers:
cd /etc/csf
sh uninstall.directadmin.sh
Trên server Linux:
cd /etc/csf
sh uninstall.generic.sh
Nếu bạn yêu cầu bất kỳ hỗ trợ nào thêm hoặc trong trường hợp bạn có bất kỳ câu hỏi nào về cấu hình CSF, vui lòng mở một ticket với đội ngũ kỹ thuật của Vietnix bằng cách đăng nhập vào tài khoản của bạn hoặc bạn cũng có thể truy cập trang chủ CSF nơi bạn có thể tìm thêm tài liệu và câu hỏi thường gặp.
Vietnix – Nhà cung cấp VPS đáng tin cậy và tối ưu hiệu suất cho doanh nghiệp
Từ năm 2012 đến nay, Vietnix tự hào là nhà cung cấp dịch vụ VPS đáng tin cậy trong lĩnh vực công nghệ. Với hệ thống hạ tầng tiên tiến và đội ngũ kỹ thuật giàu kinh nghiệm, Vietnix cung cấp dịch vụ VPS tốc độ cao, giúp tăng cường hiệu suất và xử lý dữ liệu vượt trội cho các ứng dụng và website yêu cầu tài nguyên lớn. Bạn có thể dễ dàng mở rộng tài nguyên linh hoạt theo nhu cầu mà không lo lắng về gián đoạn dịch vụ. Vietnix sẽ mang đến sự ổn định và bảo mật tối đa cho hệ thống của bạn với dịch vụ hỗ trợ kỹ thuật 24/7 luôn sẵn sàng giải quyết mọi vấn đề.
Thông tin liên hệ:
- Hotline: 18001093
- Email: sales@vietnix.com.vn
- Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh.
- Website: https://vietnix.vn/
Việc cấu hình và quản lý CSF Firewall là bước quan trọng để bảo vệ máy chủ khỏi các mối đe dọa. Qua các bước cài đặt, cấu hình và theo dõi, bạn có thể tối ưu hóa hiệu suất và bảo mật hệ thống. Nếu bạn thực hiện đầy đủ các thiết lập và kiểm tra định kỳ, hệ thống của bạn sẽ được bảo vệ tốt hơn. Đừng quên thường xuyên cập nhật danh sách IP cần chặn và cấu hình các quy tắc bảo mật để giữ an toàn cho máy chủ.
Bài viết hướng dẫn rất chi tiết và hữu ích.
Cám ơn Vietnix.