GNU / Linux에서 보안 극대화

안녕 친구 DesdeLinux, lo prometido es deuda y aquí va un post de Linux 시스템의 보호를 극대화하는 방법 그리고 그대로 안전한 서버, PC 또는 랩톱의 정보를 보호하는 것 외에도 침입자로부터 !!!!

시작

Fail2ban : 무차별 대입 액세스를 시도하는 원격 연결을 페널티하거나 차단하여 작동하는 시스템 침입을 방지하기 위해 Python으로 작성된 애플리케이션입니다.

설치 :

Fedora, RHEL, CentOS :

yum install fail2ban

Debian, Ubuntu :

apt-get install fail2ban

환경:

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local nano /etc/fail2ban/jail.local

[DEFAULT]라는 부분에서 주석을 제거하고 #bantime = 3600을 다음과 같이 수정합니다.

#bantime = 3600 bantime = 604800

[sshd] 부분에서는 enabled = true를 소개합니다.

#enabled = true 활성화 = true

CTRL + O로 저장하고 CTRL + X로 닫습니다.

서비스를 시작합니다.

Fedora, RHEL, CentOS :

systemctl enable fail2ban.service systemctl start fail2ban.service

Debian, Ubuntu :

서비스 fail2ban 시작

ssh를 사용하여 루트 액세스를 거부합니다.

시스템을 보호하기 위해 루트 사용자를 통해 ssh를 거부합니다. 이를 위해 다음과 같이 / etc / ssh / sshd_config 파일을 편집합니다.

cp sshd_config sshd_config.bck nano / etc / ssh / sshd_config

주석을 제거하고 변경합니다.

# 프로토콜 2 프로토콜 2

주석을 제거하고 변경합니다.

#PermitRootLogin yes PermitRootLogin 아니요

CTRL + O로 저장하고 CTRL + X로 닫습니다.

서비스를 시작합니다.

Fedora, RHEL, CentOS :

systemctl sshd.service 활성화 systemctl start sshd.service

Debian, Ubuntu :

서비스 sshd 시작

암호를 사용하여 SSH 서버에 대한 액세스를 거부하고 RSA 키로 만 SSH를 허용합니다.

PC1을 Server1에 연결하려면 먼저 PC1에 키를 생성해야합니다. 사용자와 PC1의 루트없이 다음을 실행합니다.

ssh-keygen -t rsa -b 8192 (일반적으로 1024에서 2048 사이의 키가 사용되므로 보안 키 이상을 생성 함)

비밀번호가 있으면 Server1에 업로드합니다.

ssh-copy-id 사용자 @ server_ip

이 작업이 완료되면 Server1에 연결하고 루트 권한으로 nano / etc / ssh / sshd_config 파일을 수정합니다.

ssh 사용자 @ Server1 nano / etc / ssh / sshd_config

#PasswordAuthentication yes라고 표시된 줄을 다음과 같이 변경합니다.

#PasswordAuthentication 예
비밀번호 인증 번호

CTRL + O로 저장하고 CTRL + X로 닫습니다.

ssh 서비스를 다시 시작합니다.

Fedora, RHEL, CentOS :

systemctl restart sshd.service

Debian, Ubuntu :

서비스 sshd 다시 시작

SSH 수신 포트 변경

다시 / etc / ssh / sshd_config를 편집하고 포트를 참조하는 부분에서는 다음과 같이 둡니다.

# Port 22 Port 2000 (또는 2000보다 큰 다른 숫자.이 예에서는 이것을 사용합니다.)

CTRL + O로 저장하고 CTRL + X로 닫습니다.

ssh 서비스를 다시 시작합니다.

Fedora, RHEL, CentOS :

systemctl restart sshd.service

Debian, Ubuntu :

서비스 sshd 다시 시작

fail2ban을 사용하는 경우 포트를 조정하는 sshd에 대한 구성을 변경해야합니다.

nano /etc/fail2ban/jail.local

[sshd]
port    = ssh, 2000

[sshd-ddos]
port    = ssh, 2000

[dropbear]
port    = ssh, 2000

[selinux-ssh]
port    = ssh, 2000

CTRL + O로 저장하고 CTRL + X로 닫습니다.

서비스를 갱신합니다 :

Fedora, RHEL, CentOS :

systemctl 재시작 fail2ban.service

Debian, Ubuntu :

