Cách cài đặt và cấu hình tường lửa CSF với giao diện hình ảnh Web UI

Tác giả NetworkEngineer, T.Mười 28, 2021, 04:25:59 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 3 Khách đang xem chủ đề.

Cách cài đặt và cấu hình tường lửa CSF với giao diện hình ảnh Web UI


Config Server Firewall (CSF) là một ứng dụng tường lửa phần mềm miễn phí, mã nguồn mở và mạnh mẽ dựa trên iptables, cung cấp mức độ bảo mật cao cho máy chủ Linux.

CSF là công cụ kiểm tra gói tin trạng thái có thể bảo vệ máy chủ của bạn chống lại các loại tấn công khác nhau, chẳng hạn như brute force, SYN flood, quét cổng, DOS và cải thiện bảo mật máy chủ.

CSF đi kèm với giao diện hình ảnh hình ảnh Web UI ConfigServer, dễ sử dụng để quản lý cài đặt tường lửa của bạn.
 
CSF cho phép bạn cấu hình tường lửa của máy chủ để khóa quyền truy cập công khai vào các dịch vụ và chỉ cho phép một số kết nối nhất định, chẳng hạn như đăng nhập vào FTP, kiểm tra email hoặc tải trang web của bạn.

CSF tiếp tục theo dõi hoạt động người dùng của bạn để biết các lỗi đăng nhập. Nếu một số lượng lớn các lỗi đăng nhập được nhìn thấy đến từ cùng một địa chỉ IP, địa chỉ IP đó sẽ ngay lập tức bị chặn tạm thời khỏi tất cả các dịch vụ trên máy chủ của bạn. Bạn có thể thêm và xóa các địa IP danh sách trắng hoặc danh sách đen theo cách thủ công trong tường lửa của mình thông qua giao diện hình ảnh Web UI ConfigServer.

Trong hướng dẫn này, mình sẽ giải thích cách cài đặt và cấu hình tường lửa máy chủ cấu hình (CSF) trên phiên bản dịch vụ điện toán đám mây đàn hồi của Alibaba (ECS) với Ubuntu 16.04.

  • Phiên bản Alibaba Cloud Ubuntu 16.04 mới với RAM tối thiểu 2GB.
  • Một địa chỉ IP tĩnh được cấu hình.
  • Mật khẩu root được thiết lập trên máy chủ.

1. Cài đặt tường lửa CSF.

Khi bạn đã đăng nhập vào phiên bản Ubuntu 16.04 của mình, hãy chạy lệnh sau để cập nhật hệ thống cơ sở của bạn với các gói mới nhất hiện có.

Mã nguồn [Chọn]
$ apt-get update -y
Theo mặc định, tường lửa CSF không có sẵn trong kho lưu trữ mặc định Ubuntu 16.04. Vì vậy, bạn sẽ cần tải xuống và cài đặt tường lửa CSF từ nguồn trên trang web của nhà phát triển.

Bạn có thể tải xuống nguồn tường lửa CSF bằng lệnh sau:

Mã nguồn [Chọn]
$ wget http://download.configserver.com/csf.tgz
Sau khi quá trình tải xuống hoàn tất, hãy giải nén tập tin đã tải xuống bằng lệnh sau:

Mã nguồn [Chọn]
$ tar xvzf csf.tgz
Tiếp theo, hãy di chuyển vào thư mục csf và cài đặt tường lửa CSF bằng cách chạy tập lệnh sau:

Mã nguồn [Chọn]
$ cd csf
Mã nguồn [Chọn]
$ bash csf.sh
Sau khi cài đặt hoàn tất, bạn sẽ thấy kết quả sau:

