เคล็ดลับความปลอดภัยในระบบ GNU / Linux

ฉันได้เตรียมโพสต์นี้สำหรับ บล็อคของฉัน บางครั้งพวกเขาแนะนำให้ฉันเข้ามา DesdeLinuxและเนื่องจากไม่มีเวลาเขาจึงไม่สามารถหรือเต็มใจได้ ถ้าฉันค่อนข้างขี้เกียจ ????. แต่ตอนนี้พวกเขาถูกนัดหยุดงานอย่างที่เราพูดในคิวบา ...

นี่คือการรวบรวมกฎการรักษาความปลอดภัยขั้นพื้นฐานสำหรับผู้ดูแลระบบในกรณีนี้สำหรับผู้ที่จัดการเครือข่าย / ระบบตาม GNU / Linux ... อาจมีมากกว่านี้และในความเป็นจริงมีมากกว่านี้เป็นเพียงตัวอย่างของ ฉันท่องไปทั่วโลกของลินุกซ์ ...

0- อัปเดตระบบของเราอยู่เสมอด้วยการอัปเดตความปลอดภัยล่าสุด

0.1- การอัปเดตที่สำคัญรายการส่งเมล [ที่ปรึกษาด้านความปลอดภัย Slackware, ที่ปรึกษาด้านความปลอดภัย Debianในกรณีของฉัน]

1- การเข้าถึงเซิร์ฟเวอร์เป็นศูนย์โดยบุคลากรที่ไม่ได้รับอนุญาต

1.1- ใช้รหัสผ่านกับ ไบออส ของเซิร์ฟเวอร์ของเรา

1.2- ไม่ต้องบูตด้วยซีดี / ดีวีดี

1.3- รหัสผ่านใน GRUB / Lilo

2- นโยบายรหัสผ่านที่ดีอักขระที่เป็นตัวเลขและตัวอักษรและอื่น ๆ

2.1- อายุของรหัสผ่าน [Password Aging] ด้วยคำสั่ง“ chage” ตลอดจนจำนวนวันระหว่างการเปลี่ยนรหัสผ่านและวันที่เปลี่ยนล่าสุด

2.2- หลีกเลี่ยงการใช้รหัสผ่านก่อนหน้านี้:

ใน /etc/pam.d/common-password

password sufficient pam_unix.so use_auth ok md5 shadow remember 10

นี่คือวิธีที่คุณเปลี่ยนรหัสผ่านและจะเตือนคุณถึง 10 รหัสผ่านล่าสุดที่ผู้ใช้มี

3- นโยบายการจัดการ / การแบ่งกลุ่มที่ดีของเครือข่ายของเรา [เราเตอร์สวิตช์ vlans] และไฟร์วอลล์ตลอดจนการกรองกฎ INPUT, OUTPUT, FORWARD [NAT, SNAT, DNAT]

4- เปิดใช้งานการใช้เชลล์ [/ etc /hells] ผู้ใช้ที่ไม่ต้องล็อกอินเข้าสู่ระบบ get / bin / false หรือ / bin / nologin

5- บล็อกผู้ใช้เมื่อการเข้าสู่ระบบล้มเหลว [faillog] รวมทั้งควบคุมบัญชีผู้ใช้ระบบ

passwd -l pepe -> บล็อกผู้ใช้ pepe passwd -v pepe -> ปลดบล็อกผู้ใช้ pepe

6- เปิดใช้งานการใช้ "sudo" ไม่เคยเข้าสู่ระบบในฐานะรูทโดย ssh "ไม่เคย" ในความเป็นจริงคุณต้องแก้ไขการกำหนดค่า ssh เพื่อให้บรรลุวัตถุประสงค์นี้ ใช้คีย์สาธารณะ / ส่วนตัวบนเซิร์ฟเวอร์ของคุณด้วย sudo

7- สมัครในระบบของเราหลักการของสิทธิพิเศษน้อยที่สุด"

8- ตรวจสอบบริการของเราเป็นครั้งคราว [netstat -lptun] สำหรับเซิร์ฟเวอร์แต่ละเครื่องของเรา เพิ่มเครื่องมือตรวจสอบที่สามารถช่วยเราในงานนี้ [Nagios, Cacti, Munin, Monit, Ntop, Zabbix]

9- ติดตั้ง IDSs, Snort / AcidBase, Snotby, Barnyard, OSSEC

10- Nmap เป็นเพื่อนของคุณใช้เพื่อตรวจสอบเครือข่ายย่อย / เครือข่ายย่อยของคุณ

11- แนวทางปฏิบัติด้านความปลอดภัยที่ดีใน OpenSSH, Apache2, Nginx, MySQL, PostgreSQL, Postfix, Squid, Samba, LDAP [สิ่งที่ใช้กันมากที่สุด] และบริการอื่น ๆ ที่คุณต้องการในเครือข่ายของคุณ

