Linux สำหรับผู้เริ่มต้นหรือผู้หญิงสอนอะไรได้บ้าง? การตั้งค่าเมลระบบ systemd.service ทั่วไป

Systemd – ผู้จัดการระบบและบริการใน ระบบปฏิบัติการลินุกซ์. เมื่อพัฒนาพวกเขาพยายามออกแบบให้เข้ากันได้กับสคริปต์เริ่มต้น SysV และจัดเตรียมไว้ให้ คุณสมบัติที่มีประโยชน์, เช่น การเปิดตัวแบบขนานบริการระบบ ณ เวลาบูต การเปิดใช้งาน daemons ตามความต้องการ การสนับสนุนสแนปช็อตสถานะระบบ และตรรกะการจัดการบริการที่ขึ้นต่อกัน ใน CentOS 7 นั้น systemd จะแทนที่ Upstart เป็นระบบเริ่มต้นเริ่มต้น

ในบทความนี้เราจะดูกระบวนการจัดการบริการ systemd สำหรับ ผู้ใช้ CentOS 7. ความรู้นี้จะมีประโยชน์ในการแจกแจงอื่นๆ เนื่องจาก systemd ถูกใช้ใน Fedora มาเป็นเวลานานและมีการวางแผนใน Ubuntu 14.10 และ Debian 8 ไม่ว่าสิ่งนี้จะดีหรือไม่ก็ตามจะถูกทิ้งไว้เบื้องหลัง

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

การแนะนำ

Systemd นำแนวคิดของหน่วย systemd หน่วยต่างๆ จะแสดงด้วยไฟล์การกำหนดค่าที่อยู่ในไดเร็กทอรีใดไดเร็กทอรี:

  • /usr/lib/systemd/ระบบ/– หน่วยจาก แพ็คเกจที่ติดตั้งรอบต่อนาที
  • /รัน/systemd/ระบบ/- หน่วยที่สร้างขึ้นในรันไทม์ ไดเร็กทอรีนี้มีลำดับความสำคัญเหนือไดเร็กทอรีที่มีหน่วยที่ติดตั้งจากแพ็กเกจ
  • /etc/systemd/ระบบ/- หน่วยที่สร้างและจัดการโดยผู้ดูแลระบบ ไดเร็กทอรีนี้มีความสำคัญมากกว่าไดเร็กทอรีของหน่วยที่สร้างขึ้นขณะรันไทม์

ประเภทหน่วย Systemd:

  • .บริการ– บริการระบบ
  • .เป้า- กลุ่มหน่วย systemd
  • .ออโต้เมาท์ t – จุดเมานท์ระบบไฟล์อัตโนมัติ
  • .อุปกรณ์– ไฟล์ของอุปกรณ์ที่เคอร์เนลรู้จัก
  • .เมานต์– จุดเมานท์ระบบไฟล์
  • .เส้นทาง– ไฟล์หรือไดเร็กทอรีใน ระบบไฟล์
  • .ขอบเขต– กระบวนการที่สร้างขึ้นจากภายนอก
  • .ชิ้น– กลุ่มของหน่วยที่มีการจัดระเบียบตามลำดับชั้นที่จัดการกระบวนการของระบบ
  • .สแนปชอต– สถานะที่บันทึกไว้ของผู้จัดการ systemd
  • .ซ็อกเก็ต– ซ็อกเก็ต การสื่อสารระหว่างกระบวนการ
  • .แลกเปลี่ยน– สลับอุปกรณ์หรือสลับไฟล์ (สลับไฟล์)
  • .ตัวจับเวลา– ระบบจับเวลา

คุณสมบัติพื้นฐานของ systemd ใน CentOS 7

  • การเปิดใช้งานตามซ็อกเก็ต- ณ เวลาบูต systemd จะรับฟังซ็อกเก็ตสำหรับบริการของระบบทั้งหมด รองรับการเปิดใช้งานประเภทนี้ และส่งผ่านซ็อกเก็ตไปยังบริการเหล่านี้ทันทีหลังจากเริ่มบริการ สิ่งนี้ช่วยให้ systemd ไม่เพียงแต่เรียกใช้บริการในแบบคู่ขนานเท่านั้น แต่ยังให้ความสามารถในการรีสตาร์ทบริการโดยไม่สูญเสียข้อความใด ๆ ที่ส่งถึงพวกเขาในขณะที่บริการไม่พร้อมใช้งาน ซ็อกเก็ตที่เกี่ยวข้องยังคงอยู่และข้อความทั้งหมดอยู่ในคิว
  • การเปิดใช้งานตาม D-Bus- บริการของระบบที่ใช้ D-Bus สำหรับการสื่อสารระหว่างกระบวนการสามารถเริ่มต้นได้ตามความต้องการเมื่อใด แอปพลิเคชันไคลเอนต์พยายามติดต่อพวกเขา
  • การเปิดใช้งานตามอุปกรณ์- บริการระบบที่รองรับการเปิดใช้งานตามอุปกรณ์สามารถเริ่มต้นได้เมื่อมีการเชื่อมต่อฮาร์ดแวร์บางประเภทหรือพร้อมใช้งาน
  • การเปิดใช้งานตามเส้นทาง- บริการของระบบสามารถรองรับการเปิดใช้งานประเภทนี้ได้หากสถานะของโฟลเดอร์หรือไดเร็กทอรีเปลี่ยนแปลง
  • ภาพรวมของสถานะของระบบ- ระบบสามารถบันทึกสถานะของทุกยูนิตและกู้คืนได้ สถานะก่อนหน้าระบบ
  • การจัดการจุดเมานท์และเมาต์อัตโนมัติ- Systemd ตรวจสอบและจัดการจุดเมานท์และจุดเมานท์อัตโนมัติ
  • การขนานแบบก้าวร้าว Systemd เริ่มทำงาน บริการระบบขนานกันเนื่องจากการใช้การเปิดใช้งานแบบซ็อกเก็ต เมื่อใช้ร่วมกับบริการที่รองรับการเปิดใช้งานตามความต้องการ การเปิดใช้งานแบบขนานจะช่วยลดเวลาการบูตระบบได้อย่างมาก
  • ลอจิกธุรกรรมสำหรับการเปิดใช้งานหน่วย- ก่อนที่หน่วยจะถูกเปิดใช้งานหรือปิดใช้งาน systemd จะคำนวณการขึ้นต่อกัน สร้างธุรกรรมชั่วคราว และตรวจสอบความสมบูรณ์ของธุรกรรมนั้น หากธุรกรรมไม่เสียหาย systemd จะพยายามแก้ไขและลบงานที่ไม่จำเป็นออกโดยอัตโนมัติก่อนที่จะสร้างข้อความแสดงข้อผิดพลาด
  • เข้ากันได้กับการเริ่มต้น SysV- SystemD รองรับสคริปต์เริ่มต้น SysV อย่างสมบูรณ์ตามที่อธิบายไว้ในข้อกำหนด Linux Standard Base (LSB) ทำให้ง่ายต่อการโยกย้ายไปยัง systemd