Mã nguồn [Chọn]
Created symlink from /etc/systemd/system/firewalld.service to /dev/null.
'csf/LICENSE.txt' -> 'webmin/csf/images/LICENSE.txt'
'csf/bootstrap/js/bootstrap.min.js' -> 'webmin/csf/images/bootstrap/js/bootstrap.min.js'
'csf/bootstrap/css/bootstrap.min.css.map' -> 'webmin/csf/images/bootstrap/css/bootstrap.min.css.map'
'csf/bootstrap/css/bootstrap.min.css' -> 'webmin/csf/images/bootstrap/css/bootstrap.min.css'
'csf/bootstrap/fonts/glyphicons-halflings-regular.eot' -> 'webmin/csf/images/bootstrap/fonts/glyphicons-halflings-regular.eot'
'csf/bootstrap/fonts/glyphicons-halflings-regular.woff2' -> 'webmin/csf/images/bootstrap/fonts/glyphicons-halflings-regular.woff2'
'csf/bootstrap/fonts/glyphicons-halflings-regular.svg' -> 'webmin/csf/images/bootstrap/fonts/glyphicons-halflings-regular.svg'
'csf/bootstrap/fonts/glyphicons-halflings-regular.ttf' -> 'webmin/csf/images/bootstrap/fonts/glyphicons-halflings-regular.ttf'
'csf/bootstrap/fonts/glyphicons-halflings-regular.woff' -> 'webmin/csf/images/bootstrap/fonts/glyphicons-halflings-regular.woff'
'csf/bootstrap-chosen.css' -> 'webmin/csf/images/bootstrap-chosen.css'
'csf/chosen-sprite.png' -> 'webmin/csf/images/chosen-sprite.png'
'csf/[email protected]' -> 'webmin/csf/images/[email protected]'
'csf/chosen.min.css' -> 'webmin/csf/images/chosen.min.css'
'csf/chosen.min.js' -> 'webmin/csf/images/chosen.min.js'
'csf/configserver.css' -> 'webmin/csf/images/configserver.css'
'csf/csf-loader.gif' -> 'webmin/csf/images/csf-loader.gif'
'csf/csf.svg' -> 'webmin/csf/images/csf.svg'
'csf/csf_small.png' -> 'webmin/csf/images/csf_small.png'
'csf/jquery.min.js' -> 'webmin/csf/images/jquery.min.js'
'csf/loader.gif' -> 'webmin/csf/images/loader.gif'
'/etc/csf/csfwebmin.tgz' -> '/usr/local/csf/csfwebmin.tgz'

Installation Completed


Tiếp theo, bạn sẽ cần xác minh xem tất cả các mô-đun tường lửa bắt buộc có sẵn trong máy chủ hay không. Bạn có thể kiểm tra nó bằng lệnh sau:

Mã nguồn [Chọn]
$ perl /usr/local/csf/bin/csftest.pl
Mã nguồn [Chọn]
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


Tất cả các tập tin cấu hình của tường lửa CSF đều nằm trong thư mục /etc/csf. Các tập tin là tập tin cấu hình chính của tường lửa CSF:

  • csf.conf: Tập tin cấu hình chính.
  • csf.allow: Danh sách các địa chỉ IP và CIDR được phép trên tường lửa.
  • csf.deny: Danh sách các địa chỉ IP và CIDR bị từ chối trên tường lửa.
  • csf.ignore: Danh sách các địa chỉ IP và CIDR bị bỏ qua trên tường lửa.

2. Cấu hình tường lửa CSF.

Tập tin cấu hình tường lửa CSF mặc định được đặt tại thư mục /etc/csf. Đầu tiên, kích hoạt tường lửa CSF và thêm các cổng đến và đi cơ bản bằng lệnh sau:

Mã nguồn [Chọn]
$ nano /etc/csf/csf.conf
Thực hiện các thay đổi sau:

Mã nguồn [Chọn]
# Tắt chế đô chạy thử nghiểm của tường lửa CSF và kích hoạt tường lửa CSF bằng cách thay 1 thành 0
TESTING = "0"

# Cho phép gói tin đi ra trên các cổng với giao thức TCP.
TCP_OUT = "20,21,22,25,53,80,110,113,443,587,993,995"

# Cho phép gói tin đi vào trên các cổng với giao thức UDP.
UDP_IN = "20,21,53"

# Cho phép gói tin đi ra trên các cổng với giao thức UDP.
# Để cho phép các gói tin của lệnh traceroute đi ra thì thêm phạm vi cổng 33434:33523
UDP_OUT = "20,21,53,113,123"

# Cho phép phản hồi các gói tin của lệnh Ping đi vào.
ICMP_IN = "1"

# Thiết lập tỷ lệ gói tin ICMP đi vào trên mỗi địa chỉ IP.
ICMP_IN_RATE = "1/s"

# Cho phép các gói tin của lệnh Ping đi ra.
ICMP_OUT = "1"


