การตั้งค่าเซิร์ฟเวอร์ Debian พื้นฐานหลังการติดตั้ง การตั้งค่าเซิร์ฟเวอร์ Debian ขั้นพื้นฐานหลังจากติดตั้ง Debian ตั้งเวลา

ระหว่างการติดตั้งครั้งแรก เดเบียนเรากำหนดค่าเขตเวลาโดยใช้ไฟล์ . ในอนาคต การซิงโครไนซ์เวลาและโซนเวลาสามารถทำได้ด้วยคำสั่งต่อไปนี้:

$su $password $dpkg- กำหนดค่า tzdata ใหม่

ใช้ลูกศรเพื่อเลือก ยุโรปและกด เข้า .

เรายังเลือกเขตเวลา

จากการซิงโครไนซ์เราได้รับค่าสากล ( GMT) และ เวลาท้องถิ่น.

ไฟล์การกำหนดค่าจะถูกเก็บไว้ใน /etc/เขตเวลา - คุณสามารถเปิดไฟล์โดยใช้คำสั่ง:

$ gedit /etc/timezone

นอกจากนี้ไฟล์ข้อมูลที่เกี่ยวข้องยังอยู่ในไดเร็กทอรี /usr/share/zoneinfo และคัดลอกไปที่ /etc/localtime ไฟล์นี้มีกฎที่ใช้บังคับกับวันที่ของเวลาออมแสงหรือเวลาออมแสงสำหรับประเทศต่างๆ ที่ใช้ข้อมูลดังกล่าว

คอมพิวเตอร์มีแหล่งเวลาสองแหล่ง: นาฬิกาฮาร์ดแวร์บนเมนบอร์ด - " ซีมอส"และในเคอร์เนลของระบบปฏิบัติการที่ควบคุมโดยเซิร์ฟเวอร์เวลาผ่านเครือข่าย ในทางปฏิบัติ มีปัญหาเนื่องจากนาฬิกา ซีมอสไม่มีอะไรมากไปกว่าตัวนับและไม่มีข้อมูลเขตเวลาใด ๆ

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

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

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

$su $password $apt-get ติดตั้ง ntpdate

สำหรับเวิร์กสเตชัน คุณสามารถเปลี่ยนเซิร์ฟเวอร์ได้ เอ็นทีพีใช้ในกรณีที่จำเป็นโดยการปรับเปลี่ยน /etc/default/ntpdate ไฟล์.

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

การติดตั้งเอ็นทีพี

$ ความถนัดติดตั้ง ntp ntpdate

ในการกำหนดค่าเริ่มต้น เซิร์ฟเวอร์จะซิงโครไนซ์กับทรัพยากร pool.ntp.org และให้เวลาในการตอบสนองต่อคำขอที่มาจากเครือข่ายท้องถิ่น คุณสามารถปรับแต่งได้โดยการแก้ไข /etc/ntp.conf ไฟล์.

เพื่อความปลอดภัย หากต้องการเข้าถึงเซิร์ฟเวอร์จากภายนอก คุณจะต้องเพิ่มไฟล์ลงในไฟล์ /etc/ntp.conf บรรทัดต่อไปนี้ (บรรทัดเหล่านี้อาจมีอยู่แล้ว):

ปิดการใช้งานการตรวจสอบการจำกัดค่าเริ่มต้น kod nomodify notrap nopeer noquery จำกัด -6 ค่าเริ่มต้น kod nomodify notrap nopeer noquery จำกัด 127.0.0.1 จำกัด -6::1

ปิดการใช้งานจอภาพ - ปิดการใช้งานคำสั่ง monlist ที่ส่งคืนรายการไคลเอนต์ 600 รายการล่าสุด เอ็นทีพี จำกัด ค่าเริ่มต้น kod nomodify notrap nopeer noquery

จำกัด -6 ค่าเริ่มต้น kod nomodify notrap nopeer noquery - ปิดการใช้งานคำขอสถานะเซิร์ฟเวอร์

