Hướng dẫn cài đặt CSF trên CentOS – Config Server Firewall

ConfigServer Security & Firewall (CSF) hiện tại là một trong những firewall rất được ưa chuộng trên các hệ thống Server/VPS hoạt động đơn lẻ. Với bài viết này trên “Cuongquach.com“, ta sẽ được hướng dẫn cài đặt CSF trên CentOS.

cài đặt csf trên centos

Vì các tính năng nâng cao lẫn cơ bản cùng hiệu suất hoạt động trong việc kiểm tra các luồng traffic vào server cực kì linh hoạt mà CSF rất nổi tiếng. ConfigServer Security & Firewall (CSF firewall) hiện đã được tích hợp GUI mode (giao diện) trên các Hosting Controller phổ biến hiện nay như cPanel, DirectAdmin. Bên cạnh việc việc dễ cài đặt, dễ cấu hình, dễ quản lý,… thì còn một số tính năng cao khác mà bạn có thể tham khảo như:

  • SYN Flood protection.
  • Theo dõi các hoạt động scan port và block ip scan port.
  • Theo dõi các hoạt động login email server POP3/IMAP.
  • Thông báo đăng nhập SSH/Khoá truy cập IP nào đang scan port ssh.
  • Khoá các port không sử dụng trên server.
  • Theo dõi các sự thay đổi của file và thư mục trên hệ thống.

Giờ thì chúng ta cùng tìm hiểu cách cài đặt dịch vụ tường lửa CSF trên CentOS nhé.

Contents

1. Cài đặt các chương trình/thư viện hỗ trợ CSF

– Chúng ta sẽ cần cài đặt các gói chương trình thư viện hỗ trợ cho dịch vụ tường lửa CSF.

# yum -y install epel-release
# yum -y install iptables-services unzip bind-utils perl-libwww-perl e2fsprogs perl-LWP-Protocol-https ipset perl-Time-HiRes vim vi wget

2. Tiến hành cài đặt CSF

– Bạn sẽ download gói chương trình cài đặt bằng lệnh “wget“.

# cd /usr/local/src
# wget https://download.configserver.com/csf.tgz

– Giải nén bộ source chương trình CSF, chạy file script để tự động cài đặt.

# tar -xzf csf.tgz
# cd csf
# sh install.sh

Selecting installer...

Running csf generic installer

Installing generic csf and lfd

Check we're running as root

Checking Perl modules...
Using configuration defaults
...Perl modules OK

mkdir: created directory `/etc/csf'
mkdir: created directory `/var/lib/csf'
mkdir: created directory `/var/lib/csf/backup'
mkdir: created directory `/var/lib/csf/Geo'
mkdir: created directory `/var/lib/csf/ui'
mkdir: created directory `/var/lib/csf/stats'
mkdir: created directory `/var/lib/csf/lock'
mkdir: created directory `/var/lib/csf/webmin'
mkdir: created directory `/var/lib/csf/zone'
mkdir: created directory `/usr/local/csf'
mkdir: created directory `/usr/local/csf/bin'
mkdir: created directory `/usr/local/csf/lib'
mkdir: created directory `/usr/local/csf/tpl'
`csf.generic.conf' -> `/etc/csf/csf.conf'
`csf.generic.allow' -> `/etc/csf/csf.allow'
...
...
`csf/csf.svg' -> `webmin/csf/images/csf.svg'
`csf/jquery.min.js' -> `webmin/csf/images/jquery.min.js'
`csf/LICENSE.txt' -> `webmin/csf/images/LICENSE.txt'
`csf/loader.gif' -> `webmin/csf/images/loader.gif'
`/etc/csf/csfwebmin.tgz' -> `/usr/local/csf/csfwebmin.tgz'

Installation Completed

3. Cấu hình dịch vụ CSF trên CentOS

3.1 Tắt dịch vụ “firewalld” hoặc dịch vụ firewall khác

Thông thường CentOS 7 có một ứng dụng tường lửa Linux mặc định tên là “firewalld“, còn nếu hệ thống CentOS 7 của VPS/Cloud Server bạn đang sử dụng không có thì có thể bạn đã cài bản CentOS 7 minimal. Vậy ta cần tắt dịch vụ tường lửa “firewalld” đi trước khi sử dụng dịch vụ tường lửa “CSF“, nhằm tránh xung đột giữa 2 dịch vụ quản lý rule iptable..