서비스 fail2ban 다시 시작

방화벽

Fedora, RHEL, CentOS :

Selinux 및 Iptables는 이러한 시스템에서 기본적으로 활성화되며이 방식으로 계속할 것을 권장합니다. iptables로 포트를 여는 방법은 무엇입니까? 이전에 변경 한 ssh 포트의 새 포트 2000을 여는 방법을 살펴 보겠습니다.

열다:

나노 / etc / sysconfig / iptables

기본 ssh 포트 22를 참조하는 줄을 수정하고 다음과 같이 둡니다.

# -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 2000 -j ACCEPT

CTRL + O로 저장하고 CTRL + X로 닫습니다.

서비스를 다시 시작합니다.

systemctl 재시작 iptables

데비안, 우분투 :

데비안 또는 우분투 및 파생 제품에는 Netfilter를 매우 쉽게 관리 할 수있는 UFW 방화벽이 있습니다.

설치 :

apt-get 설치 ufw ufw 활성화

열린 포트의 상태를 보려면 다음을 실행합니다.

ufw 상태

포트를 열려면 (이 예에서는 새 ssh 포트 2000이됩니다) :

ufw 허용 2000

포트를 거부하려면 (이 경우 ssh의 기본 포트 22) :

ufw deny 22 ufw delete deny 22

