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

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


ในบทช่วยสอนนี้ เราจะพูดถึงขั้นตอนการกำหนดค่าแรกที่คุณต้องดูแลหลังจากการติดตั้ง Red Hat Enterprise Linux 7 ใหม่บนเซิร์ฟเวอร์ Bare Metal หรือบนเซิร์ฟเวอร์ส่วนตัวเสมือน

ความต้องการ

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

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

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

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

yum check-update
yum update

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

yum clean all

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

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

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


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

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

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

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

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


nmtui-hostname

หากต้องการจัดการอินเทอร์เฟซเครือข่าย ให้ดำเนินการคำสั่ง 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

สร้างบัญชีผู้ใช้ใหม่

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

adduser tecmint_user

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

passwd tecmint_user

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

chage -d0 tecmint_user

บัญชีผู้ใช้ใหม่นี้ซึ่งมีสิทธิ์การใช้งานบัญชีปกติในขณะนี้ และไม่สามารถทำงานด้านการดูแลระบบผ่านคำสั่ง sudo ได้

เพื่อหลีกเลี่ยงการใช้บัญชีรูทเพื่อดำเนินการสิทธิ์ผู้ดูแลระบบ ให้มอบสิทธิ์ผู้ดูแลระบบให้กับผู้ใช้ใหม่นี้โดยการเพิ่มผู้ใช้ในกลุ่มระบบ “wheel

ตามค่าเริ่มต้น ผู้ใช้ที่อยู่ในกลุ่ม “wheel” จะได้รับอนุญาตให้รันคำสั่งที่มีสิทธิ์รูทได้โดยใช้ยูทิลิตี sudo ก่อนที่จะเขียนคำสั่งที่จำเป็นสำหรับการดำเนินการ

ตัวอย่างเช่น หากต้องการเพิ่มผู้ใช้ “tecmint_user ” ลงในกลุ่ม “wheel ” ให้ดำเนินการคำสั่งด้านล่าง

usermod -aG wheel tecmint_user

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

su - tecmint_user
sudo yum update

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

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

su - tecmint_user
ssh-keygen -t RSA

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

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

ssh-copy-id [email 

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

ssh [email 

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

cat ~/.ssh/id_rsa

รักษาความปลอดภัย SSH บน RHEL 7

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

sudo vi /etc/ssh/sshd_config

ค้นหาบรรทัด #PermitRootLogin ใช่ ยกเลิกหมายเหตุบรรทัดโดยลบเครื่องหมาย # (แฮชแท็ก) ออกจากจุดเริ่มต้นของบรรทัด และแก้ไขบรรทัดให้มีลักษณะเหมือนที่แสดงด้านล่าง ข้อความที่ตัดตอนมา

PermitRootLogin no

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

sudo systemctl restart sshd

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

เพื่อเปิดใช้งานคุณลักษณะนี้ทั่วทั้งระบบ ให้ดำเนินการคำสั่งด้านล่าง ซึ่งจะเพิ่มตัวแปร bash TMOUT ให้กับไฟล์ bashrc หลัก และบังคับให้การเชื่อมต่อ SSH ทุกรายการถูกตัดการเชื่อมต่อหรือหลุด- ออกไปหลังจากไม่มีการใช้งาน 5 นาที

su -c 'echo "TMOUT=300" >> /etc/bashrc'

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

tail /etc/bashrc

ในภาพหน้าจอด้านล่าง เซสชัน SSH ระยะไกลจากเครื่อง drupal ไปยังเซิร์ฟเวอร์ RHEL จะถูกออกจากระบบโดยอัตโนมัติหลังจากผ่านไป 5 นาที

กำหนดค่าไฟร์วอลล์บน RHEL 7

ในขั้นตอนถัดไปกำหนดค่าไฟร์วอลล์เพื่อรักษาความปลอดภัยระบบในระดับเครือข่ายเพิ่มเติม RHEL 7 มาพร้อมกับแอปพลิเคชัน Firewalld เพื่อจัดการกฎ iptables บนเซิร์ฟเวอร์

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

sudo systemctl status firewalld
sudo systemctl start firewalld
sudo systemctl enable firewalld

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

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

sudo firewall-cmd --add-service=ssh --permanent
sudo firewall-cmd --reload

หากต้องการเพิ่มกฎไฟร์วอลล์ทันทีโดยไม่ต้องใช้กฎในครั้งถัดไปที่เซิร์ฟเวอร์เริ่มทำงาน ให้ใช้ไวยากรณ์คำสั่งด้านล่าง

sudo firewall-cmd --add-service=sshd

หากคุณติดตั้งบริการเครือข่ายอื่นๆ ในเซิร์ฟเวอร์ของคุณ เช่น เซิร์ฟเวอร์ HTTP, เมลเซิร์ฟเวอร์ หรือบริการเครือข่ายอื่นๆ คุณสามารถเพิ่มกฎเพื่ออนุญาตการเชื่อมต่อเฉพาะได้ดังต่อไปนี้

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --permanent --add-service=smtp

หากต้องการแสดงรายการกฎไฟร์วอลล์ทั้งหมดให้รันคำสั่งด้านล่าง

sudo firewall-cmd --permanent --list-all

ลบบริการที่ไม่จำเป็นใน RHEL 7

หากต้องการรับรายการบริการเครือข่ายทั้งหมด (TCP และ UDP) ที่ทำงานอยู่ในเซิร์ฟเวอร์ RHEL ของคุณตามค่าเริ่มต้น ให้ใช้คำสั่ง ss ดังที่แสดงในตัวอย่างด้านล่าง

sudo ss -tulpn

คำสั่ง ss จะแสดงบริการที่น่าสนใจซึ่งเริ่มต้นและทำงานตามค่าเริ่มต้นในระบบของคุณ เช่น บริการหลัก Postfix และเซิร์ฟเวอร์ที่รับผิดชอบโปรโตคอล NTP

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

sudo systemctl stop postfix.service 
sudo yum remove postfix

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

sudo systemctl stop chronyd.service 
sudo yum remove chrony

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

sudo ss -tulpn

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

sudo yum install ntpdate
sudo ntpdate 0.uk.pool.ntp.org

หากต้องการให้คำสั่งซิงโครไนซ์เวลา ntpdate เป็นอัตโนมัติเพื่อให้ดำเนินการทุกวันโดยที่ผู้ใช้ไม่ต้องดำเนินการใดๆ ให้กำหนดเวลางาน crontab ใหม่ให้ทำงานตอนเที่ยงคืนโดยมีเนื้อหาต่อไปนี้

sudo crontab -e

ข้อความที่ตัดตอนมาจากไฟล์ Crontab:

@daily /usr/sbin/ntpdate 0.uk.pool.ntp.org

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

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

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

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