คุณยังสามารถระบุเซิร์ฟเวอร์ของคุณสำหรับการซิงโครไนซ์เวลา เช่น ที่อยู่ของเซิร์ฟเวอร์ NTP ในรัสเซีย: https://www.ntp-servers.net/servers.html และแก้ไขไฟล์ /etc/ntp.conf โดยการรันคำสั่ง : :

$ gedit /etc/ntp.conf

การซิงโครไนซ์ครั้งเดียว

เซิร์ฟเวอร์ถูกใช้เป็นตัวอย่าง ntp1.stratum1.ru:

$ ntpdate ntp1.stratum1.ru

ก่อนการซิงโครไนซ์

หลังจากการซิงโครไนซ์

เพื่อจัดระเบียบการซิงโครไนซ์เวลาอย่างต่อเนื่อง เราจะติดตั้ง daemon (เซิร์ฟเวอร์) เอ็นทีพี

แก้ไขไฟล์ /etc/ntp.conf หรือสร้างมันขึ้นมาหากไม่มีไฟล์ดังกล่าว

$ เซิร์ฟเวอร์ ntp1.stratum1.ru ระเบิดออกมา

เปิดตัว ntp และเพิ่มการโหลดอัตโนมัติ

$ /etc/init.d/ntp start $ update-rc.d ค่าเริ่มต้น ntp

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

บทความนี้เป็นส่วนหนึ่งของบทความชุดเดียวเกี่ยวกับเซิร์ฟเวอร์

การแนะนำ

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

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

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

ดังนั้นเราจึงมีระบบที่ติดตั้งใหม่ คุณสามารถค้นหาหรือตรวจสอบเวอร์ชันได้ด้วยคำสั่ง:

# uname -a Linux debian10 4.19.0-5-amd64 #1 SMP Debian 4.19.37-5 (2019-06-19) x86_64 GNU/Linux # lsb_release -a ไม่มีโมดูล LSB ที่พร้อมใช้งาน รหัสผู้จัดจำหน่าย: Debian คำอธิบาย: Debian GNU/Linux 10 (บัสเตอร์)วางจำหน่าย: 10 ชื่อรหัส: บัสเตอร์

คุณสามารถดูรายการแพ็คเกจที่พร้อมสำหรับการอัพเดตได้โดยใช้คำสั่ง:

# รายการฉลาด -- อัปเกรดได้

ตอนนี้เรามาทำการอัพเดตแพ็คเกจระบบทั้งหมดอย่างง่าย ๆ:

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

สำคัญ dis-อัพเกรดหรือ อัปเกรดเต็มรูปแบบ(นี่คือสิ่งเดียวกัน) นอกเหนือจากการอัพเกรดแล้ว ยังประมวลผลการเปลี่ยนแปลงการพึ่งพาทั้งหมดสำหรับแพ็คเกจใหม่ และระหว่างการดำเนินการสามารถลบสิ่งที่ไม่จำเป็นออกไปและติดตั้งแพ็คเกจที่จำเป็นสำหรับการอัพเดต นี่คือข้อความที่ตัดตอนมาจากเอกสารเกี่ยวกับคีย์ทั้งสองนี้

ดังนั้นหลังจากการอัพเดตตามปกติ เราจะทำการอัพเกรดเต็มรูปแบบอีกครั้ง

# apt อัปเกรดเต็ม รายการอ่านแพ็คเกจ ... เสร็จแล้ว สร้างแผนผังการพึ่งพา อ่านข้อมูลสถานะ ... เสร็จสิ้น กำลังคำนวณการอัพเกรด ... เสร็จสิ้น แพ็คเกจต่อไปนี้ได้รับการติดตั้งโดยอัตโนมัติและไม่จำเป็นอีกต่อไป: dh-python Guile-2.0-libs libbind9- 140 libdns162 ​​​​libicu57 libisc160 libisccc140 libisccfg140 liblvm2app2.2 liblvm2cmd2.02 liblwres141 libperl5.24 libpython3.5-minimal libpython3.5-stdlib linux-image-4.9.0-3-amd64 -distutils 3-lib2to3 python3.5 python3.5 5- เปลี่ยนชื่อน้อยที่สุด sgml-base tcpd xml-core ใช้ "apt autoremove" เพื่อลบออก 0 อัปเกรดแล้ว 0 ติดตั้งใหม่ 0 ลบและ 0 ไม่ได้อัปเกรด

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

