Tối đa hóa bảo mật trên GNU / Linux

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.


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.

  1.   tội nhân dijo

    và một hệ thống mã hóa như: https://www.dyne.org/software/tomb/

    1.    tội nhân dijo

      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)

    2.    yukiteru dijo

      Nó tốt hơn và an toàn hơn nhiều để mã hóa toàn bộ hệ thống tệp.

    3.    peterczech dijo

      Đối với hướng dẫn sau về bảo mật trong Linux, tôi sẽ tính đến nó: D.

      1.    yukiteru dijo

        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.

  2.   kuk dijo

    rất hữu dụng!!!! chỉ là những gì tôi đang tìm kiếm, cảm ơn

    1.    peterczech dijo

      Không có chi đâu bạn :).

  3.   lưỡi thiên thần dijo

    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/

    1.    rolo dijo

      và đối với nginx có thủ thuật hay cấu hình nào không?

  4.   rolo dijo

    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

    1.    thợ săn dijo

      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

    2.    peterczech dijo

      Tôi rất vui khi Debian 8 sử dụng firewalld vì nó rất tốt ...

  5.   thợ săn dijo

    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.

    1.    Hery dijo

      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ả.

  6.   Jason soto dijo

    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 ....

    1.    yukiteru dijo

      Script đẹp mặc dù tôi muốn giữ nguyên giá trị của kernel.randomize_va_space = 2

      1.    Jason soto dijo

        Đ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 ...

    2.    peterczech dijo

      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 :).

  7.   nex dijo

    @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.

    1.    peterczech dijo

      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 :).

  8.   Cầu vồng Solrak dijo

    Đó 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!

  9.   xunil dijo

    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?

    1.    peterczech dijo

      Không ... Việc sử dụng bình thường của hệ thống không bị giới hạn.

  10.   tội nhân dijo

    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.

    1.    peterczech dijo

      Miễn là bạn sử dụng Windows do nhà sản xuất cài đặt sẵn ...

      1.    tội nhân dijo

        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.

  11.   Pablo dijo

    Bài báo thú vị, chiều nay tôi sẽ đọc kỹ hơn. Cảm ơn bạn.

    1.    peterczech dijo

      Không có gì :). Tôi rất vui.

  12.   Carlos Best dijo

    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

    1.    peterczech dijo

      Chao Carlos,
      Cảm ơn rất nhiều :).

  13.   brion dijo

    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?

    1.    yukiteru dijo

      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.

  14.   Cờ tổng hợp dijo

    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.

    1.    peterczech dijo

      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 :).

  15.   shini kire dijo

    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:

    1.    peterczech dijo

      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

      1.    maykel franco dijo

        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.

      2.    peterczech dijo

        Xin cảm ơn @Maykel Franco :).

  16.   jony127 dijo

    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.

    1.    peterczech dijo

      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 ...

  17.   Rodrigo dijo

    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