Chào bạn từ DesdeLinux, những gì đã hứa là một món nợ và đây là một bài viết về cách bảo vệ tối đa hệ thống Linux và giữ nguyên như vậy an toàn khỏi những kẻ xâm nhập cũng như bảo vệ thông tin trên máy chủ, PC hoặc máy tính xách tay của bạn !!!!
Comenzando
Fail2ban: là một ứng dụng được viết bằng Python để ngăn chặn sự xâm nhập vào hệ thống, hoạt động bằng cách phạt hoặc chặn các kết nối từ xa cố gắng truy cập thô bạo.
Cài đặt:
Fedora, RHEL, CentOS:
yum install fail2ban
Debian, Ubuntu:
apt-get install fail2ban
Cài đặt:
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local nano /etc/fail2ban/jail.local
Trong phần có tên [DEFAULT], chúng tôi bỏ ghi chú và sửa đổi #bantime = 3600 để nó như thế này:
#bantime = 3600 bantime = 604800
Trong phần [sshd], chúng tôi giới thiệu enable = true, để nó như thế này:
#enabled = true đã bật = true
Chúng tôi lưu bằng CTRL + O và đóng bằng CTRL + X
Chúng tôi bắt đầu dịch vụ:
Fedora, RHEL, CentOS:
systemctl kích hoạt fail2ban.service systemctl start fail2ban.service
Debian, Ubuntu:
dịch vụ fail2ban start
Từ chối quyền truy cập root bằng ssh:
Để bảo vệ máy tính của mình, chúng tôi sẽ từ chối ssh thông qua người dùng root. Để thực hiện việc này, chúng tôi chỉnh sửa tệp / etc / ssh / sshd_config như sau:
cp sshd_config sshd_config.bck nano / etc / ssh / sshd_config
Chúng tôi bỏ ghi chú và thay đổi
#Protocol 2 Giao thức 2
Chúng tôi bỏ ghi chú và thay đổi
#PermitRootLogin có PermitRootLogin không
Chúng tôi lưu bằng CTRL + O và đóng bằng CTRL + X
Chúng tôi bắt đầu dịch vụ:
Fedora, RHEL, CentOS:
systemctl kích hoạt sshd.service systemctl start sshd.service
Debian, Ubuntu:
dịch vụ sshd bắt đầu
Từ chối quyền truy cập vào máy chủ ssh bằng mật khẩu và chỉ cho phép ssh bằng các khóa RSA
Nếu chúng ta muốn kết nối PC1 với Server1, điều đầu tiên chúng ta phải làm là tạo khóa của chúng ta trên PC1. Với người dùng của chúng tôi và không cần root trên PC1, chúng tôi thực hiện:
ssh-keygen -t rsa -b 8192 (điều này tạo ra một khóa an toàn hơn vì các khóa từ 1024 đến 2048 thường được sử dụng)
Sau khi chúng tôi có mật khẩu của mình, chúng tôi tải nó lên Server1:
ssh-copy-id user @ server_ip
Sau khi hoàn tất, chúng tôi sẽ kết nối với Server1 và sửa đổi tệp nano / etc / ssh / sshd_config với quyền root:
ssh user @ Server1 nano / etc / ssh / sshd_config
Chúng tôi thay đổi dòng có nội dung #PasswordAuthentication thành có:
#PasswordAuthentication có
PasswordAuthentication không
Chúng tôi lưu bằng CTRL + O và đóng bằng CTRL + X
Chúng tôi khởi động lại dịch vụ ssh:
Fedora, RHEL, CentOS:
systemctl khởi động lại sshd.service
Debian, Ubuntu:
khởi động lại sshd dịch vụ
Thay đổi cổng nghe ssh
Một lần nữa chúng tôi chỉnh sửa / etc / ssh / sshd_config và trong phần tham chiếu đến cổng, chúng tôi để nó như thế này:
# Cổng 22 Cổng 2000 (hoặc bất kỳ số nào khác lớn hơn 2000. Trong các ví dụ của chúng tôi, chúng tôi sẽ sử dụng điều này.)
Chúng tôi lưu bằng CTRL + O và đóng bằng CTRL + X
Chúng tôi khởi động lại dịch vụ ssh:
Fedora, RHEL, CentOS:
systemctl khởi động lại sshd.service
Debian, Ubuntu:
khởi động lại sshd dịch vụ
Nếu họ sử dụng fail2ban thì cần phải thay đổi cấu hình liên quan đến việc điều chỉnh cổng sshd.
nano /etc/fail2ban/jail.local [sshd] port = ssh, 2000 [sshd-ddos] port = ssh, 2000 [dropbear] port = ssh, 2000 [selinux-ssh] port = ssh, 2000
Chúng tôi lưu bằng CTRL + O và đóng bằng CTRL + X
Chúng tôi gia hạn dịch vụ:
Fedora, RHEL, CentOS:
systemctl khởi động lại fail2ban.service
Debian, Ubuntu:
dịch vụ fail2ban khởi động lại
tường lửa
Fedora, RHEL, CentOS:
Selinux và Iptables được kích hoạt theo mặc định trên các hệ thống này và tôi khuyên bạn nên tiếp tục theo cách này. Làm thế nào để mở một cổng với iptables? Hãy xem cách mở cổng ssh mới 2000 mà chúng tôi đã thay đổi trước đó:
Mở:
nano / etc / sysconfig / iptables
và chúng tôi sửa đổi dòng tham chiếu đến cổng ssh mặc định 22 và để nó như thế này:
Trạng thái # -A INPUT -m - trạng thái MỚI -m tcp -p tcp - cổng 22 -j CHẤP NHẬN -A INPUT -p tcp -m trạng thái - trạng thái MỚI -m tcp - cổng 2000 -j CHẤP NHẬN
Chúng tôi lưu bằng CTRL + O và đóng bằng CTRL + X
Chúng tôi khởi động lại dịch vụ:
systemctl khởi động lại iptables
Debian, Ubuntu:
Trong Debian hoặc Ubuntu và các dẫn xuất, chúng tôi có một tường lửa UFW sẽ giúp cuộc sống của chúng tôi trở nên dễ dàng vì nó quản lý Netfilter rất dễ dàng.
Cài đặt:
apt-get install ufw ufw enable
Để xem trạng thái của các cổng đang mở, chúng tôi thực hiện:
tình trạng ufw
Để mở một cổng (trong ví dụ của chúng tôi, nó sẽ là cổng ssh mới 2000):
ufw cho phép 2000
Để từ chối một cổng (trong trường hợp của chúng tôi, nó sẽ là cổng mặc định 22 của ssh):
ufw từ chối 22 ufw xóa từ chối 22
Và những người bạn đã sẵn sàng. Bằng cách này, họ sẽ giữ cho máy của bạn an toàn. Đừng quên bình luận và cho đến lần sau: D.
và một hệ thống mã hóa như: https://www.dyne.org/software/tomb/
Và cũng lồng người dùng trong nhà của bạn nếu họ kết nối bằng tty:
http://olivier.sessink.nl/jailkit/index.html#intro
https://operativoslinux.wordpress.com/2015/02/21/enjaular-usuarios-en-linux/ (cách dễ dàng)
Nó tốt hơn và an toàn hơn nhiều để mã hóa toàn bộ hệ thống tệp.
Đối với hướng dẫn sau về bảo mật trong Linux, tôi sẽ tính đến nó: D.
Sẽ rất tốt nếu nói về việc làm cứng kernel bằng sysctl, kích hoạt heap ngẫu nhiên và Exec-Shield trong kernel hỗ trợ nó, cho phép truy cập vào dmesg và hệ thống tệp / proc, chạy trình nền kiểm tra, cho phép bảo vệ TCP SYN , hạn chế quyền truy cập vào / dev / mem, vô hiệu hóa các tùy chọn ngăn xếp TCP / IP có thể gây nguy hiểm hoặc không an toàn cho hệ thống (chuyển hướng, echo, định tuyến nguồn), sử dụng pam_cracklib để người dùng tạo mật khẩu mạnh, tầm quan trọng của việc sử dụng hệ thống MAC như Tomoyo , AppArmor và SELinux.
rất hữu dụng!!!! chỉ là những gì tôi đang tìm kiếm, cảm ơn
Không có chi đâu bạn :).
Nếu bạn sử dụng apache, bạn không cần thêm quy tắc với mod_rewrite để tránh bot. Rất hữu dụng
http://perishablepress.com/eight-ways-to-blacklist-with-apaches-mod_rewrite/
và đối với nginx có thủ thuật hay cấu hình nào không?
Trong debian 8, tệp / etc / ssh / sshd_config đã có Giao thức 2 đang hoạt động và chức năng PermitRootLogin có tùy chọn không cần mật khẩu (bạn chỉ có thể nhập root bằng khóa xác thực và từ máy tính có khóa riêng)
pd trong debian 8 firewalld đã đến khiến nó nhỏ đối với ufw
Bạn đã thấy ferm chưa? Tôi thích cách các quy tắc được xác định.
http://ferm.foo-projects.org/download/examples/webserver.ferm
Tôi rất vui khi Debian 8 sử dụng firewalld vì nó rất tốt ...
Hãy cẩn thận với fail2ban mà kẻ tấn công tạo ra các gói bằng ip của máy tính cục bộ và làm cho DOS rất dễ dàng.
Man, IP máy tính cục bộ và IP lặp lại bị loại trừ khỏi danh sách Fail2ban.
Nếu không, chúng tôi có thể có kết quả dương tính giả.
Khuyến nghị tốt và rất hiệu quả… Tất nhiên, trong môi trường máy chủ và nếu chúng tôi đang lưu trữ một trang web, nó bao gồm các bước bổ sung…. Chúng tôi hiện đang duy trì một dự án có tên JackTheStripper, không gì khác hơn là một tập lệnh bash chuẩn bị và bảo mật một máy chủ với GNU / Linux theo các phương pháp bảo mật tốt nhất, cho các ứng dụng web ... bạn có thể biết dự án tại http://www.jsitech.com/jackthestripper ....
Script đẹp mặc dù tôi muốn giữ nguyên giá trị của kernel.randomize_va_space = 2
Điều tốt là trước khi chạy nó, bạn có thể sửa đổi nó một chút theo nhu cầu của bạn ..... A Xin chào ...
Xin chào, tất nhiên bài đăng của tôi liên quan đến một cơ sở được bảo hiểm và mỗi người phải tự bảo vệ mình ít nhiều tùy thuộc vào các dịch vụ mà nó đã cài đặt trong hệ thống của mình như LAMP hoặc FTP, SFTP, BIND và một vân vân dài:)…
Trong bài tiếp theo về bảo mật, tôi sẽ giải quyết những vấn đề này.
Cảm ơn các ý kiến phản hồi tích cực :).
@petercheco, hướng dẫn của bạn rất tuyệt vời, đây sẽ là hướng dẫn mã hóa tốt cho hệ thống FreeeBSD, tôi không biết khi nào bạn sẽ làm phần thứ hai về FreeBSD, về cấu hình và tùy chỉnh máy tính để bàn, về Tường lửa, về cách tạo và cấu hình mạng không dây.
Chào bạn,
Tôi hơi bận vì các bài đăng không thường xuyên hiển thị, nhưng tôi sẽ ghi nhớ điều đó cho bài đăng FreeBSD tiếp theo.
Một lời chào :).
Đó là mức độ trong các bình luận, tôi không biết bạn đang nói về cái gì, không ai cả xD
Bài báo tuyệt vời!
Hành động bảo mật này ngụ ý giới hạn thiết bị theo bất kỳ cách nào?
Không ... Việc sử dụng bình thường của hệ thống không bị giới hạn.
Và điều buồn cười (bi thảm) là, như chúng ta vừa thấy với các máy Lenovo, nếu phần sụn bios bị giả mạo bằng phần mềm độc hại, bạn không làm gì quan trọng.
Miễn là bạn sử dụng Windows do nhà sản xuất cài đặt sẵn ...
lỗi: hãy nhớ rằng họ đã cài đặt nó trong phần sụn bios, tức là nó khởi động cùng với hệ thống ở mỗi lần khởi động lại, trước hệ điều hành, trước cả những con quỷ, và nó không cho phép bạn làm bất cứ điều gì chống lại các cuộc tấn công nhỏ. có thể được thực hiện, đó là lý do tại sao ý tưởng uefi là tốt về nguyên tắc.
Bài báo thú vị, chiều nay tôi sẽ đọc kỹ hơn. Cảm ơn bạn.
Không có gì :). Tôi rất vui.
Bài báo xuất sắc, tôi tự giải trí cả buổi chiều khi đọc nó. Thời gian bạn dành để giải thích mọi thứ rất cẩn thận được đánh giá cao,
Lời chào từ Chile
Carlos
Chao Carlos,
Cảm ơn rất nhiều :).
Các máy Lenovo, nếu phần sụn bios dường như bị can thiệp bởi phần mềm độc hại, thì các máy (Máy tính xách tay PC-Máy tính để bàn) luôn được nhà sản xuất cài đặt Windows, với điều kiện trên… có đăng… .petercheco?
Ngay cả khi không làm tất cả điều này, nó vẫn hoạt động, vì phần mềm độc hại được tạo ra cho Windows, không phải Linux.
Có rất nhiều thứ và thủ thuật bị thiếu trong iptables, chẳng hạn như nmap chóng mặt để tất cả các cổng đang mở, nói dối rằng nó là một máy tính windows sử dụng ttl và kích thước cửa sổ, scanlogd, apache mod security, grsec, selinux hoặc những thứ tương tự . Thay thế ftp bằng sftp, giới hạn số lượng kết nối trên mỗi IP với mỗi dịch vụ trong cổng X để tránh trường hợp trước khi DDoS, chúng khiến chúng ta không có dịch vụ, cũng như chặn các IP gửi nhiều hơn rất nhiều UDP trong rất nhiều giây.
Với những ví dụ mà bạn đã trình bày, một người dùng mới sẽ phát điên khi đọc nó ... Bạn không thể đưa mọi thứ vào một bài. Tôi sẽ thực hiện một số mục :).
Tôi gặp lỗi trong Archlinux tại thời điểm này khi cung cấp dịch vụ bắt đầu, tôi cho trạng thái của nó và điều này xuất hiện:
trạng thái sudo systemctl fail2ban
● fail2ban.service - Dịch vụ Fail2Ban
Đã tải: đã tải (/usr/lib/systemd/system/fail2ban.service; đã bật; cài đặt trước của nhà cung cấp: đã vô hiệu hóa)
Hoạt động: không thành công (Kết quả: giới hạn bắt đầu) kể từ T2015 / 03-20-01 10:01:1 CLST; XNUMXs trước
Tài liệu: man: fail2ban (1)
Quy trình: 1695 ExecStart = / usr / bin / fail2ban-client -x start (code = exited, status = 255)
20 tháng 01 10:01:1 Gundam systemd [2]: Không thể khởi động Dịch vụ FailXNUMXBan.
20 tháng 01 10:01:1 Gundam systemd [2]: Đơn vị failXNUMXban.service vào trạng thái không thành công.
20 tháng 01 10:01:1 Gundam systemd [2]: failXNUMXban.service không thành công.
20 tháng 01 10:01:1 Gundam systemd [2]: yêu cầu bắt đầu lặp lại quá nhanh khiến failXNUMXban… ice
20 tháng 01 10:01:1 Gundam systemd [2]: Không thể khởi động Dịch vụ FailXNUMXBan.
20 tháng 01 10:01:1 Gundam systemd [2]: Đơn vị failXNUMXban.service vào trạng thái không thành công.
20 tháng 01 10:01:1 Gundam systemd [2]: failXNUMXban.service không thành công.
Gợi ý: Một số dòng có dấu chấm lửng, sử dụng -l để hiển thị đầy đủ.
một số trợ giúp? D:
Xin chào, nếu bạn bật fail2ban bằng systemctl enable fail2ban.service và systemctl start fail2ban.service, vấn đề sẽ nằm ở cấu hình jails mà bạn đã thực hiện. Vui lòng kiểm tra nhà tù của bạn và xác minh rằng mọi thứ đều ổn.
lời chúc mừng
PeterCzech
Trước hết là hướng dẫn tốt. Nhiều thứ còn thiếu nhưng bạn đã tập trung vào những điều cơ bản.
shini-kire, hãy kiểm tra /var/log/fail2ban.log của bạn
Chúc mừng.
Xin cảm ơn @Maykel Franco :).
tốt,
fail2ban họ nên cài đặt nó trên máy tính gia đình hay nhiều hơn cho máy chủ ???
Cảm ơn bạn.
Thay vì đối với các máy chủ nhưng nếu bạn đang sử dụng một Wi-Fi được nhiều người hơn bạn truy cập, thì điều đó tốt ...
Xin chào bạn, tôi nghĩ rằng đó là một bài đăng bảo mật tốt trong phần cháy ngắn trong các bản phân phối Gnu / Linux, tôi viết nhận xét này bởi vì tôi đang làm điều đó trong bản phân phối Ubuntu 14.04 và biết rằng nó đã ở phiên bản 15.04 thì điều gì sẽ xảy ra. vấn đề sau tôi nhập nano /etc/fail2ban/jail.local làm gốc và tôi không có hình dung trong phần sshd và lưu Trong phần có tên [DEFAULT] chúng tôi bỏ ghi chú và sửa đổi #bantime = 3600 và
Trong phần [sshd], chúng tôi giới thiệu enable = true, để nó như thế này:
# đã bật = đúng
đã kích hoạt = true
Nó không xuất hiện của sshd có thể là do tôi đang làm việc với phiên bản trước, cảm ơn