การจัดการบริการ

CentOS เวอร์ชันก่อนหน้าใช้ SysV หรือ Upstart สคริปต์การเริ่มต้นอยู่ในไดเร็กทอรี /etc/rc.d/init.d/- สคริปต์ดังกล่าวมักจะเขียนด้วย Bash และอนุญาตให้ผู้ดูแลระบบจัดการสถานะของบริการและเดมอน ใน CentOS 7 สคริปต์เริ่มต้นจะถูกแทนที่ด้วยหน่วยบริการ

โดยวิธีการใช้งานหน่วยบริการ .บริการคล้ายกับสคริปต์เริ่มต้น หากต้องการดู เริ่ม หยุด รีบูต เปิดหรือปิดใช้งานบริการระบบ ให้ใช้คำสั่ง ระบบ- ทีม บริการและ chkconfigยังคงรวมอยู่ในระบบ แต่ด้วยเหตุผลด้านความเข้ากันได้เท่านั้น


เมื่อใช้ systemctl ไม่จำเป็นต้องระบุนามสกุลไฟล์

ด้านล่างนี้เป็นคำสั่งพื้นฐาน ระบบ:

  • systemctl เริ่มต้น name.service– เริ่มให้บริการ
  • systemctl หยุด name.service- หยุดให้บริการ
  • systemctl รีสตาร์ท name.service- เริ่มบริการใหม่
  • systemctl ลองรีสตาร์ท name.service- เริ่มบริการใหม่เฉพาะในกรณีที่บริการทำงานอยู่
  • systemctl โหลด name.service ใหม่- โหลดการกำหนดค่าบริการอีกครั้ง
  • ชื่อสถานะ systemctl.service- ตรวจสอบว่าบริการกำลังทำงานอยู่พร้อมเอาต์พุตโดยละเอียดของสถานะการบริการหรือไม่
  • systemctl is-active name.service- ตรวจสอบว่าบริการกำลังทำงานอยู่หรือไม่ด้วยคำตอบง่ายๆ: ใช้งานอยู่หรือไม่ได้ใช้งาน
  • systemctl รายการหน่วย -- ประเภทบริการ -- ทั้งหมด– แสดงสถานะของบริการทั้งหมด
  • systemctl เปิดใช้งาน name.service– เปิดใช้งานบริการ (อนุญาตให้เริ่มต้นระหว่างการเริ่มต้นระบบ)
  • systemctl ปิดการใช้งาน name.service– ปิดการใช้งานบริการ
  • systemctl เปิดใช้งาน name.service อีกครั้ง– ปิดการใช้งานบริการและเปิดใช้งานทันที
  • systemctl คือ – เปิดใช้งาน name.service– ตรวจสอบว่าเปิดใช้งานบริการแล้วหรือไม่
  • systemctl list-unit-files --type บริการ– แสดงบริการทั้งหมดและตรวจสอบว่าบริการใดเปิดใช้งานอยู่
  • ชื่อหน้ากาก systemctl.service– แทนที่ไฟล์บริการด้วย symlink เป็น /dev/null ทำให้หน่วยไม่พร้อมใช้งานสำหรับ systemd
  • systemctl เปิดโปง name.service– ส่งคืนไฟล์บริการ ทำให้หน่วยพร้อมใช้งานสำหรับ systemd

การทำงานกับเป้าหมาย Systemd

ก่อนหน้า เวอร์ชัน CentOSด้วย SysV init หรือ Upstart รวมชุด runlevels ที่กำหนดไว้ล่วงหน้าซึ่งแสดงถึงโหมดเฉพาะสำหรับการดำเนินการซึ่งมีหมายเลข 0 ถึง 6 ใน CentOS 7 แนวคิดของ runlevels ถูกแทนที่ด้วยเป้าหมาย systemd

ไฟล์เป้าหมาย systemd .เป้าได้รับการออกแบบมาเพื่อจัดกลุ่ม systemd ยูนิตอื่นๆ เข้าด้วยกันผ่านห่วงโซ่การพึ่งพา ยกตัวอย่างหน่วย graphical.เป้าหมายใช้เพื่อเริ่มเซสชันแบบกราฟิก เปิดตัวบริการระบบตัวจัดการจอแสดงผล GNOME ( gdm.บริการ) และบริการบัญชี ( บัญชี – daemon.service) และเปิดใช้งาน ผู้ใช้หลายรายเป้าหมาย- ในทางกลับกัน ผู้ใช้หลายรายเป้าหมายเริ่มบริการระบบอื่นๆ เช่น ผู้จัดการเครือข่าย (NetworkManager.บริการ) หรือ D-บัส ( dbus.บริการ) และเปิดใช้งานยูนิตเป้าหมายอื่นๆ basic.เป้าหมาย.

CentOS 7 มาพร้อมกับเป้าหมายที่กำหนดไว้ล่วงหน้าคล้ายกับ ชุดมาตรฐานวิ่งระดับ เพื่อเหตุผลด้านความเข้ากันได้ พวกเขายังมีนามแฝงสำหรับเป้าหมายเหล่านี้ที่ปรากฏโดยตรงในระดับรัน SysV

  • poweroff.target (runlevel0.target)– การปิดและการปิดระบบ
  • Rescue.target (runlevel1.target)– การตั้งค่าเชลล์การกู้คืน
  • ผู้ใช้หลายรายเป้าหมาย (runlevel2.target, runlevel3.target, runlevel4.target)– การตั้งค่าระบบผู้ใช้หลายคนที่ไม่ใช่กราฟิก
  • graphical.target (runlevel5.target)– การตั้งค่าระบบผู้ใช้หลายคนแบบกราฟิก
  • รีบูต.เป้าหมาย (runlevel6.target)– ปิดระบบและรีบูตระบบ

คำสั่ง runlevel และ telinit ยังคงใช้งานได้ แต่ยังคงอยู่ในระบบเนื่องจากเหตุผลด้านความเข้ากันได้ ขอแนะนำให้ใช้ systemctl เพื่อเปลี่ยนหรือกำหนดค่าเป้าหมายของระบบ

