สวัสดีเพื่อนร่วมงาน เป็นเวลานานโครงการ NetSkills จัดทำขึ้นโดยเฉพาะ เทคโนโลยีเครือข่าย - ดี นักสู้หนุ่ม, พื้นฐาน GNS, UNetLab- อย่างไรก็ตาม สมาชิกถามคำถามต่อไปนี้มากขึ้น: “วิศวกรเครือข่ายควรทำอะไรอีกหรือ ผู้ดูแลระบบ?” - ที่นี่คุณสามารถอ้างอิงได้ รายการใหญ่เทคโนโลยี/ทิศทาง และสรุปได้ว่าการรู้เฉพาะเครือข่ายเท่านั้นที่เป็นเช่นนั้น ไม่เพียงพอ- เห็นได้ชัดว่าการประสบความสำเร็จในอาชีพการงานนั้นต้องการมากกว่านั้นมาก ดังนั้นจึงตัดสินใจขยายโครงการและเปิดตัวหลักสูตร “Linux for Beginners” เป็นครั้งแรก
รายละเอียดที่สำคัญครับอาจารย์- หญิงสาวที่เพิ่งเข้าร่วมโครงการ เน็ตสกิลส์. ผู้หญิงสามารถสอนอะไรได้บ้าง?หากสนใจยินดีต้อนรับสู่เจ้าแมว...
วัตถุประสงค์ของหลักสูตร– เรียนรู้พื้นฐานการบริหารระบบปฏิบัติการ Linux เนื้อหาส่วนใหญ่ใช้งานได้จริงและมีทฤษฎีเพียงเล็กน้อย หลักสูตรนี้เหมาะสำหรับทั้งผู้ดูแลระบบมือใหม่ที่เกี่ยวข้องกับการตั้งค่าเซิร์ฟเวอร์ของบริษัทและสำหรับวิศวกรเครือข่ายเพราะว่า ที่สุด อุปกรณ์เครือข่ายใช้ Linux (โดยเฉพาะอย่างยิ่งเมื่อพิจารณาถึงแนวโน้มของการทดแทนการนำเข้า) ดังนั้นทักษะในการทำงานกับระบบนี้จะไม่ขัดขวางพวกเขาอย่างแน่นอน โดยทั่วไปแล้ว ผู้เชี่ยวชาญด้านไอทีที่เคารพตนเองทุกคนมีหน้าที่เพียงแค่มีทักษะพื้นฐานในการทำงานกับระบบ Linux มูลค่าของพนักงานดังกล่าวเพิ่มขึ้นทันที
หลักสูตรทั้งหมดจะแบ่งออกเป็นสองส่วน: หลักสูตรขั้นพื้นฐานและขั้นสูง- ในหลักสูตรพื้นฐาน เราจะดูแนวคิดพื้นฐาน เรียนรู้วิธีการผลิต การตั้งค่าเริ่มต้นเซิร์ฟเวอร์และกำหนดค่าเกตเวย์การเข้าถึงอินเทอร์เน็ตด้วย ในหลักสูตรเพิ่มเติม เราจะดูวิธีการปรับใช้โครงสร้างพื้นฐานเซิร์ฟเวอร์ของบริษัท บนพื้นฐานลินุกซ์.
เพื่อวางแผน หลักสูตรพื้นฐานรวมหัวข้อต่อไปนี้:
1.วัตถุประสงค์ของการศึกษาห้องผ่าตัด ระบบลินุกซ์ข้อได้เปรียบหลัก
2.การสร้างเครื่องเสมือน
3. การติดตั้งระบบปฏิบัติการ CentOS
4. โครงสร้างระบบไฟล์ Linux
5.คำสั่งพื้นฐานที่จำเป็นในการทำงาน คอนโซลลินุกซ์(cd, ls, man, grep, find, cp, mv, rm ฯลฯ)
6.การตั้งค่าเครือข่ายใน CentOS ยูทิลิตี้สีโป๊ว, WinSCP
7.พื้นฐานของความปลอดภัย การเพิ่มผู้ใช้ใหม่เข้าสู่ระบบ
8.การติดตั้งแพ็คเกจ ผู้จัดการแพ็คเกจ- ที่เก็บ
9.MC ตัวจัดการไฟล์ โปรแกรมแก้ไขข้อความนาโนและ ยูทิลิตี้เครือข่าย(ifconfig, nslookup, arp, telnet)
10.การกำหนดค่าเกตเวย์การเข้าถึงอินเทอร์เน็ต ไอพีเทเบิล แนท ดีเอชซีพี.
เหตุใดจึงต้องเรียนรู้ Linux และประโยชน์ของมันคืออะไร?ฉันคิดว่ามันคุ้มค่าที่จะเริ่มต้นด้วยคำจำกัดความ
GNU/Linux เป็นตระกูลระบบปฏิบัติการที่มีลักษณะคล้ายยูนิกซ์ซึ่งใช้เคอร์เนล Linux ระบบปฏิบัติการจากตระกูลนี้มักจะแจกจ่ายฟรีในรูปแบบของสิ่งที่เรียกว่าการแจกจ่ายซึ่งนอกเหนือจากระบบปฏิบัติการแล้วยังมีชุดซอฟต์แวร์แอปพลิเคชันอีกด้วย (นั่นคือโดยพื้นฐานแล้วคือชุดประกอบ) ปัจจุบันมีการแจกแจง Linux จำนวนมาก แต่เกือบทั้งหมดเป็นผู้สืบทอดมาจากการแจกแจงหลักทั้งสาม: Debian, Slackware และ Red Hat คุณสามารถอ่านเพิ่มเติมเกี่ยวกับ GNU/Linux และการกระจายได้
บางทีอาจมีบางคนมีคำถาม: ทำไมต้องเป็น GNU/Linux และไม่ใช่แค่ Linux ประเด็นก็คือ Linux เป็นเพียงเคอร์เนล ในขณะที่ GNU/Linux เป็นระบบปฏิบัติการ อย่างไรก็ตาม Linux สามารถเรียกได้ทั้งเคอร์เนลและระบบปฏิบัติการ - และวิธีใดวิธีหนึ่งก็จะถูกต้อง
ระบบปฏิบัติการประกอบด้วยสองส่วน: พื้นที่เคอร์เนลและ พื้นที่ผู้ใช้- พื้นที่เคอร์เนลคือเคอร์เนลที่โต้ตอบโดยตรงกับอุปกรณ์ในระบบ ให้บริการและกำหนดค่าอุปกรณ์เหล่านั้น ในกรณีของเรานี่คือ เคอร์เนลลินุกซ์การพัฒนาเริ่มขึ้นในปี 1991 โดย Linus Torvalds ซึ่งเป็นนักเรียนในขณะนั้น รองรับการทำงานหลายอย่างพร้อมกัน ไลบรารีแบบไดนามิก, หน่วยความจำเสมือน,ขี้เกียจโหลดมากที่สุด โปรโตคอลเครือข่ายและ ระบบการผลิตการจัดการหน่วยความจำและกระจายไปทั่ว ใบอนุญาต GNU GPL เช่น ฟรี. คุณสามารถหาข้อมูลเพิ่มเติมเกี่ยวกับเคอร์เนลและระบบการกำหนดหมายเลขเวอร์ชันที่ "น่าสนใจ" ของมันได้ ผู้ใช้ทำงานในพื้นที่ผู้ใช้ (พื้นที่แอปพลิเคชัน) และสิ่งเหล่านี้ก็เป็นไฟล์ โดยทั่วไปแล้ว ทุกอย่างใน Linux จะแสดงด้วยไฟล์ - การตั้งค่า แอปพลิเคชันเอง แม้แต่กระบวนการ วิธีนี้จะสะดวกมากเมื่อตั้งค่าและเมื่อคุณพยายามหาสาเหตุที่ทุกอย่างพัง
การแจกจ่าย Linux ได้รับการเผยแพร่ภายใต้สัญญาอนุญาตสาธารณะทั่วไปของ GNU ซึ่งเป็นใบอนุญาตฟรี ซอฟต์แวร์- วัตถุประสงค์ของ GNU GPL คือการให้สิทธิ์แก่ผู้ใช้ในการคัดลอก แก้ไข และแจกจ่าย (รวมถึง to บนพื้นฐานเชิงพาณิชย์) โปรแกรม และยังให้แน่ใจว่าผู้ใช้โปรแกรมอนุพันธ์ทั้งหมดได้รับสิทธิ์ข้างต้น
นอกเหนือจากข้อดีที่ไม่อาจปฏิเสธได้ข้างต้นของระบบปฏิบัติการนี้แล้ว ยังมีฟีเจอร์อีกมากมาย:
1.ความปลอดภัย
2.ประสิทธิภาพ
3.ความน่าเชื่อถือ
4. ความสามารถในการขยายขนาด
5.ความเข้ากันได้ของฮาร์ดแวร์
6.ไม่จำเป็นต้องทดแทนการนำเข้า
7.เงินเดือนผู้ดูแลระบบ Linux สูงกว่าผู้ดูแลระบบทั่วไป
ด้วยคุณสมบัติข้างต้น ทำให้ Linux แพร่หลายและถูกนำไปใช้ในหลายพื้นที่: บริการที่สำคัญ(รถไฟความเร็วสูงในญี่ปุ่น, CERN, ระบบควบคุมการจราจรทางอากาศ), โซเชียลเน็ตเวิร์ก, บริการค้นหาเช่นเดียวกับใน โทรศัพท์มือถือ, แท็บเล็ต, พีซี, ตู้เอทีเอ็ม และอุปกรณ์อิเล็กทรอนิกส์ในยานยนต์
โดยทั่วไปแล้ว มีหลายสิ่งที่คุณสามารถทำได้ด้วย Linux แต่เราจะเน้นไปที่สิ่งอื่นๆ ในชีวิตประจำวันมากขึ้น สมมติว่าในบริษัทที่เขาทำงานอยู่ จำนวนมากผู้ใช้ คุณจะต้องปรับใช้โครงสร้างพื้นฐานเซิร์ฟเวอร์ เช่น ผู้ใช้จำเป็นต้องได้รับสิทธิ์ในการเข้าถึงอินเทอร์เน็ต ห้ามมิให้นั่งในนั้น เครือข่ายสังคมออนไลน์, จัดระเบียบ จดหมายองค์กร, ไฟล์เซิร์ฟเวอร์ฯลฯ เราสามารถทำอะไรกับลินุกซ์ได้บ้าง? ในความเป็นจริงค่อนข้างมาก
เราสามารถ:
1. กำหนดค่าเราเตอร์ซอฟต์แวร์/เกตเวย์การเข้าถึงอินเทอร์เน็ตพร้อมฟังก์ชันต่างๆ ไฟร์วอลล์และเซิร์ฟเวอร์ DHCP
2. จำกัดการเข้าถึงอินเทอร์เน็ตของผู้ใช้โดยใช้พร็อกซีเซิร์ฟเวอร์
3.จัดระเบียบ เมลเซิร์ฟเวอร์สำหรับจดหมายของบริษัท
4.สร้างเว็บเซิร์ฟเวอร์สำหรับเว็บไซต์องค์กรและทรัพยากรบนเว็บภายใน
6.ตั้งค่าหลักและ DNS รองเซิร์ฟเวอร์
7.ปรับใช้ไฟล์เซิร์ฟเวอร์
8.รวบรวม การสำรองข้อมูลจากเซิร์ฟเวอร์อื่น
9. ปรับใช้เซิร์ฟเวอร์การบันทึกเพื่อรวบรวมเหตุการณ์จากเซิร์ฟเวอร์อื่น
เราจะปรับใช้โครงร่างดังกล่าวภายในกรอบของหลักสูตรนี้
ฉันคิดว่านี่เป็นการสรุปบทเรียนแรก
ฉันจะพูดถึง การตั้งค่าเริ่มต้นระบบ 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ก่อนอื่นเรามาอัพเดตกันก่อน ระบบพื้นฐาน:
#ยำอัปเดต
เพื่อความสะดวกในการดูแลระบบ ฉันจะติดตั้ง Midnight Commander เสมอ หรือเพียงแค่ 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
แล้วคุณจะเห็นคำตอบ:
Bash: 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,000 คำสั่งสุดท้ายเท่านั้น หากมีมากกว่าอันเก่าจะถูกลบและแทนที่ด้วยอันใหม่
- ไม่มีวันที่ดำเนินการสำหรับคำสั่ง มีเพียงรายการคำสั่งตามลำดับการดำเนินการ
- ไฟล์รายการคำสั่งได้รับการอัปเดตหลังจากสิ้นสุดเซสชัน ในระหว่างเซสชันแบบขนาน คำสั่งบางคำสั่งอาจสูญหาย
- บันทึกคำสั่งทั้งหมดอย่างแน่นอน แม้ว่าบางคำสั่งจะไม่มีประโยชน์ก็ตาม
รายการคำสั่งที่ดำเนินการล่าสุดจะถูกจัดเก็บไว้ใน โฮมไดเร็กทอรีผู้ใช้ในไฟล์ .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 ซึ่งเป็นสิ่งที่ฉันมักจะทำเมื่อเตรียมเซิร์ฟเวอร์ ฉันไม่เสแสร้งว่าเป็นความจริงเด็ดขาด ฉันอาจพลาดบางสิ่งบางอย่างหรือทำบางอย่างที่ไม่ถูกต้องทั้งหมด ฉันยินดีที่จะแสดงความคิดเห็นและข้อเสนอแนะที่สมเหตุสมผลและมีความหมาย
มีประโยชน์ทีหลัง การตั้งค่าพื้นฐานเชื่อมต่อเซิร์ฟเวอร์เข้ากับระบบตรวจสอบทันที หรือตั้งค่าหากคุณยังไม่มี ฉันมีบทความโดยละเอียดเกี่ยวกับการตั้งค่าการตรวจสอบ:
- หรือเท่านั้น การเชื่อมต่อเซนโตสเพื่อตรวจสอบโดยการติดตั้งตัวแทนบนนั้น
- ในส่วนแยกต่างหากของผู้เขียน