เสร็จสิ้นการอัปเดตระบบ หากคุณต้องการอัปเดตเวอร์ชันที่วางจำหน่าย ให้อ่านเนื้อหาแยกต่างหาก

การตั้งค่า ssh

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

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

ตามค่าเริ่มต้นใน Debian เช่นเดียวกับในการกระจาย Linux อื่น ๆ เซิร์ฟเวอร์ ssh จะทำงานบนพอร์ต 22 เรามาเปลี่ยนพอร์ตนี้เป็น 23331 กันเถอะ ฉันยังเปลี่ยนการกำหนดค่าเพื่ออนุญาตให้ผู้ใช้รูทเชื่อมต่อผ่าน ssh โดยใช้รหัสผ่าน ใน Debian ผู้ใช้รูทไม่สามารถตรวจสอบสิทธิ์ผ่าน ssh ด้วยรหัสผ่านได้ทันที มาเปลี่ยนกันด้วย เปิดไฟล์การตั้งค่า:

# นาโน /etc/ssh/sshd_config

และเปลี่ยนบรรทัดต่อไปนี้ที่นั่น มาสร้างรูปแบบกันเถอะ:

พอร์ต 23331 PermitRootLogin ใช่

บันทึกการเปลี่ยนแปลงและรีสตาร์ทเซิร์ฟเวอร์ ssh ด้วยคำสั่งต่อไปนี้:

# บริการ sshd รีสตาร์ท

ตรวจสอบการเปลี่ยนแปลง:

# netstat -tulnp | grep ssh tcp 0 0 0.0.0.0:23331 0.0.0.0:* ฟัง 925/sshd tcp6 0 0:::23331:::* ฟัง 925/sshd

ทุกอย่างเรียบร้อยดี เซิร์ฟเวอร์กำลังฟังพอร์ต 23331 ตอนนี้การเชื่อมต่อใหม่จะทำบนพอร์ต 23331 เท่านั้น ในเวลาเดียวกันหลังจากรีสตาร์ท ssh การเชื่อมต่อเก่าจะไม่เสียหาย

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

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

การติดตั้งยูทิลิตี้ mc, htop, iftop

ขั้นตอนต่อไปคือการตั้งค่ายูทิลิตี้ที่มีประโยชน์ซึ่งฉันใช้เป็นประจำในการทำงานประจำวัน ตัวแรกคือตัวจัดการไฟล์สองแผงที่รู้จักกันดี Midnight Commander มาติดตั้งกัน แมคไปยังเซิร์ฟเวอร์ของเรา:

#ฉลาดติดตั้งmc

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

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

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

# select-editor เลือกตัวแก้ไข หากต้องการเปลี่ยนแปลงในภายหลัง ให้เรียกใช้ "select-editor"<---- easiest 2. /usr/bin/mcedit 3. /usr/bin/vim.tiny Choose 1-3 : 2

1. /bin/นาโน

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

- ฉันขอแนะนำอย่างยิ่ง ฉันไม่เคยเจอเครื่องมือที่ง่ายกว่าและสะดวกกว่านี้มาก่อน แม้ว่าฉันจะได้ลองทำหลายอย่างที่คล้ายกันแล้วก็ตาม ติดตั้ง iftop บนเซิร์ฟเวอร์:

# ฉลาดติดตั้ง iftop

การตั้งค่าและอัปเดตเวลาใน Debian

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

วันที่

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

# ฉลาดติดตั้ง tzdata

ตอนนี้เรามาเลือกเขตเวลาที่ถูกต้องโดยใช้คำสั่ง:

# dpkg- กำหนดค่า tzdata ใหม่