– Để tắt dịch vụ “firewalld

# systemctl stop firewalld

– Tắt hoạt động startup dịch vụ “firewalld”.

# systemctl disable firewalld

Còn nếu OS của server/vps bạn là CentOS 6 thì sẽ ít có firewall dịch vụ khác cài đặt sẵn, nên các bạn chỉ cần tự quản lý kiểm tra nếu có các dịch vụ tường lửa nào trên server Linux.

3.2 Khởi động dịch vụ CSF

Bây giờ ta sẽ cấu hình dịch vụ CSF để kích hoạt tính năng hoạt động của tường lửa CSF. Bạn sẽ chỉnh sửa file ‘csf.conf‘ trong thư mục ‘/etc/csf/‘ với chương trình editor ‘vi‘ hoặc ‘vim‘.

# cd /etc/csf/
# vi csf.conf

Tìm dòng có bắt đầu là chữ “TESTING“, thường có thể là dòng thứ 11, thay đổi giá trị sang “0” đồng nghĩa với việc tắt chức năng “TESTING” của firewall. Ở chức năng này, cứ một khoảng thời gian thì firewall sẽ reset lại cấu hình mặc định giúp bạn khôi phục lại các cấu chuẩn không bị sai (trường hợp bạn cấu hình sai khi đang tìm hiểu CSF).

TESTING = "0"

– Bây giờ ta sẽ khởi động dịch vụ CSF. Đồng thời kích hoạt khởi động dịch vụ khi hệ thống boot lên.

+ CentOS 6

# service csf start
# service lfd start
# chkconfig csf on
# chkconfig lfd on

+ CentOS 7

# systemctl start csf
# systemctl start lfd
# systemctl enable csf
# systemctl enable lfd

– Giờ bạn có thể liệt kê danh sách các rule mặc định của CSF với lệnh sau :

