ค้นหาเว็บไซต์

การตั้งค่าเซิร์ฟเวอร์เริ่มต้นและการกำหนดค่าบน CentOS 7


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

ความต้องการ

  1. CentOS 7 การติดตั้งขั้นต่ำ

ข้อสำคัญ: ผู้ใช้ RHEL 7 สามารถติดตามบทความนี้เพื่อตั้งค่าเซิร์ฟเวอร์เริ่มต้นบน RHEL 7

อัปเดตระบบ CentOS 7

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

หากต้องการอัปเดตระบบ CentOS 7 โดยสมบูรณ์ ให้ออกคำสั่งต่อไปนี้พร้อมสิทธิ์รูท


yum check-update
yum upgrade

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


yum clean all

ติดตั้งยูทิลิตี้ระบบบน CentOS 7

แพ็คเกจยูทิลิตี้ต่อไปนี้สามารถพิสูจน์ได้ว่ามีประโยชน์สำหรับการดูแลระบบในแต่ละวัน: nano (โปรแกรมแก้ไขข้อความเพื่อแทนที่โปรแกรมแก้ไข vi), wget, curl (ยูทิลิตี้ที่ใช้ในการดาวน์โหลด แพ็คเกจผ่านเครือข่ายเป็นส่วนใหญ่) net-tools, lsof (ยูทิลิตี้สำหรับการจัดการเครือข่ายท้องถิ่น) และ bash-completion (เติมบรรทัดคำสั่งอัตโนมัติ)

ติดตั้งทั้งหมดในครั้งเดียวโดยดำเนินการคำสั่งด้านล่าง


yum install nano wget curl net-tools lsof bash-completion

ตั้งค่าเครือข่ายใน CentOS 7

CentOS 7 มีเครื่องมือมากมายที่สามารถใช้เพื่อกำหนดค่าและจัดการเครือข่าย ตั้งแต่การแก้ไขไฟล์การกำหนดค่าเครือข่ายด้วยตนเองไปจนถึงการใช้คำสั่ง เช่น ip, ifconfig, nmtui, nmcli หรือ เส้นทาง

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

หากต้องการเปลี่ยนชื่อโฮสต์ของระบบผ่านยูทิลิตี nmtui ให้ดำเนินการคำสั่ง nmtui-hostname ตั้งชื่อโฮสต์ของเครื่องแล้วกด ตกลง เพื่อเสร็จสิ้นดังภาพประกอบ ในภาพหน้าจอด้านล่าง


nmtui-hostname

หากต้องการจัดการอินเทอร์เฟซเครือข่าย ให้ดำเนินการคำสั่ง nmtui-edit เลือกอินเทอร์เฟซที่คุณต้องการแก้ไขและเลือก แก้ไข จากเมนูด้านขวา ดังที่แสดงในภาพหน้าจอด้านล่าง


nmtui-edit

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

เพื่อใช้การกำหนดค่าใหม่ของอินเทอร์เฟซเครือข่าย ให้ดำเนินการคำสั่ง nmtui-connect เลือกอินเทอร์เฟซที่คุณต้องการจัดการ และกดที่ตัวเลือก ปิดใช้งาน/เปิดใช้งาน เพื่อเลิกใช้งานและเพิ่มขึ้น อินเทอร์เฟซพร้อมการตั้งค่า IP ดังที่แสดงในภาพหน้าจอด้านล่าง


nmtui-connect

หากต้องการดูการตั้งค่าอินเทอร์เฟซเครือข่าย คุณสามารถตรวจสอบเนื้อหาของไฟล์อินเทอร์เฟซหรือออกคำสั่งด้านล่างได้


ifconfig enp0s3
ip a
ping -c2 google.com

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


ethtool enp0s3
mii-tool enp0s3

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

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


netstat -tulpn
ss -tulpn
lsof -i4 -6

จัดการบริการใน CentOS 7

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


systemctl list-units

หากต้องการตรวจสอบว่า daemon หรือบริการเปิดใช้งานให้เริ่มทำงานโดยอัตโนมัติเมื่อระบบเริ่มทำงานหรือไม่ ให้ออกคำสั่งต่อไปนี้


systemctl list-unit-files -t service

หากต้องการแสดงรายการบริการ SysV เก่าที่มีอยู่ในระบบของคุณและปิดการใช้งานให้ใช้คำสั่ง chkconfig ต่อไปนี้


chkconfig --list
chkconfig service_name off

5. ปิดการใช้งานบริการที่ไม่ต้องการใน CentOS 7

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