เมื่อเลือกรายการวิซาร์ดที่เหมาะสม ให้ระบุเขตเวลาของคุณ

# ฉลาดติดตั้ง ntpdate

และประสานเวลา:

# ntpdate-debian 12 ส.ค. 14:30:21 ntpdate: ปรับเซิร์ฟเวอร์เวลา 89.109.251.21 ชดเชย 0.004529 วินาที

ซึ่งหมายความว่าบริการ ntp ของคุณกำลังทำงานอยู่ จำเป็นต้องหยุดและอัปเดตเวลาด้วยตนเอง แม้ว่ามันจะได้ผลคุณก็ควรจะสบายดี

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

#ฉลาดติดตั้งntp

หลังจากการติดตั้ง มันจะเริ่มทำงานเองและจะซิงโครไนซ์นาฬิกาเซิร์ฟเวอร์โดยอัตโนมัติ ตรวจสอบว่าบริการ ntpd เริ่มต้นแล้วหรือไม่:

# netstat -tulnp | GREP NTP UDP 0 0 10.20.1.16:123 0.0.0.0:* 8855/ntpd udp 0 0 127.0.0.1:123 0.0.0.0.0:* 8855/ntpd udp 0 0 0.0.0.0:123 0.0.0.0.0.0.0.0 d udp6 0 0 fe80::cce1:23ff:fe4:123:::* 8855/ntpd udp6 0 0::1:123:::* 8855/ntpd udp6 0 0:::123:::* 8855/ntpd

การตั้งค่าไฟร์วอลล์ (iptables) ใน Debian

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

# iptables -L -v -n Chain INPUT (นโยบายยอมรับ 0 แพ็กเก็ต, 0 ไบต์) pkts ไบต์เป้าหมาย prot เลือกออกปลายทางต้นทาง Chain FORWARD (นโยบายยอมรับ 0 แพ็กเก็ต, 0 ไบต์) pkts ไบต์เป้าหมาย prot เลือกไม่รับ ปลายทางต้นทาง Chain OUTPUT (นโยบายยอมรับ 0 แพ็กเก็ต, 0 ไบต์) pkts ไบต์ เป้าหมาย prot เลือกไม่ใช้ปลายทางต้นทาง

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

มาสร้างไฟล์ด้วยกฎ iptables:

#mcedit /etc/iptables.sh

ตรวจสอบว่ามีการเขียนกฎลงในไฟล์ /etc/iptables_rules- หากไม่มีอยู่ เราก็จดบันทึกด้วยตนเอง

# /sbin/iptables-save > /etc/iptables_rules

มีการใช้กฎและเขียนลงในไฟล์ /etc/iptables_rules- ตอนนี้เราต้องตรวจสอบให้แน่ใจว่ามีการใช้เมื่อเซิร์ฟเวอร์บูท เมื่อต้องการทำเช่นนี้ เราทำสิ่งต่อไปนี้ กำลังเปิดไฟล์ /etc/เครือข่าย/อินเทอร์เฟซและเพิ่มบรรทัด pre-up iptables-restore เข้าไป< /etc/iptables_rules Должно получиться вот так:

# cat /etc/network/interfaces อนุญาต hotplug eth0 iface eth0 inet dhcp iptables-restore ล่วงหน้า< /etc/iptables_rules

หากต้องการตรวจสอบ ให้รีสตาร์ทเซิร์ฟเวอร์และดูกฎ iptables ควรโหลดชุดกฎที่กำหนดค่าไว้จากไฟล์ /etc/iptables_rules.

การตั้งค่าบันทึก cron

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

หน้าจอการติดตั้งและกำหนดค่า

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

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