Lưu và đóng tập tin. Sau đó, tải lại tường lửa CFS bằng lệnh sau:

Mã nguồn [Chọn]
$ csf -r
Bạn có thể xem danh sách các quy tắc mặc định bằng cách chạy lệnh sau:

Mã nguồn [Chọn]
$ csf -l
3. Cấu hình nâng cao tường lửa CSF.

Tường lửa CSF cho phép bạn chặn lỗi đăng nhập của các dịch vụ khác nhau như SSH, FTP và SMTP.

Bạn cũng có thể cấu hình tường lửa CSF để ngăn máy chủ khỏi các cuộc tấn công DDOS.

Bạn có thể thực hiện việc này bằng cách cấu hình tập tin csf.conf như bên dưới:

Mã nguồn [Chọn]
$ nano /etc/csf/csf.conf
Thực hiện các thay đổi sau:

Mã nguồn [Chọn]
# Chặn một địa chỉ IP mãi mãi.
LF_TRIGGER_PERM = 1

# Chặn tất cả các người dùng trên cổng 22, 21 và 25 nếu đăng nhập lỗi 3 lần.
LF_SSHD = 3
LF_FTPD = 3
LF_SMTPAUTH = 3

# Ngăn ngừa sử dụng nhiều địa chỉ IP khác nhau với cùng một tài khoản để đăng nhập vào dịch vụ.
LF_DISTATTACK = 1
LF_DISTATTACK_UNIQ = 3

# Theo dõi số lần đăng nhập FTP thành công.
LF_DISFTP = 1
LF_DISTFTP_UNIQ = 3
LF_DISTFTP_PERM = 1

# Giới hạn số kết nối được cho phép từ một máy khách.
CT_LIMIT = "20"

# Khoảng thời gian theo dõi các kết nối.
CT_INTERVAL = "10"

# Thiết lập 1 sẽ chặn các địa chỉ IP mãi mãi.
CT_PERMANENT = 1

# Gửi email thông báo cho quản trị khi có một địa chỉ IP bị chặn.
CT_EMAIL_ALERT =1

# Thay vì chặn mãi mãi thì bạn cũng có thể đưa ra khoảng thời gian chặn tạm thời.
CT_BLOCK_TIME = 1800

# Số kết nối cho phép đến cổng 80 trong 5 giây, tất cả các kết nối mới sẽ bị chặn.
PORTFLOOD = "80;tcp;30;5"


Lưu và đóng tập tin khi bạn hoàn tất.

Bạn cũng có thể theo dõi các tập tin hệ thống quan trọng để tìm các thay đổi bằng cách kiểm tra md5 định kỳ và sẽ cảnh báo cho bạn về các thay đổi.

Bạn có thể thực hiện việc này bằng cách chỉnh sửa tập tin /etc/csf/csf.dirwatch.

Mã nguồn [Chọn]
$ nano /etc/csf/csf.dirwatch
Thêm các tập tin quan trọng vào để tường lửa CSF theo khi có sự thay đổi nào thì sẽ thông báo đến bạn.

Mã nguồn [Chọn]
/root/.ssh/authorized_keys
/etc/ssh/sshd_config
/etc/shadow

Lưu và đóng tập tin. Sau đó, tải lại tường lửa CSF và lfd để áp dụng các thay đổi:

Mã nguồn [Chọn]
$ csf -r
Mã nguồn [Chọn]
$ service lfd restart
4. Làm việc với tường lửa CSF.

Bạn cũng có thể cho phép, từ chối, xóa và thực hiện các tác vụ khác bằng dòng lệnh tường lửa CSF.

Để cho phép địa chỉ IP:

Mã nguồn [Chọn]
$ csf -a 192 .168.0.103
Để từ chối địa chỉ IP:

Mã nguồn [Chọn]
$ csf -d 192 .168.0.103
Để xóa địa chỉ IP bị chặn:

Mã nguồn [Chọn]
$ csf -dr 192 .168.0.103
Để kiểm tra xem một IP có bị tường lửa CSF chặn hay không:

Mã nguồn [Chọn]
$ csf -g 192 .168.0.103
Để tắt hoàn toàn tường lửa CSF và lfd:

Mã nguồn [Chọn]
$ csf -x
Để bật tường lửa CSF:

Mã nguồn [Chọn]
$ csf -e
Để xóa các quy tắc tường lửa CSF:

