Cài đặt Configure Config Server Firewall (CSF) lên Debian or Ubuntu
Tường lửa máy chủ cấu hình (hoặc CSF) là tường lửa miễn phí và nâng cao dành cho hầu hết các bản phân phối Linux và VPS dựa trên Linux. Ngoài chức năng cơ bản của tường lửa – lọc gói – CSF còn bao gồm các tính năng bảo mật khác, chẳng hạn như phát hiện đăng nhập/xâm nhập/lũ lụt. CSF bao gồm tích hợp giao diện người dùng cho cPanel, DirectAdmin và Webmin, nhưng hướng dẫn này chỉ đề cập đến cách sử dụng dòng lệnh. CSF có thể nhận ra nhiều cuộc tấn công, chẳng hạn như quét cổng, tràn SYN và tấn công vũ phu đăng nhập trên nhiều dịch vụ. Nó được cấu hình để tạm thời chặn các máy khách bị phát hiện đang tấn công máy chủ đám mây.
Bạn có thể tìm thấy danh sách đầy đủ các hệ điều hành và tính năng được hỗ trợ trên trang web của ConfigServer .
Hướng dẫn này được viết cho VPS dựa trên Debian, chẳng hạn như Debian và Ubuntu. Các lệnh phải được thực thi với quyền root, bằng cách đăng nhập bằng root hoặc khởi tạo shell root bằng lệnh sau nếu sudo được cài đặt:
sudo su
Lưu ý: Hướng dẫn này đề cập đến bảo mật IPv4. Trong Linux, bảo mật IPv6 được duy trì tách biệt với IPv4. Ví dụ: “iptables” chỉ duy trì các quy tắc tường lửa cho địa chỉ IPv4 nhưng nó có một bản sao IPv6 được gọi là “ip6tables”, có thể được sử dụng để duy trì các quy tắc tường lửa cho địa chỉ mạng IPv6.
Nếu VPS của bạn được định cấu hình cho IPv6, hãy nhớ bảo mật cả giao diện mạng IPv4 và IPv6 của bạn bằng các công cụ thích hợp. Để biết thêm thông tin về các công cụ IPv6, hãy tham khảo hướng dẫn này: Cách định cấu hình công cụ để sử dụng IPv6 trên VPS Linux
Nội dung
Đặc trưng
Tường lửa máy chủ cấu hình cung cấp nhiều biện pháp bảo vệ cho VPS của bạn.
Daemon xác thực đăng nhập thất bại:
CSF kiểm tra nhật ký để phát hiện các lần đăng nhập không thành công trong khoảng thời gian định kỳ và có thể nhận ra hầu hết các nỗ lực trái phép nhằm giành quyền truy cập vào máy chủ đám mây của bạn. Bạn có thể xác định hành động mong muốn mà CSF thực hiện và sau bao nhiêu lần thử trong tệp cấu hình.
Các ứng dụng sau được hỗ trợ bởi tính năng này:
- Chuyển phát nhanh imap, Dovecot, uw-imap, Kerio
- openSSH
- cPanel, WHM, Webmail (chỉ máy chủ cPanel)
- Pure-ftpd, vsftpd, Proftpd
- Các trang web được bảo vệ bằng mật khẩu (htpasswd)
- Lỗi Mod_security (v1 và v2)
- Suhosin thất bại
- Exim SMTP AUTH
Ngoài những điều này, bạn có thể xác định các tệp đăng nhập của riêng mình bằng cách khớp biểu thức chính quy. Điều này có thể hữu ích nếu bạn có một ứng dụng ghi lại các lần đăng nhập không thành công nhưng lại chặn người dùng sau một số lần thử cụ thể.
Theo dõi quá trình
CSF có thể được cấu hình để theo dõi các quy trình nhằm phát hiện các quy trình đáng ngờ hoặc mở các cổng mạng và gửi email đến quản trị viên hệ thống nếu phát hiện thấy bất kỳ quy trình nào. Điều này có thể giúp bạn xác định và ngăn chặn hành vi khai thác có thể xảy ra trên VPS của bạn.
Xem thư mục
Việc xem thư mục sẽ giám sát /temp và các thư mục có liên quan khác để phát hiện các tập lệnh độc hại, đồng thời gửi email đến quản trị viên hệ thống khi phát hiện thấy tập lệnh.
dịch vụ tin nhắn
Việc kích hoạt tính năng này cho phép CSF gửi một tin nhắn nhiều thông tin hơn tới máy khách khi áp dụng một lệnh chặn. Tính năng này có cả ưu và nhược điểm. Một mặt, việc kích hoạt nó sẽ cung cấp nhiều thông tin hơn cho khách hàng và do đó có thể ít gây ra sự thất vọng hơn, chẳng hạn như trong trường hợp đăng nhập thất bại. Mặt khác, điều này cung cấp nhiều thông tin hơn, có thể khiến kẻ tấn công tấn công VPS của bạn dễ dàng hơn.
Chống lũ cảng
Cài đặt này cung cấp khả năng bảo vệ chống lại các cuộc tấn công tràn cổng, chẳng hạn như các cuộc tấn công từ chối dịch vụ (DoS). Bạn có thể chỉ định số lượng kết nối được phép trên mỗi cổng trong khoảng thời gian bạn muốn. Bạn nên bật tính năng này vì nó có thể ngăn chặn kẻ tấn công buộc dịch vụ của bạn ngừng hoạt động. Bạn nên chú ý đến những giới hạn mình đặt ra, vì cài đặt quá hạn chế sẽ làm mất kết nối khỏi các máy khách thông thường. Một lần nữa, cài đặt quá dễ dãi có thể cho phép kẻ tấn công thành công trong cuộc tấn công lũ lụt.
gõ cổng
Việc gõ cổng cho phép khách hàng thiết lập kết nối với máy chủ không có cổng nào được mở. Máy chủ chỉ cho phép khách hàng kết nối với các cổng chính sau khi chuỗi gõ cổng thành công. Bạn có thể thấy điều này hữu ích nếu bạn cung cấp các dịch vụ chỉ dành cho đối tượng hạn chế.
Bảo vệ giới hạn kết nối
Tính năng này có thể được sử dụng để giới hạn số lượng kết nối hoạt động đồng thời từ một địa chỉ IP đến mỗi cổng. Khi được cấu hình đúng cách, điều này có thể ngăn chặn các hành vi lạm dụng trên máy chủ, chẳng hạn như các cuộc tấn công DoS.
Chuyển hướng địa chỉ cổng/IP
CSF có thể được cấu hình để chuyển hướng các kết nối từ IP/cổng này sang IP/cổng khác. Lưu ý: Sau khi chuyển hướng, địa chỉ nguồn của máy khách sẽ là địa chỉ IP của máy chủ. Điều này không tương đương với dịch địa chỉ mạng (NAT).
Tích hợp giao diện người dùng
Ngoài giao diện dòng lệnh, CSF còn cung cấp tích hợp UI cho cPanel và Webmin. Nếu bạn không quen với dòng lệnh Linux, bạn có thể thấy tính năng này hữu ích.
danh sách chặn IPTính năng này cho phép CSF tự động tải xuống danh sách các địa chỉ IP bị chặn từ các nguồn do bạn xác định.
Cài đặt tường lửa ConfigServer
Bước 1: Tải xuống
Tường lửa máy chủ cấu hình hiện không có sẵn trong kho Debian hoặc Ubuntu và phải được tải xuống từ trang web của Máy chủ cấu hình.
wget http://download.configserver.com/csf.tgz
Thao tác này sẽ tải CSF về thư mục làm việc hiện tại của bạn.
Bước 2: Giải nén
Tệp đã tải xuống là tệp được nén từ gói tar và phải được giải nén và giải nén trước khi có thể sử dụng.
tar -xzf csf.tgz
Bước 3: Cài đặt
Nếu bạn đang sử dụng tập lệnh cấu hình tường lửa khác, chẳng hạn như UFW, bạn nên tắt nó trước khi tiếp tục. Quy tắc iptables sẽ tự động bị xóa.
UFW có thể bị vô hiệu hóa bằng cách chạy lệnh sau:
ufw disable
Bây giờ là lúc thực thi tập lệnh cài đặt của CSF.
cd csf
sh install.sh
Tường lửa hiện đã được cài đặt, nhưng bạn nên kiểm tra xem các mô-đun iptables cần thiết có sẵn hay không.
perl /usr/local/csf/bin/csftest.pl
Nếu có lỗi như sau
Thì bạn cần chạy thêm 1 số lệnh sau
apt-get remove --auto-remove nftables
apt-get purge nftables
apt-get install iptables
Lúc này bạn chạy lại lệnh
perl /usr/local/csf/bin/csftest.pl
Tường lửa sẽ hoạt động nếu không có lỗi nghiêm trọng nào được báo cáo.
Lệnh kiểm tra phiên bản csf
csf -v
Lệnh kiểm tra trạng thái csf
service csf status
Lệnh khởi động csf
service csf start
Lưu ý: Địa chỉ IP của bạn đã được thêm vào danh sách trắng nếu có thể. Ngoài ra, cổng SSH đã được mở tự động ngay cả khi nó sử dụng cổng tùy chỉnh. Tường lửa cũng được cấu hình để bật chế độ thử nghiệm, điều đó có nghĩa là các quy tắc iptables sẽ tự động bị xóa năm phút sau khi khởi động CSF. Tính năng này sẽ bị tắt khi bạn biết rằng cấu hình của mình hoạt động và bạn sẽ không bị khóa.
Cấu hình cơ bản
CSF có thể được cấu hình bằng cách chỉnh sửa tệp cấu hình csf.conf của nó trong /etc/csf:
nano /etc/csf/csf.conf
Những thay đổi có thể được áp dụng bằng lệnh:
csf -r
Bước 1: Cấu hình cổng
Càng có ít quyền truy cập vào VPS của bạn thì máy chủ của bạn càng an toàn hơn. Tuy nhiên, không phải tất cả các cổng đều có thể bị đóng vì khách hàng phải có khả năng sử dụng dịch vụ của bạn.
Các cổng được mở theo mặc định như sau:
TCP_IN = "20,21,22,25,53,80,110,143, 443,465,587,993,995"
TCP_OUT = "20,21,22,25,53,80,110,113, 443"
UDP_IN = "20,21,53"
UDP_OUT = "20,21,53,113,123"
Các dịch vụ sử dụng cổng mở:
- Cổng 20: Truyền dữ liệu FTP
- Cổng 21: Điều khiển FTP
- Cổng 22: Vỏ bảo mật (SSH)
- Cổng 25: Giao thức truyền thư đơn giản (SMTP)
- Cổng 53: Hệ thống tên miền (DNS)
- Cổng 80: Giao thức truyền siêu văn bản (HTTP)
- Cổng 110: Giao thức bưu điện v3 (POP3)
- Cổng 113: Dịch vụ xác thực/giao thức nhận dạng
- Cổng 123: Giao thức thời gian mạng (NTP)
- Cổng 143: Giao thức truy cập tin nhắn Internet (IMAP)
- Cổng 443: Giao thức truyền siêu văn bản qua SSL/TLS (HTTPS)
- Cổng 465: Thư mục điểm hẹn URL cho SSM (Cisco)
- Cổng 587: Gửi tin nhắn email (SMTP)
- Cổng 993: Giao thức truy cập tin nhắn Internet qua SSL (IMAPS)
- Cổng 995: Giao thức bưu điện 3 qua TLS/SSL (POP3S)
Có thể bạn không sử dụng hết các dịch vụ này nên có thể đóng những cổng không được sử dụng. Tôi khuyên bạn nên đóng tất cả các cổng (xóa số cổng trong danh sách), sau đó thêm các cổng bạn cần.
Dưới đây là các bộ cổng sẽ được mở nếu bạn đang chạy dịch vụ được liệt kê:
Trên bất kỳ máy chủ nào:
TCP_IN: 22,53 TCP_OUT: 22,53,80,113,443 UPD_IN: 53 UPD_OUT: 53,113,123
Apache:
TCP_IN: 80,443
Máy chủ ftp:
TCP_IN: 20,21 TCP_OUT: 20,21 UPD_IN: 20,21 UPD_OUT:20,21
Máy chủ thư:
TCP_IN: 25,110,143,587,993,995 TCP_OUT: 25,110
Máy chủ MySQL (nếu cần truy cập từ xa)
TCP_IN: 3306 TCP_OUT: 3306
Lưu ý: Nếu bạn đang sử dụng IPv6 cho các dịch vụ của mình, bạn cũng nên định cấu hình TCP6_IN, TCP6_OUT, UPD6_IN và UPD6_OUT tương tự như cách định cấu hình các cổng IPv4 trước đó.
Bạn có thể tìm thấy danh sách đầy đủ các cổng TCP và UDP trên Wikipedia . Bạn nên mở cổng của tất cả các dịch vụ bạn sử dụng.
Bước 2: Cài đặt bổ sung
CSF cung cấp rất nhiều tùy chọn khác nhau trong các tệp cấu hình của nó. Một số cài đặt được sử dụng phổ biến nhất được giải thích bên dưới.
ICMP_IN Đặt ICMP_IN thành 1 cho phép ping đến máy chủ của bạn và 0 từ chối các yêu cầu như vậy. Nếu bạn đang lưu trữ bất kỳ dịch vụ công cộng nào, bạn nên cho phép các yêu cầu ICMP vì chúng có thể được sử dụng để xác định xem dịch vụ của bạn có khả dụng hay không.
ICMP_IN_LIMIT Đặt số lượng yêu cầu ICMP (ping) được phép từ một địa chỉ IP trong một khoảng thời gian nhất định. Thường không cần thay đổi giá trị mặc định (1/s)
DENY_IP_LIMIT Đặt số lượng địa chỉ IP bị chặn mà CSF theo dõi. Nên hạn chế số lượng địa chỉ IP bị từ chối vì việc có quá nhiều khối có thể làm chậm hiệu suất của máy chủ.
DENY_TEMP_IP_LIMIT Tương tự như trên nhưng dành cho khối địa chỉ IP tạm thời.
PACKET_FILTER Lọc các gói không hợp lệ, không mong muốn và bất hợp pháp.
SYNFLOOD, SUNFLOOD_RATE và SYNFLOOD_BURST Điều này cung cấp khả năng bảo vệ chống lại các cuộc tấn công lũ lụt SYN. Điều này làm chậm quá trình khởi tạo mọi kết nối, vì vậy bạn chỉ nên kích hoạt tính năng này nếu bạn biết rằng máy chủ của mình đang bị tấn công.
CONNLIMIT Giới hạn số lượng kết nối hoạt động đồng thời trên cổng.
Giá trị:
22;5;443;20
sẽ cho phép 5 kết nối đồng thời trên cổng 22 và 20 kết nối đồng thời trên cổng 443.
PORTFLOOD Giới hạn số lượng kết nối trong mỗi khoảng thời gian mà các kết nối mới có thể được thực hiện tới các cổng cụ thể.
Giá trị:
22;tcp;5;250
sẽ hạn chế chặn địa chỉ IP nếu có hơn 5 kết nối được thiết lập trên cổng 22 bằng giao thức TCP trong vòng 250 giây. Khối này sẽ bị xóa sau khi 250 giây trôi qua sau khi gói cuối cùng được khách hàng gửi đến cổng này. Bạn có thể thêm nhiều cổng hơn bằng cách phân tách chúng bằng dấu phẩy như mô tả bên dưới.
port1;protocol1;connection_count1;time1,port2;protocol2;connection_count2;time2
Thêm cài đặt
CSF cung cấp nhiều loại cài đặt không được đề cập trong hướng dẫn này. Các giá trị mặc định nhìn chung là tốt và có thể được sử dụng trên hầu hết mọi máy chủ. Cài đặt mặc định được định cấu hình để ngăn chặn hầu hết các cuộc tấn công lũ lụt, quét cổng và các nỗ lực truy cập trái phép.
Tuy nhiên, nếu bạn muốn điều chỉnh cấu hình chi tiết hơn, vui lòng đọc nhận xét trong /etc/csf/csf.conf và chỉnh sửa chúng theo ý muốn.
Bước 3: Áp dụng các thay đổi
Bất cứ khi nào bạn thay đổi cài đặt trong csf.conf, bạn nên lưu tệp và khởi động lại CSF để các thay đổi có hiệu lực.
Khi bạn đã sẵn sàng cấu hình, hãy đóng tệp bằng cách nhấn Ctrl + X. Khi bạn được hỏi có lưu thay đổi hay không, hãy nhấn Y để lưu thay đổi.
Sau này, bạn nên áp dụng các thay đổi bằng cách khởi động lại CSF bằng lệnh:
csf -r
Nếu mọi thứ diễn ra như kế hoạch và bạn vẫn có thể truy cập vào máy chủ, hãy mở lại tệp cấu hình:
nano /etc/csf/csf.conf
và thay đổi cài đặt KIỂM TRA ở đầu tệp cấu hình thành 0 như hiển thị bên dưới:
TESTING = "0"
Lưu tệp và áp dụng các thay đổi bằng lệnh:
csf -r
Chặn và cho phép địa chỉ IP
Một trong những tính năng cơ bản nhất của tường lửa là khả năng chặn một số địa chỉ IP nhất định. Bạn có thể từ chối (danh sách đen), cho phép (danh sách trắng) hoặc bỏ qua địa chỉ IP bằng cách chỉnh sửa các tệp cấu hình csf.deny, csf.allow và csf.ignore.
Chặn địa chỉ IP
Nếu bạn muốn chặn một địa chỉ hoặc dải IP, hãy mở csf.deny.
nano /etc/csf/csf.deny
Tất cả các địa chỉ hoặc dải IP bị chặn đều dành một dòng trong tệp csf.deny. Nếu bạn muốn chặn địa chỉ IP 1.2.3.4 cũng như dải IP 2.3.*.*, bạn nên thêm các dòng sau vào tệp:
1.2.3.4 2.3.0.0/16
Dải IP được biểu thị bằng ký hiệu CIDR
Cho phép địa chỉ IP
Nếu bạn muốn loại trừ một địa chỉ hoặc dải IP khỏi tất cả các khối và bộ lọc, bạn có thể thêm chúng vào tệp csf.allow. Xin lưu ý rằng các địa chỉ IP được phép vẫn được phép ngay cả khi chúng bị chặn rõ ràng trong tệp csf.deny.
Việc cho phép địa chỉ IP hoạt động tương tự như chặn chúng. Điểm khác biệt duy nhất là bạn nên chỉnh sửa /etc/csf/csf.allow thay vì csf.deny.
nano /etc/csf/csf.allow
Bỏ qua địa chỉ IP
CSF cũng cung cấp khả năng loại trừ địa chỉ IP khỏi bộ lọc tường lửa. Địa chỉ IP trong csf.ignore sẽ vượt qua bộ lọc tường lửa và chỉ có thể bị chặn nếu được liệt kê trong tệp csf.
nano /etc/csf/csf.ignore
Để các thay đổi có hiệu lực, bạn nên khởi động lại CSF sau khi chỉnh sửa bất kỳ tệp nào được mô tả ở trên bằng lệnh:
csf -r