ต่อมา ฉันตัดสินใจพิจารณาเครื่องมือนี้ให้ละเอียดยิ่งขึ้น และพบว่าเครื่องมือนี้มีจุดที่สะดวกหลายประการที่สามารถนำมาใช้ในการทำงานประจำวันได้ นี่คือวิธีที่ฉันใช้ยูทิลิตี้หน้าจอ เมื่อฉันเชื่อมต่อกับเซิร์ฟเวอร์ ฉันจะเริ่มหน้าจอด้วยสามหน้าต่าง 1, 2, 3 หน้าต่างแรกไปที่ไดเร็กทอรี / โดยอัตโนมัติ หน้าต่างที่สองไปที่ /etc และหน้าต่างที่สามไปที่ /var/log ฉันตั้งชื่อหน้าต่างเหล่านี้อย่างมีความหมาย: Main ฯลฯ บันทึกตามลำดับ ที่ด้านล่างสุดคือแถบสถานะซึ่งแสดงรายการหน้าต่างที่เปิดอยู่ทั้งหมดและไฮไลต์หน้าต่างที่ใช้งานอยู่

การใช้ปุ่มลัดช่วยให้สามารถสลับระหว่างหน้าต่างต่างๆ ได้อย่างรวดเร็วหากจำเป็น นี่คือลักษณะของหน้าต่างการเชื่อมต่อ ssh ที่ทำงานของฉัน:

ฉันสลับระหว่างหน้าต่างโดยใช้ปุ่มลัดหน้าจอมาตรฐาน: ctrl+a 1, ctrl+a 2, ctrl+a 3 ฉันเปลี่ยนการกำหนดหมายเลขเป็นพิเศษเพื่อไม่ให้เริ่มจากค่าเริ่มต้น 0 แต่มาจาก 1 ทำให้สะดวกยิ่งขึ้นในการสลับ หน้าต่างบนแป้นพิมพ์ ปุ่ม 0 อยู่ห่างจาก 1 และ 2 มากเกินไป

หากต้องการตั้งค่าหน้าจอให้ทำงานเหมือนกับฉัน เพียงทำตามขั้นตอนง่ายๆ ไม่กี่ขั้นตอน ก่อนอื่นเราติดตั้งหน้าจอ:

# หน้าจอติดตั้ง apt

สร้างในแค็ตตาล็อก /รากไฟล์การกำหนดค่า .screenrcเนื้อหาต่อไปนี้:

# mcedit /root/.screenrc #แสดงบรรทัดสถานะ hardstatus เสมอlastline "%-Lw%(= BW)%50>%n%f* %t%(-)%+Lw%<" # Добавляем некоторые настройки startup_message off defscrollback 1000 defutf8 on shell -$SHELL # Создаем несколько окон chdir screen -t Main 1 chdir /etc screen -t etc 2 chdir /var/log screen -t logs 3 # Активное первое окно после запуска select 1

หากต้องการทำความคุ้นเคยกับการตั้งค่า ปุ่มลัด และตัวเลือกในการใช้ยูทิลิตี้หน้าจอ คุณสามารถไปที่ http://itman.in/ssh-screen/ เนื้อหานี้ช่วยฉันได้ เขียนสั้นๆ ตรงประเด็นและชัดเจน

บทสรุป

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

ฉันขอเตือนคุณว่าบทความนี้เป็นส่วนหนึ่งของบทความชุดเดียวเกี่ยวกับเซิร์ฟเวอร์

หลักสูตรออนไลน์ "วิศวกรเครือข่าย"

หากคุณมีความปรารถนาที่จะเรียนรู้วิธีสร้างและบำรุงรักษาเครือข่ายที่มีความพร้อมใช้งานสูงและเชื่อถือได้ ฉันขอแนะนำให้เรียนหลักสูตรออนไลน์ Network Engineer จาก OTUS นี่เป็นโปรแกรมดั้งเดิมที่ผสมผสานกับการฝึกฝนระยะไกลบนอุปกรณ์จริงและใบรับรองการศึกษาของ Cisco! นักเรียนจะได้รับทักษะการปฏิบัติในอุปกรณ์ปฏิบัติการโดยใช้ห้องปฏิบัติการออนไลน์ระยะไกลโดยอิงจากพันธมิตรการฝึกอบรม - RTU MIREA: Cisco 1921, Cisco 2801, เราเตอร์ Cisco 2811; คุณสมบัติของสวิตช์ Cisco 2950, ​​​​Cisco 2960:
  • หลักสูตรนี้ประกอบด้วยงานโครงการสองงาน;
  • นักเรียนได้ลงทะเบียนใน Cisco Academy อย่างเป็นทางการ (OTUS, Cisco Academy, ID 400051208) และสามารถเข้าถึงทุกส่วนของหลักสูตรการกำหนดเส้นทางและการสลับ CCNA
  • นักเรียนสามารถทำการสอบและรับพร้อมกับใบรับรอง OTUS ซึ่งเป็นใบรับรองสำหรับหลักสูตร “CCNA Routing and Switching: Scaling Networks”
