เพิ่มความปลอดภัยสูงสุดบน GNU / Linux

สวัสดีเพื่อนจาก DesdeLinux,สิ่งที่สัญญาไว้คือหนี้ และนี่คือโพสต์เกี่ยวกับ วิธีเพิ่มการป้องกันระบบ Linux และอยู่อย่างนั้น ปลอดภัย จากผู้บุกรุกรวมทั้งปกป้องข้อมูลบนเซิร์ฟเวอร์พีซีหรือแล็ปท็อปของคุณ !!!!

Comenzando

ล้มเหลว2แบน: เป็นแอปพลิเคชันที่เขียนด้วย Python เพื่อป้องกันการบุกรุกเข้าสู่ระบบซึ่งทำหน้าที่โดยการลงโทษหรือบล็อกการเชื่อมต่อระยะไกลที่พยายามบังคับให้เข้าถึง

การติดตั้ง:

Fedora, RHEL, CentOS:

yum install fail2ban

Debian, Ubuntu:

apt-get install fail2ban

การตั้งค่า:

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local นาโน /etc/fail2ban/jail.local

ในส่วนที่เรียกว่า [DEFAULT] เรายกเลิกการแสดงความคิดเห็นและแก้ไข #bantime = 3600 โดยปล่อยไว้ดังนี้:

#bantime = 3600 bantime = 604800

ในส่วน [sshd] เราแนะนำ enable = true ปล่อยไว้ดังนี้:

#enabled = true เปิดใช้งาน = true

บันทึกด้วย CTRL + O และปิดด้วย CTRL + X

เราเริ่มให้บริการ:

Fedora, RHEL, CentOS:

systemctl เปิดใช้งาน fail2ban.service systemctl start fail2ban.service

Debian, Ubuntu:

เริ่มบริการ fail2ban

ปฏิเสธการเข้าถึงรูทโดยใช้ ssh:

เพื่อปกป้องเครื่องของเราเราจะปฏิเสธ ssh ผ่านผู้ใช้รูท ในการดำเนินการนี้เราแก้ไขไฟล์ / etc / ssh / sshd_config ดังนี้:

cp sshd_config sshd_config.bck นาโน / etc / ssh / sshd_config

เราไม่แสดงความคิดเห็นและการเปลี่ยนแปลง

# โปรโตคอล 2 โปรโตคอล 2

เราไม่แสดงความคิดเห็นและการเปลี่ยนแปลง

#PermitRootLogin ใช่ PermitRootLogin no

บันทึกด้วย CTRL + O และปิดด้วย CTRL + X

เราเริ่มให้บริการ:

Fedora, RHEL, CentOS:

systemctl เปิดใช้งาน sshd.service systemctl start sshd.service

Debian, Ubuntu:

เริ่มบริการ sshd

ปฏิเสธการเข้าถึงเซิร์ฟเวอร์ ssh โดยใช้รหัสผ่านและอนุญาตให้ใช้ ssh ด้วยคีย์ RSA เท่านั้น

หากเราต้องการเชื่อมต่อกับ PC1 ไปยัง Server1 สิ่งแรกที่เราต้องทำคือสร้างคีย์ของเราบน PC1 ด้วยผู้ใช้ของเราและไม่มีรูทบน PC1 เราดำเนินการ:

ssh-keygen -t rsa -b 8192 (สิ่งนี้สร้างคีย์ที่ปลอดภัยมากกว่าเนื่องจากปกติจะใช้คีย์จาก 1024 ถึง 2048)

เมื่อเรามีรหัสผ่านแล้วเราจะอัปโหลดไปที่ Server1:

ssh-copy-id ผู้ใช้ @ server_ip

เมื่อเสร็จแล้วเราจะเชื่อมต่อกับ Server1 ของเราและแก้ไขไฟล์ nano / etc / ssh / sshd_config ด้วยสิทธิ์ root:

ผู้ใช้ ssh @ Server1 nano / etc / ssh / sshd_config

เราเปลี่ยนบรรทัดที่ระบุว่า #PasswordAuthentication ใช่ตามนี้:

#PasswordAuthentication ใช่
รหัสผ่าน

บันทึกด้วย CTRL + O และปิดด้วย CTRL + X

เราเริ่มบริการ ssh ใหม่:

Fedora, RHEL, CentOS:

systemctl รีสตาร์ท sshd.service

Debian, Ubuntu:

บริการ sshd เริ่มต้นใหม่

เปลี่ยนพอร์ตการฟัง ssh

เราแก้ไข / etc / ssh / sshd_config อีกครั้งและในส่วนที่อ้างถึงพอร์ตเราปล่อยไว้ดังนี้:

# พอร์ต 22 พอร์ต 2000 (หรือหมายเลขอื่น ๆ ที่มากกว่า 2000 ในตัวอย่างของเราเราจะใช้สิ่งนี้)

บันทึกด้วย CTRL + O และปิดด้วย CTRL + X

เราเริ่มบริการ ssh ใหม่:

Fedora, RHEL, CentOS:

systemctl รีสตาร์ท 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 มาดูวิธีเปิดพอร์ตใหม่ 2000 ของพอร์ต ssh ที่เราเปลี่ยนไปก่อนหน้านี้:

เปิด:

นาโน / etc / sysconfig / iptables

และเราแก้ไขบรรทัดที่อ้างถึงพอร์ต ssh เริ่มต้น 22 และปล่อยไว้เช่นนี้:

# -A อินพุต -m state --state ใหม่ -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

Debian, Ubuntu:

ใน Debian หรือ Ubuntu และอนุพันธ์เรามีไฟร์วอลล์ UFW ซึ่งจะทำให้ชีวิตของเราง่ายขึ้นเพราะจัดการ Netfilter ได้ง่ายมาก

การติดตั้ง:

apt-get ติดตั้ง ufw ufw เปิดใช้งาน

หากต้องการดูสถานะของพอร์ตที่เปิดเราดำเนินการ:

สถานะ ufw

ในการเปิดพอร์ต (ในตัวอย่างของเราจะเป็น ssh port 2000 ใหม่):

ufw อนุญาต 2000

ในการปฏิเสธพอร์ต (ในกรณีของเราจะเป็นพอร์ตเริ่มต้น 22 ของ ssh):

ufw ปฏิเสธ 22 ufw ลบปฏิเสธ 22