12- เข้ารหัสการสื่อสารทั้งหมดในขณะที่เป็นไปได้ในระบบของเรา SSL, gnuTLS, StarTTLS, Digest ฯลฯ ... และหากคุณจัดการข้อมูลที่ละเอียดอ่อนให้เข้ารหัสฮาร์ดไดรฟ์ของคุณ !!!

13- อัปเดตเซิร์ฟเวอร์อีเมลของเราด้วยกฎความปลอดภัยบัญชีดำและการป้องกันสแปมล่าสุด

14- การบันทึกกิจกรรมในระบบของเราด้วยนาฬิกาบันทึกและการตรวจสอบการบันทึก

15- ความรู้และการใช้เครื่องมือเช่น top, sar, vmstat, ฟรีและอื่น ๆ

sar -> รายงานกิจกรรมของระบบ vmstat -> กระบวนการหน่วยความจำระบบ i / o กิจกรรม cpu ฯลฯ iostat -> cpu i / o status mpstat -> สถานะหลายโปรเซสเซอร์และ pmap การใช้งาน -> การใช้หน่วยความจำโดยกระบวนการฟรี - > หน่วยความจำ iptraf -> การรับส่งข้อมูลแบบเรียลไทม์ของ ethstatus เครือข่ายของเรา -> ตรวจสอบสถิติอีเธอร์เน็ตบนคอนโซล -> การตรวจสอบเครือข่ายกราฟิก ss -> สถานะซ็อกเก็ต [ข้อมูลซ็อกเก็ต tcp, udp, ซ็อกเก็ตดิบ, ซ็อกเก็ต DCCP] tcpdump -> การวิเคราะห์โดยละเอียด de Traffic vnstat -> การตรวจสอบการรับส่งข้อมูลเครือข่ายของอินเทอร์เฟซที่เลือก mtr -> เครื่องมือวินิจฉัยและการวิเคราะห์การโอเวอร์โหลดในเครือข่าย ethtool -> สถิติเกี่ยวกับการ์ดเครือข่าย

สำหรับตอนนี้มันคือทั้งหมด ฉันรู้ว่ามีคำแนะนำด้านความปลอดภัยอีกหนึ่งพันข้อในสภาพแวดล้อมประเภทนี้ แต่สิ่งเหล่านี้เป็นคำแนะนำที่ทำให้ฉันรู้สึกใกล้ชิดที่สุดหรือในบางครั้งฉันต้องใช้ / ออกกำลังกายในสภาพแวดล้อมที่ฉันดูแล

กอดและฉันหวังว่ามันจะให้บริการคุณ😀


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

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

*