Mã nguồn [Chọn]
$ csf -f
Để xóa một IP khỏi danh sách cho phép:

Mã nguồn [Chọn]
$ csf -ar 192 .168.0.103
Để khởi động lại tường lửa CSF:

Mã nguồn [Chọn]
$ csf -r
5. Cài đặt giao diện người dùng CSF Web UI.

CSF Web UI yêu cầu một số mô-đun perl được cài đặt trên hệ thống của bạn. Bạn có thể cài đặt tất cả chúng bằng cách chạy lệnh sau:

Mã nguồn [Chọn]
$ apt-get install libio-socket-ssl-perl libcrypt-ssleay-perl libnet-libidn-perl libio-socket-inet6-perl libsocket6-perl -y
Tiếp theo, bật CSF Web UI bằng cách chỉnh sửa tập tin /etc/csf/csf.conf:

Mã nguồn [Chọn]
$ nano /etc/csf/csf.conf
Thực hiện các thay đổi sau:

Mã nguồn [Chọn]
# 1 là bật, 0 là tắt
UI = "1"

# Thiết lập cổng của CSF Web UI qua giao thức TCP.
UI_PORT = "8080"

# Bỏ trống nếu bạn muốn truy cập vào CSF Web UI bằng tất cả các địac chỉ IP có trên máy chủ.
UI_IP = ""

# Tên người dùng để đăng nhập vào CSF Web UI.
UI_USER = "vietnetwork"

# Bạn nên đặt mật khẩu thật khó để đăng nhập vào CSF Web UI.
UI_PASS = "admin"


Lưu và đóng tập tin. Sau đó, tất cả các địa chỉ IP trong tập tin /etc/csf/ui/ui.allow sẽ sẽ cho phép truy cập vào CSF Web ​​UI:

Mã nguồn [Chọn]
$ nano /etc/csf/ui/ui.allow
Thêm địa chỉ IP của bạn vào.

Mã nguồn [Chọn]
192 .168.0.103
Lưu và đóng tập tin. Tiếp theo, bạn sẽ cần khởi động lfd để áp dụng các thay đổi:

Mã nguồn [Chọn]
$ service lfd restart
Bạn có thể kiểm tra trạng thái của lfd bằng lệnh sau:

Mã nguồn [Chọn]
$ service lfd status
Mã nguồn [Chọn]
lfd.service - ConfigServer Firewall & Security - lfd
   Loaded: loaded (/usr/lib/systemd/system/lfd.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2018-09-08 20:19:49 IST; 5s ago
  Process: 7741 ExecStart=/usr/sbin/lfd (code=exited, status=0/SUCCESS)
 Main PID: 7756 (lfd - sleeping)
   CGroup: /system.slice/lfd.service
           ├─7756 lfd - sleepin
           ├─7763 lfd U
           ├─7764 lfd - retrieving countrycodelookups list
           ├─7765 lfd - checking system integrit
           ├─7767 sh -c /usr/bin/md5sum /usr/bin/* /usr/sbin/* /bin/* /sbin/* /usr/local/bin/* /usr/local/sbin/* /etc/init.d/* /etc/xinetd.d/*
           └─7769 /usr/bin/md5sum /usr/bin/2to3 /usr/bin/2to3-2.7 /usr/bin/2to3-3.5 /usr/bin/Mail /usr/bin/NF /usr/bin/[ /usr/bin/aa-enabled /u

Sep 08 20:19:47 mail.example.com systemd[1]: Starting ConfigServer Firewall & Security - lfd...
Sep 08 20:19:49 mail.example.com systemd[1]: Started ConfigServer Firewall & Security - lfd.


Bây giờ, hãy mở trình duyệt web của bạn và nhập URL https://your-ip-address:8080. Bạn sẽ được chuyển hướng đến trang đăng nhập CSF Web UI.

Tại đây, hãy cung cấp tên người dùng và mật khẩu mà bạn đã chỉ định trước đó. Bạn sẽ được chuyển hướng đến giao diện người dùng CSF Web UI:


Bạn đã cài đặt và cấu hình thành công tường lửa CSF trên máy chủ Ubuntu 16.04. Giờ đây, bạn có thể dễ dàng cấu hình và quản lý tường lửa CSF thông qua CSF Web UI một cách dễ dàng.