ในการพิจารณาว่าหน่วยเป้าหมายใดเป็นค่าเริ่มต้น คำสั่งต่อไปนี้มีประโยชน์: systemctl รับ - ค่าเริ่มต้น.

หากต้องการดูหน่วยเป้าหมายที่โหลดทั้งหมด ให้ใช้คำสั่ง systemctl list-units --type เป้าหมายและดูหน่วยเป้าหมายทั้งหมดโดยทั่วไปด้วยคำสั่ง: systemctl รายการหน่วย -- ประเภทเป้าหมาย -- ทั้งหมด.

หากต้องการเปลี่ยนเป้าหมายเริ่มต้น ให้ใช้คำสั่ง systemctl ตั้งค่าเริ่มต้น name.target.

หากต้องการเปลี่ยนเป้าหมายปัจจุบัน: systemctl แยก name.target- คำสั่งจะเริ่มการทำงานของหน่วยเป้าหมายและการขึ้นต่อกันทั้งหมด และหยุดหน่วยอื่นๆ ทั้งหมดทันที

ใน CentOS 7 นั้น systemctl จะแทนที่คำสั่งการจัดการพลังงานจำนวนมาก คำสั่งก่อนหน้านี้ยังคงอยู่เพื่อความเข้ากันได้ แต่ขอแนะนำให้ใช้ systemctl:
systemctl หยุดทำงาน– หยุดระบบ
ปิดระบบ systemctl– ปิดระบบ
systemctl รีบูต– รีบูทระบบ

การจัดการ systemd บนเครื่องระยะไกล

Systemd ช่วยให้คุณจัดการเครื่องระยะไกลผ่าน SSH เพื่อควบคุมการใช้คำสั่ง:
systemctl --host คำสั่ง user_name@host_nameโดยที่ user_name คือชื่อผู้ใช้ host_name คือชื่อของโฮสต์ที่ การควบคุมระยะไกลและ command คือคำสั่ง systemd ที่จะดำเนินการ

systemd .service ทั่วไป

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

คำอธิบาย=Daemon เพื่อตรวจจับแอปที่ขัดข้อง After=syslog.target ExecStart=/usr/sbin/abrtd Type=forking WantedBy=multi-user.target

มาดูในส่วนนี้กัน - ประกอบด้วยข้อมูลทั่วไปเกี่ยวกับบริการ ส่วนนี้ไม่เพียงมีอยู่ในหน่วยบริการเท่านั้น แต่ยังอยู่ในหน่วยอื่นๆ ด้วย (เช่น เมื่อจัดการอุปกรณ์ จุดเชื่อมต่อ ฯลฯ) ในตัวอย่างของเรา เราให้คำอธิบายของบริการและระบุว่า daemon ควรเริ่มทำงานหลังจาก Syslog

ในส่วนถัดไป มีข้อมูลโดยตรงเกี่ยวกับบริการของเรา พารามิเตอร์ที่ใช้ เอ็กเซ็กสตาร์ทชี้ไปที่ ไฟล์ปฏิบัติการบริการของเรา ใน พิมพ์เราระบุวิธีที่บริการแจ้งเตือน systemd เมื่อเริ่มต้นระบบเสร็จสิ้น

ส่วนสุดท้าย มีข้อมูลเกี่ยวกับเป้าหมายที่ควรเริ่มบริการ ใน ในกรณีนี้เรากำลังบอกว่าควรเริ่มบริการเมื่อเปิดใช้งานเป้าหมาย ผู้ใช้หลายรายเป้าหมาย.

นี่คือไฟล์บริการ systemd การทำงานขั้นต่ำ หลังจากเขียนของคุณแล้ว ให้คัดลอกไปที่ /etc/systemd/system/service_name.service เพื่อทำการทดสอบ รันคำสั่ง systemctl daemon-รีโหลด- Systemd จะทราบเกี่ยวกับบริการและคุณจะสามารถเริ่มต้นได้

ข้อมูลเพิ่มเติม

บทช่วยสอนที่ยอดเยี่ยมเกี่ยวกับ systemd จาก RedHat ซึ่งเป็นพื้นฐานสำหรับบทความนี้
เอกสารประกอบสำหรับการเขียนหน่วยบริการ systemd ของคุณเอง
“ Systemd สำหรับผู้ดูแลระบบ” จากผู้พัฒนา systemd ในภาษารัสเซีย

บทสรุป

ในบทความนี้ เราได้เรียนรู้วิธีจัดการบริการ CentOS 7 แน่นอนว่านี่ไม่ใช่ฟังก์ชันเดียวของ systemd และจะมีการหารือด้านอื่นๆ ในอนาคต ระบบปฏิบัติการนั้นมีให้บริการบน VPS แบบคลาสสิกและ VPS บนคลาวด์จาก Infobox เกือบจะนับตั้งแต่เปิดตัว ลอง systemd ตอนนี้ ความรู้นี้จะมีประโยชน์ในการเชื่อมต่อกับการเปลี่ยนแปลงของการแจกแจงหลายแบบไปเป็น systemd

หากพบข้อผิดพลาดในบทความ ผู้เขียนยินดีแก้ไขให้ กรุณาเขียนใน PM หรืออีเมล์เกี่ยวกับเรื่องนี้
หากคุณไม่สามารถแสดงความคิดเห็นเกี่ยวกับHabré คุณสามารถเขียนลงในบล็อกได้

ค่าเล่าเรียน: 10,000 ถู ฟรีบนโอเพ่นซอร์ส

คำอธิบายหลักสูตร:

ใดๆ ผู้ดูแลระบบฝันถึงระบบปฏิบัติการที่เชื่อถือได้ มาสเตอร์ CentOS - การกระจายลินุกซ์ ชั้นเรียนขององค์กรขึ้นชื่อเรื่องความมั่นคง!

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

เรียนรู้ระบบปฏิบัติการฟรีที่น่าเชื่อถือที่สุดและเป็นผู้เชี่ยวชาญด้านเทคโนโลยีเซิร์ฟเวอร์!

จากการฝึกอบรมคุณจะได้เรียนรู้:

  • ดำเนินการติดตั้งและปรับใช้ ลินุกซ์ CentOS
  • ทำงานกับระบบไฟล์ Linux
  • จัดการบัญชีและสิทธิ์การเข้าถึง
  • เทคนิคเชลล์และพื้นฐานการเขียนสคริปต์
  • พื้นฐานการดูแลระบบสแต็ก TCP/IP และ เครื่องมือพื้นฐานสำหรับการทำงานร่วมกับเครือข่าย