# csf -l
Chain INPUT (policy DROP 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1        0     0 ACCEPT     tcp  --  !lo    *       8.8.8.8              0.0.0.0/0           tcp dpt:53
2        0     0 ACCEPT     udp  --  !lo    *       8.8.8.8              0.0.0.0/0           udp dpt:53
3        0     0 ACCEPT     tcp  --  !lo    *       8.8.8.8              0.0.0.0/0           tcp spt:53
4       36  4752 ACCEPT     udp  --  !lo    *       8.8.8.8              0.0.0.0/0           udp spt:53
5     1136 3073K LOCALINPUT  all  --  !lo    *       0.0.0.0/0            0.0.0.0/0
6        0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
7     1211 3076K INVALID    tcp  --  !lo    *       0.0.0.0/0            0.0.0.0/0
8    2820K 9991M LOG        all  --  eth0   *       0.0.0.0/0            0.0.0.0/0           LOG flags 0 level 7 prefix `BANDWIDTH_IN:'
9      406 26191 f2b-SSH    tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:2222
10     406 26191 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:2222
11      33  1543 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:2233
12      81  3643 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:587
...
...

3.3 Những file cấu hình CSF

Toàn bộ thông tin cấu hình và quản lý CSF được lưu ở các file trong folder ‘/etc/csf‘. Nếu bạn chỉnh sửa các file này thì cần khởi động lại CSF để thay đổi có hiệu lực.

  • csf.conf : File cấu hình chính để quản lý CSF.
  • csf.allow : Danh sách địa chỉ IP cho phép qua firewall.
  • csf.deny : Danh sách địa chỉ IP từ chối qua firewall.
  • csf.ignore : Danh sách địa chỉ IP cho phép qua firewall và không bị block nếu có vấn đề.
  • csf.*ignore : Danh sách user, IP được ignore.

Nội dung cấu hình tìm hiểu dịch vụ CSF tường lửa trên CentOS sẽ được tìm hiểu ở bài kế tiếp.

4. Các lệnh csf cần biết

Sau đây bạn sẽ tìm hiểu danh sách các câu lệnh mà chương trình “csf” hỗ trợ.

– Khởi động “csf” và “lfd” nếu 2 dịch vụ này chưa khởi động.

# csf -e
# csf --enable

– Tắt dịch vụ “csf” và “lfd

# csf -x
# csf --disable

– Khởi động lại các rule tường lửa do CSF quản lý.

# csf -r
# csf --restart

– Khởi động rule tường lửa.

# csf -s
# csf --start

– Xoá toàn bộ rule tường lửa.

# csf -f
# csf --stop

– Cho phép (allow) 1 IP và thêm IP đó vào file /etc/csf/csf.allow .

# csf -a ip [comment]
# csf --add ip [comment]

Ví dụ :

# csf -d 192.168.1.110 DDOS IP
Adding 192.168.1.110 to csf.deny and iptables DROP...

– Gỡ bỏ IP khỏi danh sách cho phép, xoá IP đó khỏi file /etc/csf/csf.allow .

# csf -ar ip
# csf --addrm ip

– Chặn (deny) 1 IP và thêm IP đó vào file /etc/csf/csf.deny .

# csf -d ip [comment]
# csf --deny ip [comment]

Ví dụ :

# csf -d 192.168.1.110 DDOS IP
Adding 192.168.1.110 to csf.deny and iptables DROP...

– Chặn 1 IP vĩnh viễn không bị xoá khỏi danh sách IP trong /etc/csf/csf.deny .

# csf -d ip do not delete
# csf --deny ip do not delete

– Gỡ bỏ IP khỏi danh sách bị chặn, bỏ IP đó khỏi file /etc/csf/csf.deny .

# csf -dr ip
# csf --denyrm ip

– Xoá toàn bộ các IP bị chặn cũng như là xoá bộ IP thông tin trong file /etc/csf/csf.deny .

# csf -df
# csf --denyf

– Tìm thông tin về IP trong danh sách rule tường lửa chặn.

# csf -g ip

Ví dụ :

# csf -g 192.168.1.100
Chain            num   pkts bytes target     prot opt in     out     source               destination         
DENYIN           2        0     0 DROP       all  --  !lo    *       192.168.1.100        0.0.0.0/0          

ip6tables:
Chain            num   pkts bytes target     prot opt in     out     source               destination         
No matches found for 192.168.1.100 in ip6tables

Temporary Blocks: IP:192.168.1.100 Port: Dir:in TTL:3600 (Manually added: 192.168.1.100 (-/-/-))

– Thêm IP vào danh sách IP tạm thời được cho phép .

# csf -ta ip ttl [-p port] [-d direction] [comment]
# csf --tempallow ip ttl [-p port] [-d direction] [comment]

Ví dụ :

# csf -ta 192.168.1.100
ACCEPT  all opt -- in !lo out *  192.168.1.100  -> 0.0.0.0/0
ACCEPT  all opt -- in * out !lo  0.0.0.0/0  -> 192.168.1.100
csf: 192.168.1.100 allowed on port * for 3600 seconds in and outbound

– Thêm IP vào danh sách IP tạm thời bị chặn .

# csf -td ip ttl [-p port] [-d direction] [comment]
# csf --tempdeny ip ttl [-p port] [-d direction] [comment]

Ví dụ :

# csf -td 192.168.1.100
DROP  all opt -- in !lo out *  192.168.1.100  -> 0.0.0.0/0
csf: 192.168.1.100 blocked on port * for 3600 seconds inbound

– Liệt kê các IP đang nằm trong danh sách IP tạm thời bị chặn hoặc tạm thời cho phép .

# csf -t 
# csf --temp

Ví dụ :

# csf -t
A/D   IP address                               Port   Dir   Time To Live     Comment
DENY  192.168.1.100                              *    in    59m 48s          Manually added: 192.168.1.100 (-/-/-)
ALLOW 192.168.1.110                              *    inout 59m 56s          Manually added: 192.168.1.110 (-/-/-)

– Gỡ bỏ IP khỏi danh sách IP tạm thời bị chặn hoặc tạm thời cho phép .

# csf -tr ip
# csf -temprm ip

– Xoá toàn bộ danh sách IP đang nằm trong danh sách tạm thời .

# csf -tf
# csf --tempf

5. Gỡ cài đặt CSF trên CentOS

Khi bạn cài đặt CSF thì rất là đơn giản, chỉ cần script tự động của nhà cung cấp chương trình. Thì bây giờ để gỡ bỏ chương trình dịch vụ CSF khỏi hệ thống CentOS cũng đơn giản không kém. Đó chính là chạy script uninstall được để sẵn trên thư mục hoạt động của chương trình. Script đó có tên “uninstall.sh“.

Giờ thì bạn chỉ cần login vào hệ thống bằng SSH. Và thực hiện các thao tác tuần tự sau.

# cd /etc/csf/
# ll | grep uninstall
0 lrwxrwxrwx 1 root root 31 Sep 16 12:32 uninstall.sh -> /usr/local/csf/bin/uninstall.sh

Bạn sẽ tìm thấy file script gỡ cài đặt dịch vụ CSF. Giờ thì ta chạy file này nhé.

# sh uninstall.sh 
# sh uninstall.sh
Uninstalling csf and lfd...

Flushing chain `INPUT'
Flushing chain `FORWARD'
Flushing chain `OUTPUT'
Flushing chain `ALLOWIN'
Flushing chain `ALLOWOUT'
Flushing chain `CC_DENY'
Flushing chain `CONNLIMIT'
Flushing chain `DENYIN'
Flushing chain `DENYOUT'
Flushing chain `INVALID'
Flushing chain `INVDROP'
Flushing chain `LOCALINPUT'
Flushing chain `LOCALOUTPUT'
Flushing chain `LOGDROPIN'
Flushing chain `LOGDROPOUT'
Flushing chain `PREROUTING'
Flushing chain `POSTROUTING'
Flushing chain `OUTPUT'
Deleting chain `ALLOWIN'
...
...
removed `/var/lib/csf/backup/1494739932_pre_v10_07_upgrade'
removed `/var/lib/csf/backup/1495344731_pre_v10_08_upgrade'
removed `/var/lib/csf/backup/1497504738_pre_v10_12_upgrade'
removed `/var/lib/csf/backup/1505539933_pre_v10_25_upgrade'
removed `/var/lib/csf/backup/1498800802_pre_v10_14_upgrade'
removed `/var/lib/csf/backup/1505021533_pre_v10_24_upgrade'
removed directory: `/var/lib/csf/backup'
removed `/var/lib/csf/csf.dnscache'
removed `/var/lib/csf/lock/command.lock'
removed `/var/lib/csf/lock/list.lock'
removed `/var/lib/csf/lock/ST_IPTABLES.lock'
removed `/var/lib/csf/lock/CC_LOOKUPS.lock'
removed `/var/lib/csf/lock/COUNTRYCODE.lock'
removed `/var/lib/csf/lock/PT_LOAD.lock'
removed `/var/lib/csf/lock/AT_INTERVAL.lock'
removed `/var/lib/csf/lock/PT_INTERVAL.lock'
removed `/var/lib/csf/lock/LF_EXPLOIT.lock'
removed `/var/lib/csf/lock/LF_DIRWATCH.lock'
removed `/var/lib/csf/lock/LF_INTEGRITY.lock'
removed directory: `/var/lib/csf/lock'
removed `/var/lib/csf/csf.temppids'
removed directory: `/var/lib/csf'

...Done

Chương trình sẽ tự động xoá toàn bộ rule iptables mà CSF đang quản lý, xoá các file và thư mục vận hành của dịch vụ CSF. Cực kì đơn giản phải không nào.

Qua bài viết này, bạn đã biết cách cài đặt CSF trên CentOS rồi phải không nào ?! Ở bài khác kế tiếp, bạn sẽ được tìm hiểu về nội dung cấu hình dịch vụ CSF cơ bản và nâng cao nhằm sử dụng dịch vụ CSF một cách hiệu quả nhất. Nếu bạn có thắc mắc gì thì đừng ngại comment bên dưới nhé.

Quách Chí Cường (Theo VINADATA.VN)

Previous articleHướng dẫn gỡ cài đặt dịch vụ CSF trên CentOS
Next articleKhởi động lại Linux như thế nào ? – Reboot Linux
Bạn đang theo dõi website "https://cuongquach.com/" nơi lưu trữ những kiến thức tổng hợp và chia sẻ cá nhân về Quản Trị Hệ Thống Dịch Vụ & Mạng, được xây dựng lại dưới nền tảng kinh nghiệm của bản thân mình, Quách Chí Cường. Hy vọng bạn sẽ thích nơi này !