ทดสอบตัวเองในการสอบเข้าและดูโปรแกรมเพื่อดูรายละเอียดเพิ่มเติม

เวลาที่แม่นยำบนคอมพิวเตอร์เป็นสิ่งที่ดี.. แต่จากการสังเกตของฉัน หลายๆ คนไม่ลองใช้มันด้วยซ้ำ.. ดีที่สุดคือต้องปรับด้วยตนเอง.. :(
Linux มีบริการ ntp ที่ยอดเยี่ยม แต่หลายคนไม่สามารถตั้งค่าได้ เพื่อดำเนินการนี้ คุณต้องอ่านเอกสารจำนวนหนึ่งเพื่อทำความเข้าใจ “วิธีการทำงาน” (c)
ฉันจะพยายามอธิบายสั้น ๆ ถึงวิธีการตั้งค่าและใช้บริการนี้สำหรับผู้ที่ไม่ต้องการหรือไม่สามารถใช้เวลากับสิ่งนี้ได้มาก
มีไว้เพื่ออะไร?
ด้วยบริการที่กำหนดค่าอย่างถูกต้องบนเซิร์ฟเวอร์ คุณจะสามารถซิงโครไนซ์นาฬิกาในคอมพิวเตอร์ทุกเครื่องบนเครือข่ายท้องถิ่น ทั้ง OS Linux และ Windows
สิ่งที่ดีคือไม่จำเป็นต้องเข้าถึงอินเทอร์เน็ตตลอดเวลา เมื่อเซิร์ฟเวอร์มี เซิร์ฟเวอร์จะทำการแก้ไขเวลา ส่วนที่เหลือจะได้รับการซิงโครไนซ์ในเครื่อง
นอกจากนี้ บ่อยครั้งในคอมพิวเตอร์เครื่องเก่า แบตเตอรี่บนเมนบอร์ดเหลือน้อยอยู่แล้ว และเวลากำลังจะหมดลง เมื่อคอมพิวเตอร์เริ่มทำงาน เวลาจะถูกปรับโดยอัตโนมัติ..
จำเป็นต้องติดตั้งอะไรบ้าง?
พื้นที่เก็บข้อมูล Debian มาตรฐานมีแพ็คเกจ: ntp และ ntpdate
apt-get ติดตั้ง ntp ntpdate
โดยหลักการแล้ว หลังจากการติดตั้ง เซิร์ฟเวอร์จะเริ่มทำงานทันที
แต่คุณจะไม่สามารถซิงโครไนซ์กับมันได้..
เมื่อต้องการทำเช่นนี้ คุณต้องแก้ไขบางอย่างใน /etc/ntp.conf..
ด้านล่างนี้คือการกำหนดค่าและความคิดเห็น คุณสามารถแก้ไขได้ด้วยตนเอง:
#=============================================================================
# /etc/ntp.conf การกำหนดค่าสำหรับ ntpd; ดู ntp.conf(5) สำหรับความช่วยเหลือ driftfile /var/lib/ntp/ntp.drift statsdir /var/log/ntpstats/ สถิติ loopstats peerstats clockstats filegen loopstats ไฟล์ loopstats ประเภทวัน เปิดใช้งาน filegen peerstats ไฟล์ peerstats ประเภทวัน เปิดใช้งาน filegen clockstats ไฟล์ clockstats พิมพ์วันที่เปิดใช้งานเซิร์ฟเวอร์ 0.debian.pool.ntp.org เซิร์ฟเวอร์ 1.debian.pool.ntp.org เซิร์ฟเวอร์ 2.debian.pool.ntp.org เซิร์ฟเวอร์ 3.debian.pool.ntp.org เซิร์ฟเวอร์ 2.ru.pool เซิร์ฟเวอร์ ntp.org เซิร์ฟเวอร์ 1.ru.pool.ntp.org เซิร์ฟเวอร์ 3.europe.pool.ntp.org เซิร์ฟเวอร์ 2.europe.pool.ntp.org จำกัด -4 ค่าเริ่มต้น kod notrap nomodify nopeer noquery จำกัด 127.0.0.1 # ข้อ จำกัด เครือข่ายของเรา 192.168.0.0 mask 255.255.255.0 nomodify notrapจำกัด 192.168.255.0 mask 255.255.255.240 nomodify notrap # และนี่คือสิ่งมหัศจรรย์ที่กำหนดระดับความน่าเชื่อถือของเซิร์ฟเวอร์ (strata) ให้กับตัวเองเท่ากับ 3 # โดยสรุป ยิ่งสูงเท่าไร ระดับยิ่งจำนวนต่ำลง 0 คือนาฬิกาอะตอม, #1 ซิงโครไนซ์กับนาฬิกาอะตอม, 2 อยู่กับนาฬิกาเรือนแรก และอื่นๆ เซิร์ฟเวอร์ 127.127.1.1 เหลวไหล 127.127.1.1 ชั้น 3 ========================== ============== =============================================

ตัวอย่างเช่น บนคอมพิวเตอร์ที่ใช้ Windows XP คุณสามารถระบุเซิร์ฟเวอร์ของคุณหรือ ipdaares ในการตั้งค่าวันที่และเวลาและซิงโครไนซ์ได้
ด้วย Windows 98, 200 มันยากกว่า... คุณต้องมีโปรแกรมพิเศษเช่น D4
ซึ่งโดยพื้นฐานแล้วสามารถแก้ไขได้...
สำหรับ Linux - เกือบทุกเวอร์ชันที่ฉันรู้จักมีบริการดังกล่าว.. ฉันไม่คิดว่าการกำหนดค่าจะแตกต่างกันมาก.. :)

