Tiếp nối phần trước, sau khi đã khởi chạy được CTFd thì bước tiếp theo chắc chắn là config nó. Trong bài viết này mình sẽ đi vào 2 phần chính đó là cách cài theme và setup để hệ thống gửi các loại email như xác thực đăng ký hay reset password cho player.
Theme
CTFd rất phổ biến trong cộng đồng chơi CTF nên các tiện ích đi kèm nó cũng được mọi người đóng góp rất nhiều. CTFd cũng có hẳn 1 kho theme riêng nhưng phải trả phí các bạn có thể tham khảo ở đây.
Hoặc ở link này các bạn sẽ tìm thấy những Community themes được chính CTFd recommend. Tuy nhiên mình lại thường không dùng những loại theme này mà thay vào đó, mình sẽ tham gia các giải CTF và xem họ sử dụng theme gì. Các bên tổ chức thường sẽ public đề, lời giải và cũng như những thứ liên quan với giải CTF của họ ngay sau khi nó kết thúc.
Để sử dụng theme thì mình khuyên các bạn dùng cách 2 để setup trong bài viết trước. Mình sẽ ví dụ với CTFd-Dark-Theme các case khác sẽ hoàn toàn tương tự.
- B1: Xác định folder theme của CTFd: nó sẽ nằm ở đây
CTFd-3.7.0/CTFd/themes
cơ bản là tìm xem folder nào có tên làthemes
và bên trong có sẵn 2 folder như sau:
themes ├── admin ├── core └── core-beta
- B2: Tải và di chuyển folder theme mà bạn muốn cài vào folder này. Như CTFd-Dark-Theme thì cấu trúc tại repo như sau:
Folder chúng ta cần chính là dark-theme
thường thì các bộ theme sẽ có hướng dẫn riêng nếu có những thứ đặc biệt hơn tuy nhiên thì bạn thấy folder nào có 2 folder con là static
và templates
thì đấy chính là thứ chúng ta cần~
- B3: Sau đã có theme trong folder đích, vào trang config của admin và apply
Nếu bạn apply xong mà không thấy thay đổi thì đấy là vì các bộ theme này sẽ không được thiết kế cho trang admin mà chỉ cho phía player thấy.
Đen cái là mình pick cmn cái theme k hỗ trợ cho phiên bản mới này nữa :))) mình sẽ update lại hình ảnh sau. Nhưng về ý tưởng thì nó vẫn chỉ như vậy! Cin lỗi vì sự lười biếng này : (
Whitelist domain
Khi bạn chỉ muốn cho phép 1 số tên miền email có thể đăng kí để tham gia vào cuộc thi CTF của bạn như là giải đấu nội bộ hoặc đơn giản là để lọc những temp mail thì bạn cần setup whitelist chúng.
Vào config -> Account và điền những domain mà bạn cho phép tham gia. Ví dụ như thế này:
Thì chỉ có những email dạng [email protected] hoặc [email protected] mới có thể đăng kí tham gia. Nếu domain khác thì sẽ ngay lập tức bị chặn:
SMTP gửi mail
Để có thể gửi mail bạn cần có một SMTP server và domain cho phép gửi mail. Tuỳ nhà cung cấp dịch vụ mà bạn đang sử dụng thì có thể sẽ khó khăn đấy!
Nếu bạn không có domain mà muốn gửi email từ mail cá nhân như @gmail.com thì cũng có thể Google cung cấp SMTP server free cho việc này. Tuy nhiên cần phải sử dụng app password và điều này sẽ khiến mail của bạn đối mặt với các nguy cơ bảo mật nên Google đã mặc định tắt. Với cả dù sao host một giải CTF thì cũng nên có email domain riêng chứ nhỉ!
Mình cũng đã thử với Outlook, dù mình chính là người sở hữu tài khoản admin của cả group đấy nhưng cũng setup thất bại, có thể do cấu hình sai hoặc cấu hình chưa apply lên toàn bộ group (con azure rất hay lag - theo cảm nhận của mình) nên mình cũng chưa tìm được cách sử dụng mail dạng này cho CTFd. Nếu tìm được mình sẽ update ngay lập tức!
Bây giờ thì mình đang sử dụng dịch vụ email doanh nghiệp của hostinger với giá 50k/1 tháng (để test thôi những hostinger là một bên cũng khá có tiếng và giá của họ cũng rất rẻ nếu mua dài hạn), cũng có những dịch vụ free như Lark họ cung cấp cả một hệ sinh thái doanh nghiệp free. Mình đã thêm các bản ghi DNS vào bên quản trị tên miền của mình (phannhat.id.vn) để có thể tạo mail. Bằng cách này mình có thể gửi và nhận email từ những địa chỉ như [email protected] hoặc [email protected] nói chung là mọi thứ trước dấu @ mình đều có thể control được.
Những yêu cầu của CTFd như sau:
-
Mail From Address: đây là địa chỉ CTFd sẽ sử dụng để gửi mail
-
Mail Server Addess: địa chỉ của SMTP server
-
Mail Server Port: port của SMTP server
-
Nếu bạn tự host SMTP server và tự có domain cũng như setrule đặc biệt thì bạn sẽ không cần đến option “Use Mail Server Username and Password” nhưng nếu không, bạn sẽ cần tick lựa chọn này và điền username và password của email bạn muốn cho CTFd sử dụng để gửi!
-
2 option bên dưới sẽ tuỳ dịch vụ bạn sử dụng. Với mình sử dụng Hostinger thì sẽ chọn TLS/SSL nhưng mình test với Outlook thì họ lại dùng STARTTLS
Tất cả những thứ bạn phải điền đều có thể tìm thấy tại dịch vụ mail mà bạn sử dụng, ảnh trên là của hostinger và mình sẽ điền vào CTFd như sau:
Option Use Mail Server Username and Password mình sẽ không hiện ở đây để bảo mật tài khoản của mình nhưng mình đã điền Username và Password đăng nhập Webmail của hostinger vào đấy r nhé!
Click Update và test đăng kí thử một user thôi!
Như bạn thấy Email đã được gửi từ [email protected] như mình đã config dù thực thế địa chỉ này chỉ là alias của 1 địa chỉ khác :V
Tổng kết
Đã kết thúc phần 2 của loạt bài hướng dẫn setup CTFd cơ bản, bài viết này đã đi qua những bước để cài theme và cũng như setup hệ thống mail. Mong nó sẽ hỗ trợ bạn trong quá trình setup, mình đã tốn khá nhiều công sức mới có thể thực hiện được thành công những bước trên do thiếu kinh nghiệm và thiếu người hướng dẫn. Nên nếu bạn chưa hiểu hoặc cần hỗ trợ, hãy liên hệ mình qua mọi kênh liên lạc, mình sẽ cố gắng hỗ trợ hết sức có thể nhé!