โปรแกรมหลักสูตร " การบริหารระบบลินุกซ์»:

  1. ความรู้เบื้องต้นเกี่ยวกับลินุกซ์
  2. ระบบไฟล์
    ไดเร็กทอรีราก, จุดเมานท์ โฮมไดเร็กทอรี, ประเภทไฟล์. ไฟล์ปกติ- แคตตาล็อก ไฟล์อุปกรณ์ ทีม. การนำทางระบบไฟล์: คำสั่ง cd, pushd, popd, pwd สร้าง ลบ และคัดลอกไฟล์ คำสั่งสัมผัส, rm, cp การดำเนินการกับไดเร็กทอรี คำสั่ง mkdir และ rmdir
  3. บัญชี
    ที่เก็บบัญชีและการพิสูจน์ตัวตน ไฟล์ /etc/passwd และ /etc/group, /etc/shadow และ /etc/gshadow บัญชีราก. รหัสผ่านใน Linux คำสั่งล็อกอิน, su, newgrp, passwd, gpasswd, chage
  4. สิทธิ์การเข้าถึง
    การกระจายสิทธิ์การเข้าถึงใน Linux การอ่าน. บันทึก. การดำเนินการ คุณสมบัติของสิทธิ์ไดเร็กทอรี การกำหนดสิทธิ์การเข้าถึง คำสั่ง chmod, chown, chgrp เหนียวนิดหน่อย
  5. การทำงานกับไฟล์
    ส่งออกข้อมูลจากไฟล์ไปยังหน้าจอคอนโซล คำสั่ง cat, tac, more, less, head, tail, od การเปลี่ยนเส้นทางเอาต์พุต แนวคิดของ stdin, stdout, stderr ช่อง. ตัวดำเนินการ | และ<, >- การกรองข้อมูล นิพจน์ทั่วไป- คำสั่ง grep การเก็บถาวร ยูทิลิตี้ tar และ gzip
  6. กระบวนการใน Linux
    รหัสกระบวนการ ปีศาจ คำสั่ง PS สิทธิ์ในการเข้าถึงกระบวนการ ตัวระบุที่แท้จริงและมีประสิทธิภาพ บิต SUID และ SGID การจัดการกระบวนการ สัญญาณ. คำสั่ง nice, nohup, kill, killall
  7. เชลล์คำสั่ง
    ภาพรวมของเชลล์คำสั่ง เชลล์คำสั่งทุบตี. มัลติทาสกิ้งในคอนโซล การจัดการงาน ตัวแปรสภาพแวดล้อมของผู้บัญชาการเที่ยงคืน การเขียนโปรแกรมสำหรับ Bash
  8. การจัดตารางงาน
    การทำงานกับดิสก์ไดรฟ์ ครอนเดมอน คำสั่งที่ crontab เมานต์
  9. โปรแกรมแก้ไขข้อความ vi, Emacs
  10. ระดับการเริ่มต้น SVR4
    เริ่มต้นกระบวนการ ระดับการเริ่มต้น ไฟล์ /etc/inittab. ไดเรกทอรี /etc/rc.d
  11. เอ็กซ์ วินโดว์ ซิสเต็ม
    Daemon X เริ่ม X สคริปต์ startx ระดับที่ 5 ของการเริ่มต้น
  12. การบริหารเครือข่ายลินุกซ์
    เครือข่าย แบบจำลองโอเอสไอ- โปรโตคอล IP, UDP, TCP, ICMP ไอพีเทเบิล
ค่าเล่าเรียน: 10,000 ถู
คำอธิบายหลักสูตร:

ผู้ดูแลระบบทุกคนใฝ่ฝันถึงระบบปฏิบัติการที่เชื่อถือได้ Master CentOS การกระจาย Linux ระดับองค์กรที่ขึ้นชื่อเรื่องความเสถียร!

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

เรียนรู้ระบบปฏิบัติการฟรีที่น่าเชื่อถือที่สุดและเป็นผู้เชี่ยวชาญด้านเทคโนโลยีเซิร์ฟเวอร์!

จากการฝึกอบรมคุณจะได้เรียนรู้:

  • ติดตั้งและปรับใช้ Linux CentOS
  • ทำงานกับระบบไฟล์ Linux
  • จัดการบัญชีและสิทธิ์การเข้าถึง
  • เทคนิคเชลล์และพื้นฐานการเขียนสคริปต์
  • พื้นฐานของการดูแลระบบสแต็ก TCP/IP และเครื่องมือเครือข่ายพื้นฐาน
โปรแกรมหลักสูตรการบริหาร Linux:
  1. ความรู้เบื้องต้นเกี่ยวกับลินุกซ์
  2. ระบบไฟล์
    ไดเร็กทอรีราก, จุดเมานท์, โฮมไดเร็กทอรี, ประเภทไฟล์ ไฟล์ปกติ. แคตตาล็อก ไฟล์อุปกรณ์ ทีม. การนำทางระบบไฟล์: คำสั่ง cd, pushd, popd, pwd สร้าง ลบ และคัดลอกไฟล์ คำสั่งสัมผัส, rm, cp การดำเนินการกับไดเร็กทอรี คำสั่ง mkdir และ rmdir
  3. บัญชี
    ที่เก็บบัญชีและการพิสูจน์ตัวตน ไฟล์ /etc/passwd และ /etc/group, /etc/shadow และ /etc/gshadow บัญชีรูท รหัสผ่านใน Linux คำสั่งล็อกอิน, su, newgrp, passwd, gpasswd, chage
  4. สิทธิ์การเข้าถึง
    การกระจายสิทธิ์การเข้าถึงใน Linux การอ่าน. บันทึก. การดำเนินการ คุณสมบัติของสิทธิ์ไดเร็กทอรี การกำหนดสิทธิ์การเข้าถึง คำสั่ง chmod, chown, chgrp เหนียวนิดหน่อย
  5. การทำงานกับไฟล์
    ส่งออกข้อมูลจากไฟล์ไปยังหน้าจอคอนโซล คำสั่ง cat, tac, more, less, head, tail, od การเปลี่ยนเส้นทางเอาต์พุต แนวคิดของ stdin, stdout, stderr ช่อง. ตัวดำเนินการ | และ<, >- การกรองข้อมูล การแสดงออกปกติ คำสั่ง grep การเก็บถาวร ยูทิลิตี้ tar และ gzip
  6. กระบวนการใน Linux
    รหัสกระบวนการ ปีศาจ คำสั่ง PS สิทธิ์ในการเข้าถึงกระบวนการ ตัวระบุที่แท้จริงและมีประสิทธิภาพ บิต SUID และ SGID การจัดการกระบวนการ สัญญาณ. คำสั่ง nice, nohup, kill, killall
  7. เชลล์คำสั่ง
    ภาพรวมของเชลล์คำสั่ง ทีม เปลือกทุบตี- มัลติทาสกิ้งในคอนโซล การจัดการงาน ตัวแปรสภาพแวดล้อมของผู้บัญชาการเที่ยงคืน สำหรับทุบตี
  8. การจัดตารางงาน
    การทำงานกับดิสก์ไดรฟ์ ครอนเดมอน คำสั่งที่ crontab เมานต์
  9. โปรแกรมแก้ไขข้อความ vi, Emacs
  10. ระดับการเริ่มต้น SVR4
    เริ่มต้นกระบวนการ ระดับการเริ่มต้น ไฟล์ /etc/inittab. ไดเรกทอรี /etc/rc.d
  11. เอ็กซ์ วินโดว์ ซิสเต็ม
    Daemon X เริ่ม X สคริปต์ startx ระดับที่ 5 ของการเริ่มต้น
  12. การบริหารเครือข่ายลินุกซ์
    แบบจำลองเครือข่าย OSI โปรโตคอล IP, UDP, TCP, ICMP ไอพีเทเบิล
