CSF (ConfigServer & Firewall) là 1 gói ứng dụng hoạt động trên Linux như 1 Firewall được phát hành miễn phí để tăng tính bảo mật cho server (VPS và Dedicated). CSF hoạt động dựa trên iptables và tiến trình ldf để quyét các file log để phát hiện các dấu hiệu tấn công bất thường.
ConfigServer & Firewall
CSF sẽ giúp server của bạn:
- Chống DoS các loại
- Chống Scan Port
- Đưa ra các lời khuyên về việc cấu hình server (VD: Nên nâng cấp MySQL lên bản mới hơn)
- Chống BruteForce Attack vào ftp server, web server, mail server,directadmin,cPanel...
- Chống Syn Flood
- Chống Ping Flood
- Cho phép ngăn chặn truy cập từ 1 quốc gia nào đó bằng cách chỉ định Country Code chuẫn ISO
- Hỗ trợ IPv6 và IPv4
- CHo phép khóa IP tạm thời và vĩnh viễn ở tầng mạng (An toàn hơn ở tầng ứng dụng ) nên webserver ko phải mệt nhọc xử lý yêu cầu từ các IP bị cấm nữa
- Cho phép bạn chuyến hướng yêu cầu từ các IP bị khóa sang 1 file html để thông báo cho người dùng biết IP của họ bị khóa
-Và rất nhiều tính năng khác, các bạn tự tìm hiểu thêm
1. Cách cài đặt CSF (ConfigServer & Firewall)
Đầu tiên các bạn chuyển vào thư mục /usr/src/ bằng lệnh sau
[root@server1 src]# cd /usr/src/
Tiếp theo, các bạn tải csf về bằng lệnh sau
Code:
[root@server1 src]# wget http://configserver.com/free/csf.tgz
csf đang được tải về
Sau khi tải về xong, các bạn giải nén file vừa tải về bằng lệnh
Code:
[root@server1 src]# tar -xvf csf.tgz
Các bạn chuyển vào thư mục vừa giải nén bằng lệnh
Code:
[root@server1 src]# cd csf
Chạy file cài đặt bằng lệnh
Code:
[root@server1 csf]# sh install.sh
Quá trình cài đặt csf đã hoàn tất
Khi thông báo Installation Completed hiện ra tức là bạn đã cài thành công
Bạn gõ lệnh sau để kiểm tra xem server của bạn có đầy đủ các module iptables mà csf cần để hoạt động ko
Code:
[root@server1 csf]# perl /etc/csf/csftest.pl
Kiểm tra server đã cài đủ các module cần thiết cho iptables chưa
nếu kết quả như hình trên thì csf sẽ hoạt động rất tốt, nếu thiếu 1 số module thì bạn cũng đừng lo lắng, chỉ cần khi bạn gõ lệnh này mà không có 1 lỗi FATAL errors nào xuất hiện thì csf sẽ có thể hoạt động được :)
Nếu trước đây bạn có cài 1 số firewall khác dạng như csf như APF + BFD, bạn nên gỡ bỏ nó bằng lệnh sau, nếu không, sẽ gây ra 1 sự xung đột khủng khiếp :-ss
Nếu bạn lo lắng vì không biết trước đây đã có cài chúng hay chưa thì cũng đừng lo lắng, cứ chạy lệnh này, nếu có thì nó sẽ được gỡ bỏ, nếu không thì cũng không sao :P
Code:
[root@server1 csf]# sh /etc/csf/remove_apf_bfd.sh
Gỡ bỏ APF nếu trước đó đã cài để tránh xung đột
2. Cấu hình CSF như thế nào ?
Nếu bạn đang cài DirectAdmin hay cPanel, thì sau khi cài CSF trong cPanel hoặc DirectAdmin sẽ có thêm 1 plugin để bạn cấu hình nó.
csf được tích hợp vào DirectAdmin và cPanel
2.1 Tắt chế độ Test Mode trên CSF
Sau khi cài đặt CSF thì CSF đã được enable nhưng ở chế độ Test Mode. Bạn chuyển sang chế độ hoạt động bằng cách sau
- Login vào DirectAdmin (Tài khoản admin) hoặc cPanel (Tài khoản root)
- Click chọn chức năng "ConfigServer Firewall&Security"
Chọn chức năng ConfigServer & Firewall trên DirectAdmin
Nếu trường hợp như sau là CSF chưa được kích hoạt, đang chạy trong chế độ test mode.
Chọn tiếp mục Firewall Configuration như hình sau
Chọn Firewall Configuration
bạn sửa phần TESTING thành 0 như hình dưới
Sửa phần TESTING thành 0 để tắt chế độ Test Mode
Sau đó cuộn xuống gần cuối trang bấm change
Bấm change ở cuối trang để cập nhật thay đổi
Bấm restart csf + ldf để thay đổi cập nhật
Khởi động lại csf và lfd để thay đổi có hiệu lực
Nếu bạn ko dùng DirectAdmin hoặc cPanel? Đừng lo lắng :D , bạn có thể bỏ test mode bằng cách sau trên SSH
Bạn gõ lệnh
Code:
[root@server1 csf]# vi /etc/csf/csf.conf
Bấm nút I (Nút chữ I trên bàn phím) rồi sửa chỗ TESTING="1" thành TESTING="0"
Mở file /etc/csf/csf/conf sửa phần TESTING thành 0 để tắt Test Mode
Sau đó bạn bấm nút ESC, rồi bấm tiếp :x (dấu 2 chấm và chữ x thường) rồi Enter
Cuối cùng bạn gõ 2 lệnh sau để khởi động lại csf
Code:
[root@server1 csf]# csf -r [root@server1 csf]# csf -q
Nếu bạn thấy thông báo sau khi vào csf trên DirectAdmin hay cPanel tức là CSF đang chạy
CSF đã được bật và đang chạy
3. Chuyển đổi qua lại giữa các mức bảo mật của CSF
Mặc định, CSF có 3 level bảo mật. Bạn có thể chuyển đổi qua lại giữa 3 mức này tùy trường hợp.
VD: Thấy server đang bị DoS có thể chuyển qua mức cao nhất
- Login vào DirectAdmin (Tài khoản admin) hoặc cPanel (Tài khoản root)
- Click chọn chức năng "ConfigServer Firewall&Security"
- Chọn tiếp mục Firewall Security Level
Chọn Firewall Security Level để thay đổi mức độ bảo vệ
- Ở màn hình tiếp theo bạn chọn 1 trong 3 mức: Low (Thấp), Medium (Trung bình), Hight (Cao)
Chọn mức độ bảo vệ tương ứng
4. Cách chặn và luôn chấp nhận 1 IP nào đó như thế nào ?
Khi bạn chặn 1 ip trên csf thì IP đó sẽ bị chặn bằng iptables, do đó các kết nối từ ip này gửi đến không thế lên tầng mạng nên sẽ giảm đáng kể tài nguyên so với việc chặn bằng .htaccess hay cách khác tương tự.
Trong 1 số trường hợp bạn cần đưa IP nào đó vào Whitelist (Ví dụ: IP của bạn, IP của người quản trị server) để các IP này luôn được chấp nhận kết nối mà không bị chặn nhầm
=> Bạn có thể thực hiện thông qua csf nếu không biết gì về IPtables :D
+ Để chấp nhận 1 IP vào whitelist bạn nhập IP cần ô khoanh đỏ bên dưới rồi bấm "Quick Allow"
+ Để chặn vĩnh viễn 1 IP, bạn nhập IP cần ô khoanh đỏ bên dưới rồi bấm "Quick Deny"
Cách chặn nhanh 1 IP
+ Để cấm tạm thời 1 IP nào đó hay Allow tạm thời 1 IP nào đó bạn có thể làm như hình sau:
Ô thứ nhất: Chọn Block (Cấm) hoặc Allow (Chấp nhận)
Ô thứ 2: IP cần Block hay cần Allow là gì ?
Ô thứ 3: Thời gian cấm hoặc Allow là bao nhiêu ?
+ Để mở khóa cho 1 IP đang bị cấm bạn nhập IP vào ô đỏ bên dưới rồi bấm "Unblock"
Cách mở khóa 1 IP
5. Xem danh sách IP bị cấm và danh sách IP được Allow
Cách xem danh sách các IP đang được Allow hay chặn
Khi xem danh sách, bạn có thể xóa bớt đi rồi bấm change để cập nhật thay đổi. Đối với IP bị cấm, sẽ có lý do bị cấm hiện bên cạnh để bạn dễ theo dõi
Danh sách các IP đang bị chặn và lý do
5. Mở Port trên CSF
Mặc định, khi cài CSF thì CSF đã kiểm trên trên server của bạn đang chạy những dịch vụ nào thì CSF sẽ mở những port của các dịch đó để người dùng có thể truy cập.
Tuy nhiên, sau khi cài bạn thay đổi port của 1 dịch vụ nào đó. Ví dụ thay đổi port của SSH, không dùng port 22 nữa thì sao ?
Nếu bạn ko chỉnh lại trên CSF thì khi bạn không thể truy cập vào SSH bằng port mới mà IP của bạn sẽ bị CSF cấm luôn vì tội Scan Port :D
Vì vậy, trước khi đổi port 1 dịch vụ nào đó, bạn nên mở port đó trên CSF trước rồi chuyển nhé :)
Để mở port, bạn có thể cấu hình ở mục như hình sau trong mục Firewall Configuration
Cách mở port trên CSF
Sẽ có 2 mục Port setting như trong hình (Mỗi mục có 2 phần là IN và OUT), 1 mục để cấu hình trên IPv4, 1 mục để cấu hình trên IPv6, nếu bạn không dùng IPv6 bạn chỉ việc chỉnh trên vùng Port setting đầu là được.
7. Cấu hình chống DoS và Flood
Mặc định, CSF đã có những thiết lập cho việc này rồi, nhưng bạn cũng có thể chỉnh lại thei ý mình.
Ví dụ: Bạn chỉ nhận 1 gói tin ICMP (Ping) từ 1 IP trong 1 giây thôi thì trong mục Firewall Configuration bạn có thể chỉnh nó
cấu hình csf chống ping flood
Tương tự như vậy, còn nhiều phần khác về cấu hình chống Syn Flood, UDP Flood .... các bạn tự tìm hiểu thêm.
Và lưu ý rằng, cái firewall vào mà ko cấu hình gì thì cũng như không cài mà thôi :D
8. Chặn truy cập từ 1 nước nào đó
Bạn có thể chặn truy cập từ 1 trước nào đó thật dễ dàng bằng CSF :D
Ví dụ, bạn muốn chặn truy cập từ Mỹ, Trung Quốc thì bạn làm như sau:
Vào mục Firewall Configuration như mục 2.1, nhập mã quốc gia (2 ký tự) của 1 nước này vào ô CC_DENY rồi cuộn xuống cuối trang bấm change và restart lại csf và ldf là xong
Cách chặn truy cập từ 1 quốc gia nào đó
Lưu ý: Không lạm dụng chức năng này, chỉ sử dụng khi thật cần thiết vì nó có thể làm chậm server của bạn và dữ liệu kiểm tra 1 ip của nước nào không thật chính xác 100%
9. SPAMHAUS và BOGO là nó là thứ gì ?
Đây là 2 tổ chức cập nhật danh sách các IP được coi là Spam và chuyên đi tấn công cho cộng đồng. CSF hỗ trợ tự động cập nhật danh sách các IP này và cấm chúng.
Vì vậy mà khi bạn vừa cài CSF xong bạn đã thấy 1 đống IP trong bảng luật của IPtables.
Thật ra, mình không thật cần dùng 2 cái danh sách này vì xác xuất chúng tấn công mình là < 1%. Mà để nó chỉ tổ làm chậm quá trình kết nối mà thôi.
Hơn nữa, khi ipatbles quá nhiều luật thì có thể server của bạn sẽ phát điên lên và chẳng IP nào kết nối đến nó được nữa nên lâu lâu bạn cũng nên làm sạch danh sách bị cấm bằng cách dùng chức năng Flush All Block như hình dưới
Cách giải phóng hết các IP đang bị chặn
Quay lại Spamhaus và Bono, bạn có thể thiết lập CSF không lấy danh sách từ đó về để cập nhật vào bảng cấm nữa bằng cách vào Firewall Configuration thiết lập 2 thông số khoanh đỏ bằng 0:
Cách để CSF không tự lấy danh sách spamhaus nữa
Ngoài ra, bạn có thể sử dụng tính năng này để cập nhật danh sách các IP bị cấm vào 1 file .txt nào đó trên web rồi nhập đường dẫn file .txt đó vào đây để CSF tự lấy từ đó để cấm :)
10. Gỡ bỏ CSF như thế nào ?
Nếu bạn muốn gỡ bỏ CSF, bạn có thể làm như sau
10.1 Nếu server dùng cPanel thì gõ lệnh sau:
Code:
cd /etc/csf sh uninstall.sh
10.2 Nếu server dùng DirectAdmin thì gõ lệnh sau:
Code:
cd /etc/csf sh uninstall.directadmin.sh
10.3 Trường hợp còn lại thì bạn gõ lệnh sau:
Code:
cd /etc/csf sh uninstall.generic.sh
Các bạn có thểm Commet nếu có đoạn nào chưa hiểu.