그리고 준비된 친구들. 이렇게하면 기계를 안전하게 유지할 수 있습니다. 댓글을 남기고 다음 시간까지 : D.


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.

  1.   죄인

    및 다음과 같은 암호화 시스템 : https://www.dyne.org/software/tomb/

    1.    죄인

      또한 tty로 연결하는 경우 집에있는 사용자를 케이지합니다.
      http://olivier.sessink.nl/jailkit/index.html#intro
      https://operativoslinux.wordpress.com/2015/02/21/enjaular-usuarios-en-linux/ (쉬운 방법)

    2.    유키 테루

      전체 파일 시스템을 암호화하는 것이 훨씬 더 좋고 안전합니다.

    3.    피터 체코

      Linux의 보안에 관한 다음 자습서에서는이를 고려합니다. D.

      1.    유키 테루

        sysctl을 사용하여 커널을 강화하고, 커널을 지원하는 커널에서 임의 힙 및 Exec-Shield를 활성화하고, dmesg 및 / proc 파일 시스템에 대한 액세스를 활성화하고, 감사 데몬을 실행하고, TCP 보호 SYN을 활성화하는 것에 대해 이야기하는 것도 좋습니다. , / dev / mem에 대한 액세스 제한, 시스템에 위험하거나 안전하지 않을 수있는 TCP / IP 스택 옵션 비활성화 (리디렉션, 에코, 소스 라우팅), 사용자가 강력한 암호를 생성하도록 pam_cracklib 사용, Tomoyo와 같은 MAC 시스템 사용의 중요성 , AppArmor 및 SELinux.

  2.  

    매우 유용한!!!! 내가 찾고 있던 바로 감사합니다 🙂

    1.    피터 체코

      당신은 환영받는 친구입니다 :).

  3.   엔젤 블레이드

    아파치를 사용하는 경우 봇을 피하기 위해 mod_rewrite로 규칙을 추가하는 것은 문제가되지 않습니다. 매우 유용한

    http://perishablepress.com/eight-ways-to-blacklist-with-apaches-mod_rewrite/

    1.    ROLO

      nginx의 경우 트릭이나 구성이 있습니까?

  4.   ROLO

    데비안 8에서 / etc / ssh / sshd_config 파일에는 이미 프로토콜 2가 활성화되어 있고 PermitRootLogin 기능은 비밀번호없이 옵션이 있습니다 (인증 키와 개인 키가있는 컴퓨터에서만 root를 입력 할 수 있음)

    데비안 8의 pd firewalld가 도착하여 ufw에 작게 남겨 둡니다.

    1.    사냥꾼

      펌 보셨나요? 규칙이 정의되는 방식이 마음에 듭니다.

      http://ferm.foo-projects.org/download/examples/webserver.ferm

    2.    피터 체코

      글쎄요, 데비안 8이 방화벽을 사용하는 것은 매우 좋습니다.

  5.   사냥꾼

    공격자가 로컬 PC의 IP로 패킷을 제조하고 DOS를 매우 쉽게 만드는 fail2ban에주의하십시오.

    1.    헤 리

      Man, 로컬 PC IP 및 루프백 IP는 Fail2ban 목록에서 제외됩니다.
      그렇지 않다면 우리는 오 탐지를 가질 수 있습니다.

  6.   제이슨 소토

    훌륭하고 효과적인 권장 사항… 물론, 서버 환경에서 웹 사이트를 호스팅하는 경우 추가 단계가 필요합니다…. 우리는 현재 웹 애플리케이션을위한 최고의 보안 관행에 따라 GNU / Linux로 서버를 준비하고 보호하는 bash 스크립트에 지나지 않는 JackTheStripper라는 프로젝트를 유지하고 있습니다. http://www.jsitech.com/jackthestripper ....

    1.    유키 테루

      kernel.randomize_va_space = 2의 값을 유지하고 싶지만 멋진 스크립트

      1.    제이슨 소토

        좋은 점은 실행하기 전에 필요에 따라 약간 수정할 수 있다는 것입니다. ..... A Hello ...

    2.    피터 체코

      안녕하세요, 물론 제 게시물은 보험에 가입 한 기지를 다루며 LAMP 또는 FTP, SFTP, BIND 및 긴 등의 시스템에 설치된 서비스에 따라 각자 자신을 어느 정도 보호해야합니다.

      보안에 대한 다음 게시물에서는 이러한 문제를 다룰 것입니다.

      긍정적 인 피드백에 감사드립니다 :).

  7.   넥스

    @petercheco, 귀하의 가이드는 훌륭합니다. FreeeBSD 시스템에 대한 암호화 가이드가 될 것입니다. FreeBSD에 대한 두 번째 부분, 데스크톱의 구성 및 사용자 지정, 방화벽, 생성 및 무선 네트워크 구성.

    1.    피터 체코

      안녕하세요 친구,
      나는 드물게 게시하는 것을 보여 주듯이 약간 바쁘지만, 다음 FreeBSD 포스트에서 그것을 염두에 둘 것입니다.

      인사 :).

  8.   솔락 레인보우 리어

    댓글에서 평준화, 당신이 무슨 말을하는지 모르겠어요, 아무도 xD
    훌륭한 기사!

  9.   수닐

    이 보안 조치는 어떤 방식 으로든 장비를 제한하는 것을 의미합니까?

    1.    피터 체코

      아니오 ... 시스템의 정상적인 사용은 전혀 제한되지 않습니다.

  10.   죄인

    그리고 재밌는 (비극적 인) 것은 우리가 방금 Lenovo 컴퓨터에서 보았 듯이 BIOS 펌웨어가 악성 코드로 변경되면 아무 것도 중요하지 않다는 것입니다.

    1.    피터 체코

      제조업체에서 사전 설치 한 Windows를 사용하는 한 ...

      1.    죄인

        오류 : BIOS 펌웨어에 설치했음을 기억하십시오. 즉, 운영 체제 이전, 악마 이전에 다시 시작할 때마다 시스템이 시작되며, 이에 대해 아무것도 할 수 없습니다. uefi 아이디어가 원칙적으로 좋은 이유입니다.

  11.   파블로

    흥미로운 기사, 오늘 오후에 좀 더 자세히 읽어 보겠습니다. 감사합니다.

    1.    피터 체코

      천만에요 :). 기뻐요.

  12.   카를로스 베스트

    훌륭한 기사, 나는 오후 내내 그것을 읽고 즐겼습니다. 모든 것을 매우 신중하게 설명하는 데 걸리는 시간에 감사드립니다.

    칠레 인사말
    카를로스

    1.    피터 체코

      안녕하세요 카를로스,
      고마워요 :).

  13.   브리 온

    Lenovo 머신, BIOS 펌웨어가 악성 코드에 개입 된 것처럼 보이면 머신 (노트북 PC- 데스크탑 컴퓨터)은 항상 제조업체에서 Windows와 함께 설치됩니다. 위의 내용을 감안할 때 ... 게시물이 ... .petercheco?

    1.    유키 테루

      이 모든 작업을 수행하지 않아도 작동합니다. 멀웨어는 Linux가 아닌 Windows 용으로 만들어 졌기 때문입니다.

  14.   신플래그

    모든 열린 포트 중에서 ttl과 창 크기, scanlogd, apache mod 보안, grsec, selinux 또는 이와 유사한 것을 사용하는 Windows PC라고 거짓말하는 현기증 nmap과 같은 iptables에서 누락 된 많은 것들과 트릭이 있습니다. . ftp를 sftp로 바꾸고, X 포트의 각 서비스에 대한 IP 당 연결 수를 제한하여 DDoS가 서비스없이 우리를 떠나는 것을 방지하고, 수초 동안 너무 많은 UDP를 보내는 IP를 차단하십시오.

    1.    피터 체코

      당신이 제시 한 예제를 보면 새로운 사용자는 그것을 읽을 때 미쳐 버릴 것입니다 ... 당신은 모든 것을 하나의 게시물에 넣을 수 없습니다. 나는 몇 가지 항목을 만들 것입니다 :).

  15.   시니 키레

    이 시점에서 시작 서비스를 제공 할 때 archlinux에서 오류가 발생하고 상태를 지정하면 다음과 같이 표시됩니다.
    sudo systemctl 상태 fail2ban
    ● fail2ban.service-Fail2Ban 서비스
    로드 됨 :로드 됨 (/usr/lib/systemd/system/fail2ban.service; 활성화 됨; 공급 업체 사전 설정 : 비활성화 됨)
    활성 : 실패 (결과 : 시작 제한) 2015-03-20 금요일 01:10:01 CLST 이후; 1 초 전
    문서 : man : fail2ban (1)
    프로세스 : 1695 ExecStart = / usr / bin / fail2ban-client -x start (코드 = 종료 됨, 상태 = 255)

    Mar 20 01:10:01 Gundam systemd [1] : Fail2Ban 서비스를 시작하지 못했습니다.
    20 월 01 일 10:01:1 건담 systemd [2] : 유닛 failXNUMXban.service가 실패 상태로 들어갔습니다.
    20 월 01 일 10:01:1 건담 systemd [2] : failXNUMXban.service 실패.
    20 월 01 일 10:01:1 건담 시스템 [2] : failXNUMXban에 대해 너무 빨리 시작 요청 반복… 얼음
    Mar 20 01:10:01 Gundam systemd [1] : Fail2Ban 서비스를 시작하지 못했습니다.
    20 월 01 일 10:01:1 건담 systemd [2] : 유닛 failXNUMXban.service가 실패 상태로 들어갔습니다.
    20 월 01 일 10:01:1 건담 systemd [2] : failXNUMXban.service 실패.
    힌트 : 일부 줄을 줄임표로 표시하고 -l을 사용하여 전체 줄을 표시합니다.
    도움? 디:

    1.    피터 체코

      안녕하세요, systemctl enable fail2ban.service 및 systemctl start fail2ban.service로 fail2ban을 활성화 한 경우 문제는 사용자가 만든 jails 구성에 있습니다. 감옥을 확인하고 모든 것이 정상인지 확인하십시오.

      인사
      페테르체코

      1.    메이 켈 프랑코

        우선 좋은 튜토리얼입니다. 많은 것이 빠졌지 만 기본에 집중했습니다.

        shini-kire, /var/log/fail2ban.log 확인

        인사말.

      2.    피터 체코

        @Maykel Franco 감사합니다 :).

  16.   jony127

    좋은,

    fail2ban은 홈 PC에 설치하거나 서버에 더 많이 설치해야합니까 ???

    그라시아.

    1.    피터 체코

      서버보다는 더 많은 사람이 액세스 할 수있는 Wi-Fi를 사용하는 경우 좋습니다.

  17.   로드리고

    안녕 친구, Gnu / Linux 배포판의 짧은 화재 부분에서 좋은 보안 게시물이라고 생각합니다.이 댓글을 작성하는 이유는 이미 14.04에 있음을 알고 Ubuntu 15.04 배포판에서 수행하고 있기 때문입니다. 다음 문제는 다음과 같습니다. nano /etc/fail2ban/jail.local을 루트로 입력하고 sshd 부분에 시각화가없고 [DEFAULT]라는 부분에서 주석 처리를 제거하고 수정합니다. #bantime = 3600 그리고
    [sshd] 부분에서는 enabled = true를 소개합니다.
    #활성화됨 = 사실
    enabled = true
    sshd는 이전 버전으로 작업하고 있기 때문에 그럴 수없는 것 같습니다.