*

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

  1.   โครตสึกิ dijo

    ฉันขอเชิญคุณในการแสดงความคิดเห็นเพื่อบอกเราเกี่ยวกับกฎอื่น ๆ ที่ได้รับการปรับใช้นอกเหนือจากที่กล่าวไปแล้วเพื่อเพิ่มความรู้ให้กับผู้อ่านของเรา😀

    1.    ยูกิเทรุ dijo

      ฉันจะเพิ่ม:

      1.- ใช้กฎ sysctl เพื่อป้องกันการเข้าถึง dmesg, / proc, SysRQ, กำหนด PID1 ให้กับแกน, เปิดใช้งานการป้องกันสำหรับซิมลิงค์แบบแข็งและแบบอ่อน, การป้องกันสแต็ก TCP / IP สำหรับทั้ง IPv4 และ IPv6, เปิดใช้งาน VDSO เต็มรูปแบบเพื่อการสุ่มสูงสุด ตัวชี้และการจัดสรรพื้นที่หน่วยความจำและปรับปรุงความแข็งแกร่งในการป้องกันการล้นของบัฟเฟอร์

      2.- สร้างกำแพงกันไฟประเภท SPI (Stateful Package Inspect) เพื่อป้องกันการเชื่อมต่อที่ไม่ได้สร้างขึ้นหรือได้รับอนุญาตก่อนหน้านี้จากการเข้าถึงระบบ

      3.- หากคุณไม่มีบริการที่รับประกันการเชื่อมต่อที่มีสิทธิ์ระดับสูงจากสถานที่ห่างไกลเพียงแค่เพิกถอนการเข้าถึงโดยใช้ access.conf หรือหากไม่สามารถเข้าถึงได้ให้เปิดใช้งานการเข้าถึงเฉพาะผู้ใช้หรือกลุ่มเฉพาะ

      4.- ใช้ขีด จำกัด อย่างหนักเพื่อป้องกันการเข้าถึงบางกลุ่มหรือผู้ใช้จากการทำให้ระบบของคุณไม่เสถียร มีประโยชน์มากในสภาพแวดล้อมที่มีผู้ใช้หลายคนใช้งานอยู่ตลอดเวลา

      5.- TCPWrappers เป็นเพื่อนของคุณหากคุณอยู่ในระบบที่รองรับการใช้งานมันจะไม่เจ็บดังนั้นคุณสามารถปฏิเสธการเข้าถึงจากโฮสต์ใด ๆ เว้นแต่จะมีการกำหนดค่าไว้ก่อนหน้านี้ในระบบ

      6. - สร้างคีย์ SSH RSA อย่างน้อย 2048 บิตหรือดีกว่าคือ 4096 บิตโดยมีคีย์ตัวอักษรและตัวเลขมากกว่า 16 อักขระ

      7.- คุณเขียนได้ทั่วโลกแค่ไหน? การตรวจสอบสิทธิ์ในการอ่าน - เขียนของไดเรกทอรีของคุณนั้นไม่เลวเลยและเป็นวิธีที่ดีที่สุดในการหลีกเลี่ยงการเข้าถึงโดยไม่ได้รับอนุญาตในสภาพแวดล้อมที่มีผู้ใช้หลายคนโดยไม่ต้องพูดถึงว่าการเข้าถึงข้อมูลที่ไม่ได้รับอนุญาตนั้นยากขึ้นสำหรับการเข้าถึงข้อมูลที่คุณไม่ได้รับอนุญาต ไม่ต้องการให้ไม่มีใครเห็น

      8.- ติดตั้งพาร์ติชันภายนอกที่ไม่สมควรได้รับด้วยตัวเลือก noexec, nosuid, nodev

      9.- ใช้เครื่องมือเช่น rkhunter และ chkrootkit เพื่อตรวจสอบเป็นระยะว่าระบบไม่ได้ติดตั้งรูทคิตหรือมัลแวร์ มาตรการที่รอบคอบหากคุณเป็นหนึ่งในผู้ที่ติดตั้งสิ่งต่างๆจากที่เก็บที่ไม่ปลอดภัยจาก PPA หรือเพียงแค่รวบรวมโค้ดสดจากไซต์ที่ไม่น่าเชื่อถือ

      1.    โครตสึกิ dijo

        อืมมอร่อย ... ข้อคิดดีเพิ่มพวก ... 😀

    2.    วิลเลียมโมเรโนเรเยส dijo

      ใช้การควบคุมการเข้าถึงบังคับกับ SElinux หรือไม่

  2.   อาร์มันโดฟ dijo

    บทความที่ดีมาก

    1.    โครตสึกิ dijo

      ขอบคุณเพื่อน😀

  3.   Joaco dijo

    สวัสดีและถ้าฉันเป็นผู้ใช้ปกติฉันควรใช้ su หรือ sudo?
    ฉันใช้ su เพราะฉันไม่ชอบ sudo เพราะใครก็ตามที่มีรหัสผ่านผู้ใช้ของฉันสามารถเปลี่ยนสิ่งที่ต้องการในระบบแทนด้วย su no

    1.    โครตสึกิ dijo

      บนพีซีของคุณไม่ต้องกังวลกับการใช้ su คุณสามารถใช้งานได้โดยไม่มีปัญหาบนเซิร์ฟเวอร์ขอแนะนำอย่างยิ่งให้ปิดการใช้งาน su และใช้ sudo หลายคนบอกว่ามันเกิดจากการตรวจสอบว่าใครเป็นผู้ดำเนินการคำสั่งใดและ sudo ทำงานนั้น ... โดยเฉพาะบนพีซีของฉันฉันใช้ของเขาเช่นเดียวกับคุณ ...

      1.    Joaco dijo

        แน่นอนว่าฉันไม่รู้จริงๆว่ามันทำงานบนเซิร์ฟเวอร์อย่างไร แม้ว่าสำหรับฉันแล้วดูเหมือนว่า sudo จะมีข้อได้เปรียบที่คุณสามารถให้สิทธิพิเศษแก่ผู้ใช้คอมพิวเตอร์เครื่องอื่นได้หากฉันไม่เข้าใจผิด

    2.    แอนดรู dijo

      บทความที่น่าสนใจฉันเข้ารหัสไฟล์บางไฟล์ด้วย gnu-gpg เช่นเดียวกับสิทธิ์ขั้นต่ำในกรณีที่คุณต้องการดำเนินการตัวอย่างเช่นไบนารีของต้นกำเนิดที่ไม่รู้จักหายไปในทะเลอันยิ่งใหญ่ของข้อมูลบนดิสก์ฉันจะลบการเข้าถึงฟังก์ชันบางอย่างได้อย่างไร เหรอ?

      1.    โครตสึกิ dijo

        ฉันเป็นหนี้ส่วนนั้นให้กับคุณแม้ว่าฉันคิดว่าคุณควรรันเป็น sudo / root เท่านั้นโปรแกรมที่เชื่อถือได้นั่นคือมันมาจาก repo ของคุณ ...

      2.    ยูกิเทรุ dijo

        ฉันจำได้ว่าอ่านว่ามีวิธีเปิดใช้งานความสามารถในการรูทในคู่มือบน GNU / Linux และ UNIX ถ้าฉันพบฉันจะใส่มัน😀

      3.    ยูกิเทรุ dijo

        @andrew นี่คือบทความที่ฉันพูดถึงและความช่วยเหลือเพิ่มเติม

        http://www.cis.syr.edu/~wedu/seed/Labs/Capability_Exploration/Capability_Exploration.pdf

        http://linux.die.net/man/7/capabilities

        https://wiki.archlinux.org/index.php/Capabilities

      4.    ตุ๊ย dijo

        และกรง chown เพื่อเรียกใช้ไบนารีที่ไม่รู้จัก?

    3.    ยูกิเทรุ dijo

      การใช้ sudo ตลอดเวลาจะดีกว่ามาก

    4.    Elav dijo

      หรือคุณสามารถใช้ sudo แต่ จำกัด เวลาที่จำรหัสผ่าน

  4.   เควินโรดริเกซ dijo

    เครื่องมือที่คล้ายกันที่ฉันใช้ในการตรวจสอบพีซี "iotop" แทน "iostat", "htop" ที่ยอดเยี่ยม "ตัวจัดการงาน", การตรวจสอบแบนด์วิดท์ "iftop"

  5.   มอนิโตลินุกซ์ dijo

    หลายคนคิดว่าเกินจริง แต่ฉันเคยเห็นการโจมตีเพื่อรวมเซิร์ฟเวอร์เข้ากับบ็อตเน็ต

    https://twitter.com/monitolinux/status/594235592260636672/photo/1

    ps: ขอทานชาวจีนและความพยายามที่จะแฮ็กเซิร์ฟเวอร์ของฉัน

  6.   ตุ๊ย dijo

    สิ่งที่สะดวกเช่นกันคือการใช้กรง chown ในการให้บริการดังนั้นหากพวกเขาถูกโจมตีด้วยเหตุผลบางประการพวกเขาจะไม่ทำให้ระบบเสียหาย

  7.   diab dijo

    การใช้คำสั่ง ps นั้นยอดเยี่ยมสำหรับการตรวจสอบและอาจเป็นส่วนหนึ่งของการดำเนินการเพื่อตรวจสอบข้อบกพร่องด้านความปลอดภัย การรัน ps -ef แสดงกระบวนการทั้งหมดคล้ายกับด้านบน แต่จะแสดงความแตกต่างบางอย่าง การติดตั้ง iptraf เป็นเครื่องมืออื่นที่อาจใช้งานได้

  8.   Claudio J. Concepcion ความเชื่อมั่น dijo

    ผลงานที่ดี

    ฉันจะเพิ่ม: SELinux หรือ Apparmor ขึ้นอยู่กับ distro เปิดใช้งานเสมอ

    จากประสบการณ์ของตัวเองฉันตระหนักว่าการปิดใช้งานส่วนประกอบเหล่านั้นเป็นวิธีปฏิบัติที่ไม่ดี เรามักจะทำเมื่อเราจะติดตั้งหรือกำหนดค่าบริการโดยมีข้ออ้างว่ามันทำงานได้โดยไม่มีปัญหาเมื่อสิ่งที่เราควรทำจริงๆคือเรียนรู้ที่จะจัดการกับบริการนั้น

    คำอวยพร

  9.   GnuLinux ?? dijo

    1. จะเข้ารหัสระบบไฟล์ทั้งหมดได้อย่างไร? คุ้มไหม ??
    2. จะต้องมีการถอดรหัสทุกครั้งที่ระบบจะอัปเดตหรือไม่?
    3. การเข้ารหัสระบบไฟล์ทั้งหมดของเครื่องเหมือนกับการเข้ารหัสไฟล์อื่น ๆ หรือไม่?

    1.    ยูกิเทรุ dijo

      คุณรู้ได้อย่างไรว่าคุณรู้ว่าคุณกำลังพูดถึงอะไร?

  10.   หอยโข่ง dijo

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

  11.   โทน dijo

    นโยบายความปลอดภัยที่ดีและสะดวกที่สุดคืออย่าหวาดระแวง
    ลองดูมันผิด

  12.   ทูตสวรรค์ dijo

    ฉันใช้ csf และเมื่อปลดล็อกไคลเอนต์ที่ใส่รหัสผ่านผิดในการเข้าถึงบางอย่างมันทำให้กระบวนการล่าช้า แต่ก็ทำได้ มันปกติ?

    ฉันกำลังมองหาคำสั่งเพื่อปลดบล็อกจาก ssh ... คำแนะนำใด ๆ