สิ่งสำคัญคือต้องรักษาเวลาบนเซิร์ฟเวอร์ที่แม่นยำไม่มากก็น้อย เพื่อให้สะดวกในการอ่านบันทึก เพื่อให้เซิร์ฟเวอร์ของคุณไม่ส่งจดหมายอื่นจากอดีตหรืออนาคต ดังนั้น... มันไม่สำคัญ - มันแค่สำคัญเท่านั้นเอง
เนื่องจากข้อบกพร่องต่างๆ ข้อผิดพลาดของฮาร์ดแวร์ รอบพลังงาน เวลาบนเซิร์ฟเวอร์อาจล่าช้าหรือเร่งรีบเมื่อเทียบกับเวลาอะตอมมิก โดยปกติแล้ว ในทางปฏิบัติ ไม่เกินหนึ่งวินาทีต่อวัน หรือน้อยกว่านั้นด้วยซ้ำ แต่ฮาร์ดแวร์ที่ทำงานไม่ดีอาจทำให้เสียเวลามากขึ้น (โดยทั่วไปแล้ว ความผันผวนอย่างมากของเวลาเป็นเหตุผลที่ต้องคำนึงถึงความสมบูรณ์ของฮาร์ดแวร์)
มีสองวิธียอดนิยมในการซิงโครไนซ์เวลาใน Linux - ntpdate โดยใช้ cron หรือใช้ ntpd ตลอดเวลา คุณมีอิสระที่จะเลือกสิ่งใดสิ่งหนึ่งฉันจะเขียนเกี่ยวกับทั้งสองอย่าง แต่ในนามของฉันเอง ฉันยังคงแนะนำให้ใช้ ntpdate ตามมงกุฎ โดยเฉพาะอย่างยิ่งหากคุณไม่จำเป็นต้องรักษาเวลาบนเซิร์ฟเวอร์อย่างต่อเนื่องโดยมีข้อผิดพลาดน้อยกว่า 0.1 วินาที
มีปัญหากับ ntpd เมื่อช่องโหว่ทำให้สามารถใช้เซิร์ฟเวอร์ ntpd เพื่อทำการโจมตีแบบขยาย udp ได้ (เมื่อแพ็กเก็ตขนาดเล็กที่ส่งไปยังเซิร์ฟเวอร์ของคุณอนุญาตให้คุณสร้างแพ็กเก็ต udp ขนาดใหญ่ไปยังเซิร์ฟเวอร์ที่ถูกโจมตีของผู้อื่น) - http //habrahabr.ru /post/209438/
แน่นอนว่าช่องโหว่นั้นได้รับการแก้ไขแล้ว (และพวกเขาเขียนวิธีหลีกเลี่ยงโดยไม่ต้องอัปเดต ntpd) แต่การรับประกันว่าจะไม่มีปัญหาที่คล้ายกันเหลืออยู่ตรงไหน? และอีกครั้ง ntpd ยังคงทำงานบน udp และการโจมตีประเภทเดียวกันนั้นเป็นไปได้ แม้ว่าจะไม่มีการรับส่งข้อมูลเพิ่มขึ้นมากนัก (แต่สิ่งนี้จะช่วยให้คุณสามารถซ่อนผู้โจมตีได้ ทำให้เซิร์ฟเวอร์ของคุณถูกละเมิด) อย่างไรก็ตาม ฉันบังเอิญเจอความจริงที่ว่า ntpd ที่สร้างไว้ในโมดูล ipmi ของเซิร์ฟเวอร์ นั้นไวต่อการโจมตีนี้ และสนุกกับการสร้างความรำคาญให้กับเพื่อนบ้านของฉันในประเทศ =)
ดังนั้น หากคุณไม่พร้อมที่จะอ่านจดหมายข่าวด้านความปลอดภัย ติดตามการอัปเดต และอื่นๆ คุณก็ไม่ควรติดตั้ง ntpd
ดังนั้นวิธีแรก: รัน ntpdate วันละครั้งตามเม็ดมะยม
เราลบ ntpd หากมี:

รูท@เซิร์ฟเวอร์:~# apt-get ลบ --purge ntpd

ตั้งค่า ntpdate:

รูท@เซิร์ฟเวอร์:~# apt-get ติดตั้ง ntpdate

และสร้างไฟล์ /etc/cron.d/ntpdate โดยมีเนื้อหาดังต่อไปนี้:

0 6 * * * รูท ntpdate ntp.ubuntu.com 1>/dev/null 2>&1

ตอนนี้ทุกวันเวลา 6.00 น. (ตั้งเวลาและความถี่ด้วยตัวเอง) นาฬิกาจะถูกอัปเดต

วิธีที่สอง: nptd
เราจำเป็นต้องพูดในทางกลับกัน:

รูท@เซิร์ฟเวอร์:~# apt-get ติดตั้ง ntpd

และเขียนไปที่ config /etc/ntpd.confการกำหนดค่าที่ถูกต้องมากหรือน้อย:

ปิดการใช้งานการตรวจสอบสิทธิ์
ปิดการใช้งานสถิติ
เซิร์ฟเวอร์ 0.ubuntu.pool.ntp.org
เซิร์ฟเวอร์ 1.ubuntu.pool.ntp.org
เซิร์ฟเวอร์ 2.ubuntu.pool.ntp.org
เซิร์ฟเวอร์ 3.ubuntu.pool.ntp.org

จากนั้นเรารีสตาร์ท:

รูท@เซิร์ฟเวอร์:~# /etc/init.d/ntp รีสตาร์ท

เพียงเท่านี้ นาฬิกาของเราก็ได้รับการปรับตามเวลาจริงและซิงโครไนซ์กับเซิร์ฟเวอร์ ntp มากมาย