ตัวอย่างเช่น Postfix daemon ได้รับการติดตั้งและเปิดใช้งานตามค่าเริ่มต้นใน CentOS 7 หากระบบของคุณไม่จำเป็นต้องใช้เมลเซิร์ฟเวอร์ วิธีที่ดีที่สุดคือหยุด ปิดใช้งาน และลบบริการ postfix โดยออกคำสั่งด้านล่าง .


systemctl stop postfix
systemctl disable postfix
yum remove postfix

นอกจากคำสั่ง netstat, ss, lsof หรือ systemctl แล้ว คุณยังสามารถเรียกใช้คำสั่ง ps, top หรือ pstree เพื่อค้นหาและระบุบริการที่ไม่ต้องการที่ทำงานอยู่ในระบบของคุณ และปิดการใช้งานหรือลบออก

ตามค่าเริ่มต้น ยูทิลิตี้ pstree จะไม่ถูกติดตั้งใน CentOS 7 หากต้องการติดตั้งให้รันคำสั่งต่อไปนี้


yum install psmisc
pstree -p

เปิดใช้งานไฟร์วอลล์ใน CentOs 7

Firewalld เป็นยูทิลิตี้ไฟร์วอลล์หลักที่ใช้โต้ตอบเพื่อจัดการกฎ iptables
หากต้องการเปิดใช้งานและเริ่มและตรวจสอบไฟร์วอลล์ใน CentOS 7 ให้ดำเนินการคำสั่งต่อไปนี้


systemctl enable firewalld
systemctl start firewalld
systemctl status firewalld

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


firewall-cmd --add-service=[tab]  #List services
firewall-cmd --add-service=ssh
firewall-cmd --add-service=ssh --permanent

ในกรณีที่บริการถูกกำหนดไว้ในกฎไฟร์วอลล์แล้ว คุณสามารถเพิ่มพอร์ตบริการด้วยตนเองได้ ดังที่แสดงในตัวอย่างด้านล่าง


firewall-cmd --add-port=22/tcp --permanent
firewall-cmd --reload     #Apply the rule on-fly

เปิดใช้งานสิทธิ์ Sudo ในบัญชีผู้ใช้

เพื่อให้สิทธิ์การรูทสำหรับผู้ใช้ปกติ ขั้นแรกให้สร้างผู้ใช้โดยออกคำสั่ง adduser ตั้งรหัสผ่านสำหรับผู้ใช้ และให้สิทธิ์รูทแก่ผู้ใช้โดยดำเนินการคำสั่งด้านล่าง ซึ่งจะเพิ่มผู้ใช้ใหม่ในกลุ่มผู้ดูแลระบบ


adduser tecmint
passwd tecmint
usermod -aG wheel tecmint

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


su - tecmint
sudo yum update

กำหนดค่าการตรวจสอบสิทธิ์คีย์สาธารณะ SSH บน CentOS 7

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

อย่าป้อนข้อความรหัสผ่านในกรณีที่คุณต้องการทำให้การจัดการเซิร์ฟเวอร์เป็นอัตโนมัติผ่าน SSH


ssh-keygen -t RSA

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


ssh-copy-id remote_user@SSH_SERVER_IP

หลังจากที่คัดลอกคีย์สาธารณะ SSH ไปยังเซิร์ฟเวอร์ระยะไกลแล้ว ให้เข้าสู่ระบบเซิร์ฟเวอร์ SSH ระยะไกลด้วยคำสั่งต่อไปนี้


ssh remote_user@SSH_SERVER_IP

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


PermitRootLogin no

หากต้องการใช้การตั้งค่า คุณต้องรีสตาร์ทบริการ SSH เพื่อที่จะใช้การกำหนดค่าใหม่


systemctl restart sshd

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

เพื่อรักษาความปลอดภัยและเสริมความแข็งแกร่งให้กับเซิร์ฟเวอร์ CentOS 7 โปรดดูบทความต่อไปนี้

  1. Mega Guide เพื่อเสริมความแข็งแกร่งและรักษาความปลอดภัย CentOS 7 – ตอนที่ 1
  2. Mega Guide เพื่อเสริมความแข็งแกร่งและรักษาความปลอดภัย CentOS 7 – ตอนที่ 2

หากคุณวางแผนที่จะปรับใช้เว็บไซต์บนระบบ CentOS 7 นี้ โปรดเรียนรู้วิธีตั้งค่าและกำหนดค่า LAMP Stack หรือ LEMP Stack