และเพื่อนพร้อม. วิธีนี้จะทำให้เครื่องของคุณปลอดภัย อย่าลืมแสดงความคิดเห็นและจนกว่าจะถึงเวลาต่อไป: D.


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา

  1.   คนบาป dijo

    และระบบเข้ารหัสเช่น: https://www.dyne.org/software/tomb/

    1.    คนบาป dijo

      และยังกักขังผู้ใช้ในบ้านของคุณหากพวกเขาเชื่อมต่อโดย tty:
      http://olivier.sessink.nl/jailkit/index.html#intro
      https://operativoslinux.wordpress.com/2015/02/21/enjaular-usuarios-en-linux/ (วิธีง่ายๆ)

    2.    ยูกิเทรุ dijo

      การเข้ารหัสระบบไฟล์ทั้งหมดจะดีกว่าและปลอดภัยกว่ามาก

    3.    peterczech dijo

      สำหรับบทช่วยสอนต่อไปนี้เกี่ยวกับความปลอดภัยใน Linux ฉันจะคำนึงถึง: D.

      1.    ยูกิเทรุ dijo

        นอกจากนี้ยังเป็นการดีที่จะพูดคุยเกี่ยวกับการทำให้เคอร์เนลแข็งขึ้นผ่าน sysctl การเปิดใช้งานฮีปแบบสุ่มและ Exec-Shield ในเคอร์เนลที่รองรับทำให้สามารถเข้าถึง dmesg และระบบไฟล์ / proc โดยรันการตรวจสอบ daemon เปิดใช้งานการป้องกัน TCP SYN จำกัด การเข้าถึง / dev / mem ปิดใช้งานตัวเลือกสแต็ก TCP / IP ที่อาจเป็นอันตรายหรือไม่ปลอดภัยต่อระบบ (การเปลี่ยนเส้นทางเสียงสะท้อนการกำหนดเส้นทางต้นทาง) ใช้ pam_cracklib เพื่อให้ผู้ใช้สร้างรหัสผ่านที่คาดเดายากความสำคัญของ การใช้ระบบ MAC เช่น Tomoyo, AppArmor และ SELinux

  2.   กุก dijo

    มีประโยชน์มาก!!!! สิ่งที่ฉันกำลังมองหาขอบคุณ🙂

    1.    peterczech dijo

      ยินดีต้อนรับเพื่อน :).

  3.   แองเจิ้ลเบลด dijo

    หากคุณใช้ apache คุณไม่จำเป็นต้องเพิ่มกฎด้วย mod_rewrite เพื่อหลีกเลี่ยงบอท มีประโยชน์มาก

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

    1.    Rolo dijo

      และสำหรับ nginx มีเคล็ดลับหรือการกำหนดค่าอะไรบ้าง?

  4.   Rolo dijo

    ใน debian 8 ไฟล์ / etc / ssh / sshd_config มี Protocol 2 ที่ใช้งานอยู่แล้วและฟังก์ชัน PermitRootLogin อยู่กับตัวเลือกที่ไม่มีรหัสผ่าน (คุณสามารถป้อนรูทด้วยคีย์การตรวจสอบสิทธิ์และจากคอมพิวเตอร์ที่มีคีย์ส่วนตัวเท่านั้น)

    pd ใน debian 8 firewalld มาแล้วซึ่งทำให้มันมีขนาดเล็กถึง ufw

    1.    นักล่า dijo

      คุณเคยเห็น ferm? ฉันชอบวิธีการกำหนดกฎเกณฑ์

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

    2.    peterczech dijo

      ฉันดีใจที่ Debian 8 ใช้ firewalld เพราะมันดีมาก ...

  5.   นักล่า dijo

    ระวัง fail2ban ที่ผู้โจมตีสร้างแพ็กเก็ตด้วย ip ของเครื่องพีซีภายในเครื่องและทำให้ DOS เป็นเรื่องง่ายมาก

    1.    Hery dijo

      Man, IP ของพีซีในเครื่องและ IP แบบย้อนกลับจะถูกแยกออกจากรายการ Fail2ban
      ถ้าไม่เราอาจมีผลบวกปลอม

  6.   เจสันโซโต dijo

    คำแนะนำที่ดีและมีประสิทธิภาพมาก ... แน่นอนว่าในสภาพแวดล้อมเซิร์ฟเวอร์และหากเราโฮสต์เว็บไซต์จะต้องมีขั้นตอนเพิ่มเติม ... ปัจจุบันเราดูแลโครงการที่เรียกว่า JackTheStripper ซึ่งไม่มีอะไรมากไปกว่า bash Script ที่เตรียมและรักษาความปลอดภัยเซิร์ฟเวอร์ด้วย GNU / Linux ตามแนวทางปฏิบัติด้านความปลอดภัยที่ดีที่สุดสำหรับเว็บแอปพลิเคชัน http://www.jsitech.com/jackthestripper ....

    1.    ยูกิเทรุ dijo

      สคริปต์ที่ดีแม้ว่าฉันต้องการเก็บค่าของ kernel.randomize_va_space = 2

      1.    เจสันโซโต dijo

        สิ่งที่ดีคือก่อนที่จะเรียกใช้คุณสามารถปรับเปลี่ยนเล็กน้อยตามความต้องการของคุณ ..... สวัสดี ...

    2.    peterczech dijo

      สวัสดีแน่นอนโพสต์ของฉันเกี่ยวข้องกับผู้เอาประกันภัยขั้นพื้นฐานและแต่ละโพสต์จะต้องปกป้องตัวเองไม่มากก็น้อยขึ้นอยู่กับบริการที่ติดตั้งในระบบเช่น LAMP หรือ FTP, SFTP, BIND และอื่น ๆ อีกมากมาย :) ...

      ในโพสต์ถัดไปเกี่ยวกับความปลอดภัยฉันจะแก้ไขปัญหาเหล่านี้

      ขอบคุณสำหรับข้อเสนอแนะในเชิงบวก :)

  7.   NEX dijo

    @petercheco คำแนะนำของคุณยอดเยี่ยมมันจะดีเป็นคู่มือการเข้ารหัสสำหรับระบบ FreeeBSD ฉันไม่รู้ว่าคุณจะทำส่วนที่สองเกี่ยวกับ FreeBSD เกี่ยวกับการกำหนดค่าและปรับแต่งเดสก์ท็อปเกี่ยวกับไฟร์วอลล์เกี่ยวกับการสร้างและกำหนดค่าเครือข่ายไร้สาย

    1.    peterczech dijo

      ไงเพื่อน,
      ฉันค่อนข้างยุ่งเนื่องจากการโพสต์ไม่บ่อยนัก แต่ฉันจะจำไว้สำหรับโพสต์ FreeBSD ถัดไป

      ทักทาย :)

  8.   Solrak Rainbowarrior Rainbow dijo

    ระดับนี้ในความคิดเห็นฉันไม่รู้ว่าคุณกำลังพูดถึงอะไรไม่มีใคร xD
    บทความเยี่ยม!

  9.   ซูนิล dijo

    การดำเนินการด้านความปลอดภัยนี้ส่อถึงการ จำกัด อุปกรณ์ในลักษณะใด?

    1.    peterczech dijo

      ไม่ ... การใช้งานปกติของระบบไม่มีข้อ จำกัด เลย

  10.   คนบาป dijo

    และสิ่งที่น่าตลก (น่าเศร้า) ก็คืออย่างที่เราเพิ่งเห็นกับเครื่อง Lenovo หากเฟิร์มแวร์ bios ถูกดัดแปลงด้วยมัลแวร์คุณจะไม่ทำอะไรเลย

    1.    peterczech dijo

      ตราบเท่าที่คุณใช้ Windows ที่ติดตั้งไว้ล่วงหน้าโดยผู้ผลิต ...

      1.    คนบาป dijo

        ข้อผิดพลาด: โปรดจำไว้ว่าพวกเขาติดตั้งไว้ในเฟิร์มแวร์ bios นั่นคือมันเริ่มต้นด้วยระบบในการรีบูตแต่ละครั้งก่อนระบบปฏิบัติการก่อนปีศาจก่อนอื่นและจะไม่อนุญาตให้คุณทำอะไรกับมัน การโจมตีสามารถทำได้เพียงเล็กน้อยซึ่งเป็นเหตุผลว่าทำไมแนวคิด uefi จึงเป็นสิ่งที่ดี

  11.   พอล dijo

    บทความที่น่าสนใจฉันจะอ่านอย่างละเอียดในบ่ายวันนี้ ขอขอบคุณ.

    1.    peterczech dijo

      ยินดีต้อนรับครับ :). ฉันดีใจ.

  12.   คาร์ลอสที่ดีที่สุด dijo

    บทความที่ยอดเยี่ยมฉันให้ความบันเทิงตลอดบ่ายที่อ่าน ขอขอบคุณเวลาที่คุณอธิบายทุกอย่างอย่างรอบคอบ

    คำทักทายจากประเทศชิลี
    คาร์ลอ

    1.    peterczech dijo

      สวัสดีคาร์ลอส
      ขอบคุณมาก :).

  13.   ไบรออน dijo

    เครื่อง Lenovo หากดูเหมือนว่าเฟิร์มแวร์ bios ถูกแทรกแซงด้วยมัลแวร์เครื่อง (แล็ปท็อปพีซี - คอมพิวเตอร์เดสก์ท็อป) จะติดตั้ง Windows โดยผู้ผลิตเสมอตามมุมมองด้านบน ... โพสต์… .petercheco?

    1.    ยูกิเทรุ dijo

      แม้ว่าจะไม่ได้ทำทั้งหมดนี้ แต่ก็ใช้งานได้เนื่องจากมัลแวร์สร้างขึ้นสำหรับ Windows ไม่ใช่ Linux

  14.   synflag dijo

    มีหลายสิ่งและเทคนิคที่ขาดหายไปจาก iptables เช่น Nmap เวียนหัวเพื่อให้พอร์ตที่เปิดอยู่ทั้งหมดโกหกว่าเป็น windows pc ที่ใช้ ttl และขนาดหน้าต่าง scanlogd ความปลอดภัยของ apache mod grsec, selinux หรืออะไรทำนองนั้น แทนที่ ftp ด้วย sftp จำกัด จำนวนการเชื่อมต่อต่อ IP ไปยังแต่ละบริการในพอร์ต X เพื่อหลีกเลี่ยงปัญหานั้นก่อน DDoS จะทิ้งเราไปโดยไม่มีบริการรวมทั้งบล็อก IP ที่ส่ง UDP มากกว่าจำนวนมากเป็นเวลาหลายวินาที

    1.    peterczech dijo

      จากตัวอย่างที่คุณนำเสนอผู้ใช้ใหม่จะคลั่งไคล้เมื่ออ่านมัน ... คุณไม่สามารถใส่ทุกอย่างในโพสต์เดียวได้ ฉันจะทำหลายรายการ :)

  15.   ชินิคิเระ dijo

    ฉันได้รับข้อผิดพลาดใน 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 (code = exited, status = 255)

    20 มี.ค. 01:10:01 น. Gundam systemd [1]: ล้มเหลวในการเริ่ม Fail2Ban Service
    20 มี.ค. 01:10:01 น. Gundam systemd [1]: ยูนิต fail2ban.service เข้าสู่สถานะล้มเหลว
    20 มี.ค. 01:10:01 น. Gundam systemd [1]: fail2ban.service ล้มเหลว
    20 มี.ค. 01:10:01 Gundam systemd [1]: เริ่มการร้องขอซ้ำเร็วเกินไปสำหรับ fail2ban … ice
    20 มี.ค. 01:10:01 น. Gundam systemd [1]: ล้มเหลวในการเริ่ม Fail2Ban Service
    20 มี.ค. 01:10:01 น. Gundam systemd [1]: ยูนิต fail2ban.service เข้าสู่สถานะล้มเหลว
    20 มี.ค. 01:10:01 น. Gundam systemd [1]: fail2ban.service ล้มเหลว
    คำแนะนำ: เส้นบางส่วนถูกจุดไข่ปลาใช้ -l เพื่อแสดงแบบเต็ม
    ความช่วยเหลือ? D:

    1.    peterczech dijo

      สวัสดีถ้าคุณเปิดใช้งาน fail2ban ด้วย systemctl ให้เปิดใช้ fail2ban.service และ systemctl start fail2ban.service ปัญหาจะอยู่ในการกำหนดค่า jails ที่คุณทำ โปรดตรวจสอบคุกของคุณและตรวจสอบว่าทุกอย่างเรียบร้อยดี

      อาศิรพจน์
      ปีเตอร์เช็ก

      1.    เมย์เคล ฟรังโก dijo

        ก่อนอื่นการสอนที่ดี มีหลายสิ่งที่ขาดหายไป แต่คุณได้ให้ความสำคัญกับพื้นฐาน

        shini-kire ตรวจสอบ /var/log/fail2ban.log ของคุณ

        อาศิรพจน์

      2.    peterczech dijo

        ขอบคุณ @Maykel Franco :)

  16.   jony127 dijo

    ดี

    พวกเขาควรติดตั้ง fail2ban บนโฮมพีซีหรือมากกว่านั้นสำหรับเซิร์ฟเวอร์ ???

    ขอบคุณ

    1.    peterczech dijo

      ค่อนข้างสำหรับเซิร์ฟเวอร์ แต่ถ้าคุณใช้ wifi ที่เข้าถึงได้โดยคนมากกว่าคุณก็ดี ...

  17.   โรดริโก dijo

    สวัสดีเพื่อนฉันคิดว่ามันเป็นโพสต์ความปลอดภัยที่ดีในส่วนของไฟระยะสั้นใน Gnu / Linux distros ฉันเขียนความคิดเห็นนี้เพราะฉันทำในการแจกจ่าย Ubuntu 14.04 โดยรู้ว่ามันอยู่ใน 15.04 แล้วสิ่งที่เกิดขึ้นคือปัญหาต่อไปนี้ ฉันป้อน nano /etc/fail2ban/jail.local เป็นรูทและฉันไม่มีการแสดงภาพในส่วน sshd และบันทึกในส่วนที่เรียกว่า [DEFAULT] เราไม่ใส่ความคิดเห็นและแก้ไข #bantime = 3600 และ
    ในส่วน [sshd] เราแนะนำ enable = true ปล่อยไว้ดังนี้:
    #enabled = จริง
    เปิดใช้งาน = จริง
    ไม่ปรากฏว่า sshd อาจเป็นเพราะฉันกำลังทำงานในเวอร์ชันก่อนหน้าขอบคุณ