ดาวน์โหลด:

ฉันจะพูดถึงการตั้งค่าเริ่มต้นของระบบ CentOS ซึ่งเพิ่มความปลอดภัยและความสะดวกในการทำงานกับเซิร์ฟเวอร์ ฉันทราบว่าในระบบเวอร์ชันที่ 7 มีการเปลี่ยนแปลงบางอย่างเมื่อเทียบกับเวอร์ชันก่อนหน้า

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

การตั้งค่าเริ่มต้นของ CentOS 7

ดังนั้นเราจึงมี: # uname -a Linux zeroxzed.ru 3.10.0-123.20.1.el7.x86_64 #1 SMP พฤหัสบดีที่ 29 มกราคม 18:05:33 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

ก่อนอื่นเรามาอัพเดตกันก่อน ระบบพื้นฐาน:

#ยำอัปเดต

เพื่อความสะดวกในการดูแลระบบ ฉันจะติดตั้งอยู่เสมอ ผู้บัญชาการเที่ยงคืนหรือเพียงแค่ mc:

#ยำติดตั้งmc

และทันทีที่ฉันเปิดการเน้นไวยากรณ์สำหรับไฟล์ทั้งหมดที่ไม่ได้กำหนดไว้อย่างชัดเจนในไฟล์ /usr/share/mc/syntax/Syntaxไวยากรณ์สำหรับสคริปต์ sh และ bash ไวยากรณ์สากลนี้ใช้ได้ดีสำหรับ ไฟล์การกำหนดค่าซึ่งคุณต้องทำงานด้วยบนเซิร์ฟเวอร์บ่อยที่สุด การเขียนทับไฟล์ ไม่ทราบไวยากรณ์- นี่คือรูปแบบที่จะใช้กับไฟล์ .conf และ .cf เนื่องจากไม่มีไวยากรณ์ที่ชัดเจนแนบมาด้วย

# cp /usr/share/mc/syntax/sh.syntax /usr/share/mc/syntax/unknown.syntax

#ifconfig

แล้วคุณจะเห็นคำตอบ:

ทุบตี: ifconfig: คำสั่ง ไม่พบ

โดย อย่างน้อยเมื่อฉันเห็นสิ่งนี้ครั้งแรกฉันรู้สึกประหลาดใจมาก ฉันคิดว่าฉันทำผิดพลาดในการเขียนคำสั่ง ฉันตรวจสอบทุกอย่างซ้ำหลายครั้ง แต่ก็ไม่มีประโยชน์ ปรากฎว่าฉันต้องติดตั้งแพ็กเกจแยกต่างหากเพื่อเรียกใช้ ifconfig และยูทิลิตี้เครือข่ายอื่นๆ

แทนที่จะใช้ ifconfig ใน CentOS 7 ตอนนี้มียูทิลิตี้แล้ว ไอพี- ไม่เข้าใจว่าทำไมต้องจู้จี้ แต่ละโปรแกรมสำหรับการจัดการ การตั้งค่าเครือข่ายถ้า ifconfig จัดการกับงานได้อย่างสมบูรณ์แบบแล้ว นอกจากนี้ฉันชอบสิ่งนั้นมาโดยตลอด การแจกแจงต่างๆ Linux เป็นเรื่องเกี่ยวกับเดียวกัน การใช้ ifconfig คุณสามารถกำหนดค่าเครือข่ายได้ไม่เฉพาะใน Linux เท่านั้น แต่ยังรวมถึงใน freebsd ด้วย สะดวกครับ. และเมื่อแต่ละการแจกแจงมีเครื่องมือของตัวเอง มันก็ไม่สะดวก ดังนั้นฉันขอแนะนำให้ติดตั้ง ifconfig ปกติ

มาทำสิ่งนี้กัน:

# yum ติดตั้ง net-tools

ตอนนี้ เพื่อให้ nslookup หรือคำสั่งโฮสต์ทำงานได้ เราจำเป็นต้องติดตั้งแพ็คเกจ bind-utils หากยังไม่เสร็จสิ้น ให้ใช้คำสั่ง:

#nslookup

ผลลัพธ์จะเป็น:

Bash: nslookup: ไม่พบคำสั่ง

ดังนั้นมาติดตั้งbind-utils:

# yum ติดตั้ง bind-utils

ปิดการใช้งาน SELinux การใช้และการกำหนดค่าเป็นเรื่องแยกต่างหาก ฉันจะไม่ทำสิ่งนี้ตอนนี้ ลองปิดมันดู:

# mcedit /etc/sysconfig/selinux

เปลี่ยนค่า
SELINUX=ปิดการใช้งาน
เพื่อให้การเปลี่ยนแปลงมีผล ให้รีบูต:

# รีบูต

คุณสามารถปิดการใช้งาน SElinux ได้โดยไม่ต้องรีบูตเครื่อง:

#เซ็ตเทนฟอร์ซ 0

การระบุพารามิเตอร์เครือข่าย

อย่าใช้ daemons การซิงโครไนซ์เวลา - chrony และ ntp - พร้อมกัน เลือกหนึ่งรายการ โดยส่วนตัวแล้วฉันไม่เห็นความแตกต่างใด ๆ เลย ฉันมักจะใช้ ntp ตามปกติ

การเพิ่มที่เก็บข้อมูล

