Hướng dẫn cài đặt và cấu hình csf trên centos 7(Bảo vệ VPS)
CSF LÀ GÌ ?
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.
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
Bước 1: Cài đặt các gói cần thiết để chạy csf
# yum install wget vim perl-libwww-perl.noarch perl-Time-HiRes -y
Bước 2: Tải về và cài đặt csf
Tạo 1 thư mục để chứa file cài đặt
# mkdir /download
# cd /download/
Download file cài đặt của csf
Doawload xong ta giải nén file vừa tải về
# tar -xvf csf.tgz
Ta dùng lệnh sh để cài đặt
# cd csf
# sh install.sh
Nếu xuất hiện các dòng sau là bạn đã cài đặt thành công
Adding current SSH session IP address to the csf whitelist in csf.allow:
Adding 14.160.38.66 to csf.allow only while in TESTING mode (not iptables ACCEPT)
*WARNING* TESTING mode is enabled - do not forget to disable it in the configuration
‘lfd.service’ -> ‘/usr/lib/systemd/system/lfd.service’
‘csf.service’ -> ‘/usr/lib/systemd/system/csf.service’
Created symlink from /etc/systemd/system/multi-user.target.wants/csf.service to /usr/lib/systemd/system/csf.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/lfd.service to /usr/lib/systemd/system/lfd.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
‘/etc/csf/csfwebmin.tgz’ -> ‘/usr/local/csf/csfwebmin.tgz’
Installation Completed
Đến đây các bạn truy cập vào thư mục /usr/local/csf/bin và chạy file csftest.pl để kiểm tra xem hoạt động của cfs
# cd /usr/local/csf/bin
# perl csftest.pl
[root@maxserver bin]# perl 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
Bước 3: Cấu hình CSF
Trước khi bước vào quá trình cấu hình CSF, điều đầu tiên bạn phải biết là "CentOS 7" có một ứng dụng tường lửa mặc định gọi là "firewalld". Bạn phải ngừng firewalld và loại bỏ nó từ khi khởi động.
# systemctl stop firewalld
# systemctl disable firewalld
Sau đó vào thư mục cấu hình CSF "/ etc / CSF /" và chỉnh sửa các tập tin "csf.conf" :
# nano /etc/csf/csf.conf
Thay đổi dòng 11 "TESTING" thành "0" để áp dụng các cấu hình tường lửa.
Sau khi thay đổi xong gõ lệnh sau để khởi động csf
# systemctl start csf
# systemctl start lfd
Cho chạy cùng hệ thống
# systemctl enable csf
# systemctl enable lfd
Các tập tin cấu hình chính
- csf.conf - các tập tin cấu hình chính, nó có ý kiến hữu ích để giải thích những gì mỗi tùy chọn nào
- csf.allow - một danh sách các địa chỉ CIDR của IP và phải luôn luôn được phép thông qua các bức tường lửa
- csf.deny - một danh sách các địa chỉ CIDR của IP và không bao giờ được phép thông qua các bức tường lửa
- csf.ignore - một danh sách các IP và địa chỉ CIDR rằng LFD nên bỏ qua và không ngăn chặn nếu phát hiện
Cấu hình trong tập tin csf.conf
# nano /etc/csf/csf.conf
Mở port
Cho phép các cổng TCP đến
# Allow incoming TCP ports
TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995"
Cho phép các cổng TCP gửi đi
# Allow outgoing TCP ports
TCP_OUT = "20,21,22,25,53,80,110,113,443,587,993,995"
Cho phép các cổng UDP đến
# Allow incoming UDP ports
UDP_IN = "20,21,53"
Cho phép các cổng UDP gửi đi
# Allow outgoing UDP ports
# To allow outgoing traceroute add 33434:33523 to this list
UDP_OUT = "20,21,53,113,123"
Chặn ping
Cho phép PING đến, thay đổi giá trị 1 hoặc 0 để chặn
# Allow incoming PING
ICMP_IN = "1"
Đặt tốc độ ping đến
Để vô hiệu hóa giới hạn tốc độ thiết lập để "0"
# Set the per IP address incoming ICMP packet rate
# To disable rate limiting set to "0"
ICMP_IN_RATE = "1/s"
Cho phép PING đi, thay đổi giá trị 1 hoặc 0 để chặn
# Allow outgoing PING
ICMP_OUT = "1"
Đặt tốc độ ping đi
# Set the per IP address outgoing ICMP packet rate (hits per second allowed),
# e.g. "1/s"
# To disable rate limiting set to "0"
ICMP_OUT_RATE = "0"
Thiết lập vảo vệ chống DOS
Bạn có thể chỉ định số lượng cho phép kết nối trên mỗi cổng trong khoảng thời gian của ý thích của bạn
PORTFLOOD = "port;protocol;hit count*;interval seconds"
VD:
PORTFLOOD = "22;tcp;5;300,80;tcp;20;5"
1. Nếu có nhiều hơn 5 kết nối đến tcp port 22 trong vòng 300 giây, thì sau đó chặn địa chỉ IP từ port 22 cho ít nhất 300 giây sau khi các gói tin cuối cùng được nhìn thấy, tức là không có một kết nối nào đến trong thời gian 300 giây thì chặn sẽ đc dỡ bỏ
2. Nếu có nhiều hơn 20 kết nối đến tcp port 80 trong vòng 5 giây, thì sau đó chặn địa chỉ IP từ port 80 cho ít nhất 5 giây sau khi các gói tin cuối cùng được nhìn thấy, tức là không có một kết nối nào đến trong thời gian 5 giây thì chặn sẽ đc dỡ bỏ