เพื่อติดตั้งซอฟต์แวร์ต่าง ๆ ที่คุณต้องการ ที่ได้รับความนิยมมากที่สุดคือ EPEL และ rpmforge ดังนั้นมาเพิ่มกัน ก่อนอื่นเราติดตั้ง EPEL ทุกอย่างง่ายดายด้วยมันถูกเพิ่มจากแหล่งเก็บข้อมูลมาตรฐาน:

# yum ติดตั้ง epel-release

ติดตั้ง rpmforge:

# rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt # yum ติดตั้ง http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1 .el7.rf.x86_64.rpm

# ยำติดตั้ง http://repository.it4i.cz/mirrors/repoforge/redhat/el7/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm

การตั้งค่าที่เก็บข้อมูลประวัติใน bash_history

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

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

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

#ประวัติศาสตร์

และดูรายการลำดับเลข คุณสามารถค้นหาคำสั่งเฉพาะได้อย่างรวดเร็วโดยการกรองเฉพาะบรรทัดที่จำเป็น เช่น:

#ประวัติศาสตร์ | เยี่ยมเลย

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

ส่งออก HISTSIZE=10,000 ส่งออก HISTTIMEFORMAT="%h %d %H:%M:%S " PROMPT_COMMAND="history -a" ส่งออก HISTIGNORE="ls:ll:history:w:htop"

ตัวเลือกแรกจะเพิ่มขนาดไฟล์เป็น 10,000 บรรทัด คุณสามารถทำมากกว่านี้ได้ แม้ว่าปกติขนาดนี้จะเพียงพอแล้วก็ตาม พารามิเตอร์ตัวที่สองระบุว่าควรจัดเก็บวันที่และเวลาที่ดำเนินการคำสั่ง บรรทัดที่สามจะบังคับทันทีหลังจากดำเนินการคำสั่งเพื่อบันทึกลงในประวัติ ในบรรทัดสุดท้าย เราสร้างรายการข้อยกเว้นสำหรับคำสั่งเหล่านั้นที่ไม่จำเป็นต้องบันทึกไว้ในประวัติ ฉันยกตัวอย่างรายการที่ง่ายที่สุด คุณสามารถเพิ่มได้ตามดุลยพินิจของคุณ

หากต้องการใช้การเปลี่ยนแปลง คุณต้องออกจากระบบและเชื่อมต่ออีกครั้งหรือรันคำสั่ง:

# แหล่งที่มา ~/.bashrc

อัพเดตระบบอัตโนมัติ

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

หากต้องการตรวจสอบการอัปเดตโดยอัตโนมัติ ยูทิลิตี้นี้จะช่วยเรา ยำ-cron- มันถูกติดตั้งแบบดั้งเดิมผ่าน yum จากพื้นที่เก็บข้อมูลมาตรฐาน

# yum ติดตั้ง yum-cron

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

ไฟล์การกำหนดค่า yum-cron อยู่ที่ /etc/yum/yum-cron.confและ yum-cron-hourly.conf- พวกเขาแสดงความคิดเห็นได้ดีดังนั้น คำอธิบายโดยละเอียดไม่ต้องการมัน ฉันดึงความสนใจของคุณไปที่ส่วนนี้ ซึ่งคุณสามารถระบุพารามิเตอร์สำหรับการส่งข้อความได้ ตามค่าเริ่มต้น เมลจะถูกส่งผ่านโลคัลโฮสต์ คุณสามารถเปลี่ยนการตั้งค่าได้ที่นี่และส่งข้อความผ่านบุคคลที่สาม เมลเซิร์ฟเวอร์- แต่โดยส่วนตัวแล้วฉันชอบที่จะกำหนดค่าเซิร์ฟเวอร์ทั้งหมดทั่วโลกเพื่อส่งต่อรูทเมลในเครื่องไปยังกล่องจดหมายภายนอกผ่านการอนุญาตบนเซิร์ฟเวอร์ smtp อื่น

ปิดใช้งานการฟลัดข้อความใน /var/log/messages

ในการติดตั้งเริ่มต้นของ CentOS 7 บันทึกระบบทั้งหมดของคุณ /var/log/messagesหลังจากนั้นครู่หนึ่งเซิร์ฟเวอร์จะอุดตันด้วยบันทึกต่อไปนี้

16 ต.ค. 14:01:01 xs-files systemd: สร้างผู้ใช้สไลซ์-0.slice 16 ต.ค. 14:01:01 xs-files systemd: กำลังเริ่มต้น user-0.slice 16 ต.ค. 14:01:01 xs-files systemd: เริ่มเซสชัน 14440 ของรูทผู้ใช้ 16 ต.ค. 14:01:01 xs-files systemd: เริ่มต้นเซสชัน 14440 ของรูทผู้ใช้ 16 ต.ค. 14:01:01 xs-files systemd: ลบสไลซ์ user-0.slice ออก 16 ต.ค. 14:01:01 xs-files systemd: หยุด user-0.slice 16 ต.ค. 15:01:01 xs-files systemd: สร้างสไลซ์ user-0.slice 16 ต.ค. 15:01:01 xs-files systemd: กำลังเริ่มต้น user-0.slice 16 ต.ค. 15:01:01 xs-files systemd: เริ่มเซสชัน 14441 ของรูทผู้ใช้ 16 ต.ค. 15:01:01 xs-files systemd: เริ่มต้นเซสชัน 14441 ของรูทผู้ใช้ 16 ต.ค. 15:01:01 xs-files systemd: เริ่มเซสชัน 14442 ของรูทผู้ใช้ 16 ต.ค. 15:01:01 xs-files systemd: เริ่มต้นเซสชัน 14442 ของรูทผู้ใช้ 16 ต.ค. 15:01:01 xs-files systemd: ลบสไลซ์ user-0.slice ออก 16 ต.ค. 15:01:01 xs-files systemd: หยุด user-0.slice 16 ต.ค. 16:01:01 xs-files systemd: สร้างสไลซ์ user-0.slice 16 ต.ค. 16:01:01 xs-files systemd: กำลังเริ่มต้น user-0.slice 16 ต.ค. 16:01:01 xs-files systemd: เริ่มเซสชัน 14443 ของรูทผู้ใช้ 16 ต.ค. 16:01:01 xs-files systemd: เริ่มต้นเซสชัน 14443 ของรูทผู้ใช้ 16 ต.ค. 16:01:01 xs-files systemd: ลบสไลซ์ user-0.slice ออก

พวกมันไม่มีประโยชน์อะไร ดังนั้นเรามาปิดมันกันดีกว่า ในการดำเนินการนี้ เราจะสร้างกฎแยกต่างหากสำหรับ rsyslog โดยเราจะแสดงรายการเทมเพลตข้อความทั้งหมดที่เราจะตัด มาวางกฎนี้ในไฟล์แยกต่างหาก /etc/rsyslog.d/ignore-systemd-session-slice.conf.

# cd /etc/rsyslog.d && mcedit allowance-systemd-session-slice.conf ถ้า $programname == "systemd" และ ($msg มี "Starting Session" หรือ $msg มี "Started Session" หรือ $msg มี "Created" ชิ้น" หรือ $msg มี "ผู้ใช้เริ่มต้น-" หรือ $msg มี "ชิ้นส่วนผู้ใช้เริ่มต้นของ" หรือ $msg มี "เซสชันที่ถูกลบ" หรือ $msg มี "ชิ้นส่วนผู้ใช้ที่ถูกลบออก" หรือ $msg มี "การหยุดชิ้นส่วนผู้ใช้ของ" ) จากนั้นหยุด

บันทึกไฟล์และรีสตาร์ท rsyslog เพื่อใช้การตั้งค่า

# systemctl รีสตาร์ท rsyslog

จำเป็นต้องเข้าใจว่าในกรณีนี้เราจะปิดใช้งานการฟลัดไลท์ไปยังไฟล์บันทึกบนเซิร์ฟเวอร์ภายในเครื่องเท่านั้น หากคุณเก็บล็อกออนไว้ กฎนี้คุณจะต้องกำหนดค่ามัน

การติดตั้ง iftop, atop, htop, lsof บน CentOS 7

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

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

#ยำติดตั้ง iftop

และตัวจัดการงานที่น่าสนใจสองตัว ฉันมักใช้ htop บ่อยที่สุด แต่บางครั้งบนยอดก็มีประโยชน์ มาติดตั้งทั้งสองอย่าง ดูด้วยตัวคุณเอง ค้นหาว่าคุณชอบอะไรมากที่สุด อะไรที่เหมาะกับคุณ:

# yum -y ติดตั้ง htop # yum -y ติดตั้งบนยอด

นี่คือลักษณะของ htop:

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

# yum ติดตั้ง wget bzip2 Traceroute gdisk

นั่นคือทั้งหมดสำหรับฉัน ขั้นพื้นฐาน การตั้งค่า CentOS 7 เสร็จสิ้น คุณสามารถเริ่มการติดตั้งและกำหนดค่าฟังก์ชันการทำงานหลักได้

การตั้งค่าเมลระบบ

เพื่อเสร็จสิ้นการตั้งค่า เซิร์ฟเวอร์ CentOS 7 เราจะตรวจสอบให้แน่ใจว่าเมลที่ส่งถึงรูทในเครื่องนั้นถูกส่งผ่านเซิร์ฟเวอร์เมลภายนอกไปยังกล่องจดหมายที่เลือก หากไม่เสร็จสิ้น ระบบจะรวบรวมไฟล์ภายในเครื่อง /var/spool/mail/root- และอาจมีข้อมูลที่สำคัญและเป็นประโยชน์ มากำหนดค่าให้ส่งไปยังกล่องจดหมายของผู้ดูแลระบบกัน

ฉันพูดคุยเกี่ยวกับเรื่องนี้โดยละเอียดในบทความแยกต่างหาก - นี่เป็นเพียงคำสั่งและการตั้งค่าด่วน เราใส่ แพ็คเกจที่จำเป็น:

# yum ติดตั้ง mailx cyrus-sasl cyrus-sasl-lib cyrus-sasl-plain

มาวาดคอนฟิกแบบนี้สำหรับ postfix กัน

Cat /etc/postfix/main.cf ## การกำหนดค่าเริ่มต้นเริ่มต้น ###################### Que_directory = /var/spool/postfix command_directory = /usr/sbin daemon_directory = /usr/libexec/postfix data_directory = /var/lib/postfix mail_owner = postfix inet_interfaces = localhost inet_protocols =known_local_recipient_reject_code ทั้งหมด = 550 alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases debug_peer_level = 2 debugger _command = เส้นทาง =/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & สลีป 5 sendmail_path = /usr/sbin/sendmail.postfix newaliases_path = /usr/bin / newaliases.postfix mailq_path = /usr/bin/mailq.postfix setgid_group = postdrop html_directory = ไม่มี manpage_directory = /usr/share/man Sample_directory = /usr/share/doc/postfix-2.10.1/samples readme_directory = /usr/share / doc/postfix-2.10.1/README_FILES ## การกำหนดค่าเริ่มต้น END ###################### # ชื่อเซิร์ฟเวอร์เป็นเอาต์พุตโดยคำสั่ง ชื่อโฮสต์ myhostname = centos7- ทดสอบ xs.local # ตามหลักเหตุผลแล้ว คุณเพียงแค่ต้องออกจากโดเมน แต่ในกรณีนี้ จะเป็นการดีกว่าถ้าจะออก ชื่อเต็มเซิร์ฟเวอร์ เพื่อให้ชื่อเต็มของเซิร์ฟเวอร์ปรากฏในฟิลด์ผู้ส่ง # ทำให้สะดวกยิ่งขึ้นในการแยกวิเคราะห์ข้อความบริการ mydomain = centos7-test.xs.local mydestination = $myhostname myorigin = $mydomain # ที่อยู่เซิร์ฟเวอร์ที่เราจะใช้ ส่งเมล Relayhost = mailsrv.mymail.ru :25 smtp_use_tls = ใช่ smtp_sasl_auth_enable = ใช่ smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous smtp_tls_security_level = พฤษภาคม

เราสร้างไฟล์พร้อมข้อมูลเกี่ยวกับชื่อผู้ใช้และรหัสผ่านเพื่อการอนุญาต

# mcedit /etc/postfix/sasl_passwd mailsrv.mymail.ru:25 [ป้องกันอีเมล]:รหัสผ่าน

สร้างไฟล์ DB

# postmap /etc/postfix/sasl_passwd

ตอนนี้คุณสามารถรีสตาร์ท postfix และตรวจสอบว่าใช้งานได้หรือไม่

# systemctl รีสตาร์ท postfix

ไปยังนามแฝงมาตรฐานสำหรับการรูทใน /etc/นามแฝงให้เพิ่มที่อยู่ภายนอกซึ่งอีเมลที่ส่งถึงรูทจะถูกทำซ้ำ การทำเช่นนี้เราแก้ไข ไฟล์ที่ระบุ, การเปลี่ยนแปลง บรรทัดสุดท้าย.

#root:มาร์ค

ราก: ราก, [ป้องกันอีเมล]

การอัพเดตฐานข้อมูลใบรับรอง:

#นามแฝงใหม่

มาส่งจดหมายผ่านคอนโซลไปยังรูทในเครื่อง:

# df -h | mail -s รูท "การใช้งานดิสก์"

จดหมายควรจะไปที่ ลิ้นชักด้านนอก- นี่เป็นการเสร็จสิ้นการตั้งค่าเมลในเครื่อง ตอนนี้จดหมายทั้งหมดที่ส่งถึงรูทในเครื่อง เช่น รายงานจาก cron จะถูกทำซ้ำไปยังกล่องจดหมายภายนอก และส่งผ่านเซิร์ฟเวอร์เมลปกติ ดังนั้นจดหมายจะถูกส่งตามปกติ โดยไม่กลายเป็นสแปม (ถึงแม้จะไม่จำเป็น แต่ก็มีตัวกรองการศึกษาสำนึกด้วย)

บทสรุป

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

มีประโยชน์ทีหลัง การตั้งค่าพื้นฐานเชื่อมต่อเซิร์ฟเวอร์เข้ากับระบบตรวจสอบทันที หรือตั้งค่าหากคุณยังไม่มี ฉันมีบทความโดยละเอียดเกี่ยวกับการตั้งค่าการตรวจสอบ:

  1. หรือเท่านั้น การเชื่อมต่อเซนโตสเพื่อตรวจสอบโดยการติดตั้งตัวแทนบนนั้น
  2. ในส่วนแยกต่างหากของผู้เขียน

25 ธันวาคม 2552 – 19:19 น

ตามหลักการแล้ว ควรเปลี่ยนรหัสผ่านผู้ใช้อย่างต่อเนื่อง บทความนี้อธิบายวิธีกำหนดค่าข้อกำหนดการเปลี่ยนรหัสผ่านโดยใช้แอปพลิเคชันตัวจัดการผู้ใช้บน Red Hat Enterprise Linux 5 หรือ CentOS 5 1. คลิกแอปพลิเคชัน จากนั้นเลือกการตั้งค่าระบบ แล้วคลิกผู้ใช้และกลุ่ม นี่จะเป็นการเปิดหน้าต่างตัวจัดการผู้ใช้ 2. เลือกผู้ใช้ที่ต้องการแล้วคลิกคุณสมบัติ

17 สิงหาคม 2552 – 11:54 น

การกำหนดค่า Iptables เริ่มต้นคือ ระบบเซนโอเอส/หมวกแดง/เรห์ล/ เฟโดรา ลินุกซ์ไม่อนุญาตให้มีการเชื่อมต่อขาเข้ากับบริการ LDAP ในบทช่วยสอนนี้ เราจะเปิดการเข้าถึงพอร์ต TCP #389 และ TCP #636 ที่ใช้โดย LDAP ในการดำเนินการนี้ คุณจะต้องอัปเดตไฟล์ /etc/sysconfig/iptables ลองพิจารณาดู กรณีที่ง่ายที่สุดซึ่งให้สิทธิ์การเข้าถึงแก่ส่วนทั้งหมดของท้องถิ่น [...]

29 กรกฎาคม 2552 – 15:50 น

เมื่อให้บริการโหลด เซิร์ฟเวอร์ SMTPคุณอาจสังเกตเห็นว่าข้อความบางข้อความติดอยู่ในคิว สาเหตุอาจแตกต่างกันมาก รวมถึงการตอบสนอง 450 ครั้งจากเซิร์ฟเวอร์ระยะไกล ไม่สามารถเชื่อมต่อได้ เซิร์ฟเวอร์ระยะไกลและการหยุดชะงักระหว่างการส่งข้อความ โดยทั่วไป เซิร์ฟเวอร์จะส่งซ้ำจากคิวประมาณทุกๆ 30 นาที แต่เมื่อจำนวนข้อความดังกล่าวเพิ่มมากขึ้น โดยทั่วไป [...]

14 กรกฎาคม 2552 – 14:04 น

Postfix Admin เป็นอินเทอร์เฟซการจัดการบนเว็บ กล่องจดหมาย, โดเมนเสมือนและนามแฝงใน ระบบไปรษณีย์บน ฐานข้อมูล postfix- บทความนี้จะอธิบายกระบวนการติดตั้งสำหรับ Postfix Admin การติดตั้งผู้ดูแลระบบ Postfix 1. ก่อน การติดตั้ง Postfixจำเป็นต้องติดตั้งผู้ดูแลระบบ แพ็คเกจต่อไปนี้: yum ติดตั้ง mysql-server php-mysql php-imap

7 พฤษภาคม 2552 – 18:01 น

เพื่อไม่ให้ลืม ฉันฝากคำเตือนไว้สำหรับตัวเองในการตั้งค่าปลาหมึกเพื่อขออนุมัติตามบัญชี LDAP Squid มีโมดูลในตัวที่เรียกว่า squid_ldap_auth มันอยู่ที่ /usr/lib64/squid/ มาตรวจสอบว่าใช้งานได้หรือไม่: #/usr/lib64/squid/squid_ldap_auth -b “basedn” -D “binddn” -w bindpasswd -h LDAP_Server -v 3 -p 389 User Pass OK ดังที่คุณเห็นด้านบน มันใช้งานได้ User และ Pass ถูกป้อนโดยใช้ที่จับ [...]

18 เมษายน 2552 – 16:51 น

DRBD คืออะไร? DRBD (อังกฤษ: Distributed Replicated Block Device) เป็นอุปกรณ์บล็อกที่ออกแบบมาเพื่อสร้างความทนทานต่อข้อผิดพลาด ระบบคลัสเตอร์บนระบบปฏิบัติการลีนุกซ์ DRBD มีส่วนร่วมในการสะท้อนกลับอย่างสมบูรณ์ (การมิเรอร์) ผ่านเครือข่ายของการดำเนินการทั้งหมดด้วยอุปกรณ์บล็อก เราสามารถมอง DRBD ว่าเป็นเครือข่าย RAID-1

2 เมษายน 2552 – 14:58 น

เอกสารและ HOWTO จำนวนมากอธิบายวิธีเพิ่ม VLAN ใน Linux ด้วยตนเอง โดยใช้ลำดับคำสั่งที่สามารถใส่ลงในสคริปต์ได้ ฉันคิดว่านี่ไม่ถูกต้องทั้งหมด เป็นการดีที่สุดที่จะทำสิ่งนี้ วิธีปกติระบบ ในระบบที่ใช้ RedHat การตั้งค่า VLAN ทำได้ง่ายดายโดยใช้สคริปต์ ifup มาตรฐาน ขั้นตอนนี้อธิบายไว้ด้านล่าง