ຊຸດ RHCSA: ການຕິດຕັ້ງ, ການຕັ້ງຄ່າແລະການຮັກສາຄວາມປອດໄພຂອງເວບໄຊທ໌ແລະ FTP - ພາກທີ 9
ເຄື່ອງແມ່ຂ່າຍເວັບ (ທີ່ເອີ້ນກັນວ່າ HTTP server) ແມ່ນບໍລິການທີ່ຈັດການເນື້ອຫາ (ໜ້າ ເວບໄຊທ໌ສ່ວນໃຫຍ່, ແຕ່ເອກະສານປະເພດອື່ນໆເຊັ່ນດຽວກັນ) ໃຫ້ລູກຄ້າໃນເຄືອຂ່າຍ.
ເຄື່ອງແມ່ຂ່າຍ FTP ແມ່ນຊັບພະຍາກອນ ໜຶ່ງ ທີ່ເກົ່າແກ່ແລະຖືກ ນຳ ໃຊ້ຫຼາຍທີ່ສຸດ (ເຖິງແມ່ນວ່າມື້ນີ້) ເພື່ອເຮັດໃຫ້ແຟ້ມເອກະສານຕ່າງໆໃຫ້ກັບລູກຄ້າໃນເຄືອຂ່າຍໃນກໍລະນີທີ່ບໍ່ມີການກວດສອບຄວາມ ຈຳ ເປັນເນື່ອງຈາກ FTP ໃຊ້ຊື່ຜູ້ໃຊ້ແລະລະຫັດຜ່ານໂດຍບໍ່ຕ້ອງເຂົ້າລະຫັດ.
ເຄື່ອງແມ່ຂ່າຍເວັບທີ່ມີຢູ່ໃນ RHEL 7 ແມ່ນຮຸ່ນ 2.4 ຂອງ Apache HTTP Server. ສຳ ລັບເຄື່ອງແມ່ຂ່າຍຂອງ FTP, ພວກເຮົາຈະ ນຳ ໃຊ້ຫຼາຍຢ່າງທີ່ປອດໄພຫຼາຍ Ft Daemon (aka vsftpd) ເພື່ອສ້າງການເຊື່ອມຕໍ່ທີ່ຮັບປະກັນໂດຍ TLS.
ໃນບົດຄວາມນີ້ພວກເຮົາຈະອະທິບາຍວິທີການຕິດຕັ້ງ, ການຕັ້ງຄ່າແລະຄວາມປອດໄພຂອງເຊີຟເວີເວັບແລະ FTP server ໃນ RHEL 7.
ການຕິດຕັ້ງ Apache ແລະ FTP Server
ໃນຄູ່ມືນີ້ພວກເຮົາຈະ ນຳ ໃຊ້ server ຂອງ RHEL 7 ທີ່ມີ IP address ຄົງທີ່ 192.168.0.18/24. ການຕິດຕັ້ງ Apache ແລະ VSFTPD, ດຳ ເນີນການ ຄຳ ສັ່ງຕໍ່ໄປນີ້:
# yum update && yum install httpd vsftpd
ເມື່ອການຕິດຕັ້ງ ສຳ ເລັດ, ທັງສອງບໍລິການຈະຖືກປິດໃຊ້ງານໃນເບື້ອງຕົ້ນ, ດັ່ງນັ້ນພວກເຮົາ ຈຳ ເປັນຕ້ອງເລີ່ມຕົ້ນດ້ວຍຕົນເອງ ສຳ ລັບເວລາແລະຊ່ວຍໃຫ້ພວກເຂົາເລີ່ມຕົ້ນໂດຍອັດຕະໂນມັດໂດຍເລີ່ມຕົ້ນໃສ່ເກີບຕໍ່ໄປ:
# systemctl start httpd # systemctl enable httpd # systemctl start vsftpd # systemctl enable vsftpd
ນອກຈາກນັ້ນ, ພວກເຮົາຍັງຕ້ອງເປີດພອດ 80 ແລະ 21, ບ່ອນທີ່ເວັບແລະ ftp daemons ກຳ ລັງຟັງຢູ່ຕາມ ລຳ ດັບ, ເພື່ອໃຫ້ສາມາດເຂົ້າເຖິງການບໍລິການເຫຼົ່ານັ້ນຈາກພາຍນອກ:
# firewall-cmd --zone=public --add-port=80/tcp --permanent # firewall-cmd --zone=public --add-service=ftp --permanent # firewall-cmd --reload
ເພື່ອຢືນຢັນວ່າເຄື່ອງແມ່ຂ່າຍເວັບໄຊທ໌້ເຮັດວຽກຢ່າງຖືກຕ້ອງ, ໃຫ້ຕົວທ່ອງເວັບຂອງທ່ານລ້າໆແລະໃສ່ IP ຂອງເຄື່ອງແມ່ຂ່າຍ. ທ່ານຄວນເບິ່ງ ໜ້າ ທົດສອບ:
ສຳ ລັບເຊີຟເວີ ftp, ພວກເຮົາຈະຕ້ອງ ກຳ ຫນົດຄ່າມັນຕື່ມອີກ, ເຊິ່ງພວກເຮົາຈະເຮັດໃນນາທີ ໜຶ່ງ, ກ່ອນທີ່ຈະຢືນຢັນວ່າມັນເຮັດວຽກໄດ້ຕາມຄາດ ໝາຍ.
ການຕັ້ງຄ່າແລະຄວາມປອດໄພຂອງ Apache Web Server
ເອກະສານການຕັ້ງຄ່າຕົ້ນຕໍ ສຳ ລັບ Apache ຕັ້ງຢູ່ໃນ /etc/httpd/conf/httpd.conf
ແຕ່ມັນອາດຈະອີງໃສ່ເອກະສານອື່ນໆທີ່ມີຢູ່ໃນ /etc/httpd/conf.d
.
ເຖິງແມ່ນວ່າການຕັ້ງຄ່າເລີ່ມຕົ້ນຄວນຈະພຽງພໍ ສຳ ລັບກໍລະນີຫຼາຍທີ່ສຸດ, ມັນເປັນການດີທີ່ຈະຄຸ້ນເຄີຍກັບຕົວເລືອກທີ່ມີຢູ່ທັງ ໝົດ ດັ່ງທີ່ໄດ້ອະທິບາຍໄວ້ໃນເອກະສານທາງການ.
ດັ່ງທີ່ເຄີຍເຮັດ, ສຳ ເນົາເອກະສານການຕັ້ງຄ່າ ສຳ ຄັນກ່ອນທີ່ຈະດັດແກ້ມັນ:
# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.$(date +%Y%m%d)
ຈາກນັ້ນເປີດມັນດ້ວຍບັນນາທິການຕົວ ໜັງ ສືທີ່ທ່ານຕ້ອງການແລະຊອກຫາຕົວແປຕໍ່ໄປນີ້:
<
ມາດຕະການຄວາມປອດໄພຄັ້ງ ທຳ ອິດຈະປະກອບດ້ວຍການສ້າງຜູ້ໃຊ້ແລະກຸ່ມທີ່ອຸທິດຕົນ (i. e. tecmint/tecmint) ເພື່ອ ດຳ ເນີນການເຊີຟເວີເວັບແລະເປັນການປ່ຽນພອດເລີ່ມຕົ້ນໃຫ້ສູງຂື້ນ (9000 ໃນກໍລະນີນີ້):
ServerRoot "/etc/httpd" Listen 192.168.0.18:9000 User tecmint Group tecmint DocumentRoot "/var/www/html" ServerName 192.168.0.18:9000
ທ່ານສາມາດທົດສອບເອກະສານການຕັ້ງຄ່າດ້ວຍ.
# apachectl configtest
ແລະຖ້າທຸກຢ່າງບໍ່ເປັນຫຍັງ, ຫຼັງຈາກນັ້ນໃຫ້ທ່ານເລີ່ມຕົ້ນເວັບ server ຄືນ ໃໝ່.
# systemctl restart httpd
ແລະຢ່າລືມເປີດໃຊ້ພອດ ໃໝ່ (ແລະປິດການໃຊ້ງານຂອງພອດເກົ່າ) ຢູ່ໃນ ກຳ ແພງໄຟ:
# firewall-cmd --zone=public --remove-port=80/tcp --permanent # firewall-cmd --zone=public --add-port=9000/tcp --permanent # firewall-cmd --reload
ໃຫ້ສັງເກດວ່າ, ຍ້ອນນະໂຍບາຍ SELinux, ທ່ານພຽງແຕ່ສາມາດໃຊ້ທ່າເຮືອທີ່ສົ່ງກັບ
# semanage port -l | grep -w '^http_port_t'
ສຳ ລັບເວັບເຊີຟເວີ.
ຖ້າທ່ານຕ້ອງການໃຊ້ພອດອື່ນ (ເຊັ່ນ: ພອດ TCP 8100), ທ່ານຈະຕ້ອງເພີ່ມມັນໃສ່ສະພາບການພອດ SELinux ສຳ ລັບການບໍລິການ httpd:
# semanage port -a -t http_port_t -p tcp 8100
ເພື່ອຮັບປະກັນການຕິດຕັ້ງ Apache ຂອງທ່ານຕໍ່ໄປ, ໃຫ້ເຮັດຕາມຂັ້ນຕອນດັ່ງນີ້:
1. ຜູ້ໃຊ້ Apache ກຳ ລັງເຮັດວຽກຢູ່ຄືກັບວ່າບໍ່ຄວນເຂົ້າເຖິງຫອຍ:
# usermod -s /sbin/nologin tecmint
2. ປິດການໃຊ້ລາຍຊື່ໄດເລກະທໍລີເພື່ອປ້ອງກັນບໍ່ໃຫ້ຕົວທ່ອງເວັບສະແດງເນື້ອຫາຂອງໄດເລກະທໍລີຖ້າບໍ່ມີ index.html ຢູ່ໃນໄດເລກະທໍລີນັ້ນ.
ແກ້ໄຂ /etc/httpd/conf/httpd.conf
(ແລະເອກະສານການຕັ້ງຄ່າ ສຳ ລັບເຈົ້າພາບເສມືນ, ຖ້າມີ) ແລະໃຫ້ແນ່ໃຈວ່າຕົວເລືອກ Options Directive, ທັງຢູ່ທາງເທິງແລະໃນລະດັບ block Directory, ຖືກຕັ້ງຄ່າ ເຖິງບໍ່ມີ:
Options None
3. ເຊື່ອງຂໍ້ມູນກ່ຽວກັບເວັບເຊີຟເວີແລະລະບົບປະຕິບັດການໃນການຕອບ HTTP. ແກ້ໄຂ /etc/httpd/conf/httpd.conf
ດັ່ງຕໍ່ໄປນີ້:
ServerTokens Prod ServerSignature Off
ຕອນນີ້ທ່ານພ້ອມແລ້ວທີ່ຈະເລີ່ມຮັບໃຊ້ເນື້ອຫາຈາກໄດເລກະທໍລີ/var/www/html ຂອງທ່ານ.
ການຕັ້ງຄ່າແລະຄວາມປອດໄພຂອງ Server FTP
ເຊັ່ນດຽວກັບກໍລະນີຂອງ Apache, ເອກະສານການຕັ້ງຄ່າຕົ້ນຕໍ ສຳ ລັບ Vsftpd (/etc/vsftpd/vsftpd.conf)
ແມ່ນມີ ຄຳ ເຫັນເປັນຢ່າງດີແລະໃນຂະນະທີ່ການຕັ້ງຄ່າເລີ່ມຕົ້ນຄວນຈະ ເໝາະ ສົມ ສຳ ລັບ ຄຳ ຮ້ອງສະ ໝັກ ສ່ວນໃຫຍ່, ທ່ານຄວນຄຸ້ນເຄີຍກັບ ເອກະສານແລະ ໜ້າ ຜູ້ຊາຍ (man vsftpd.conf)
ເພື່ອໃຫ້ສາມາດໃຊ້ງານ server server ໄດ້ຢ່າງມີປະສິດທິພາບຫຼາຍຂື້ນ (ຂ້ອຍບໍ່ສາມາດເນັ້ນ ໜັກ ວ່າພຽງພໍ!).
ໃນກໍລະນີຂອງພວກເຮົາ, ເຫຼົ່ານີ້ແມ່ນທິດທາງທີ່ ນຳ ໃຊ້:
anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES chroot_local_user=YES allow_writeable_chroot=YES listen=NO listen_ipv6=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES
ໂດຍການໃຊ້ chroot_local_user = YES
, ຜູ້ໃຊ້ໃນທ້ອງຖິ່ນຈະຖືກຕັ້ງຢູ່ໃນຄຸກທີ່ຖືກກັກຂັງໄວ້ໃນບັນຊີຂອງພວກເຂົາທັນທີຫຼັງຈາກເຂົ້າສູ່ລະບົບ. ນີ້ຫມາຍຄວາມວ່າຜູ້ໃຊ້ໃນທ້ອງຖິ່ນຈະບໍ່ສາມາດເຂົ້າເຖິງເອກະສານໃດໆທີ່ຢູ່ນອກລາຍການເຮືອນທີ່ສອດຄ້ອງກັນ.
ສຸດທ້າຍ, ເພື່ອອະນຸຍາດໃຫ້ ftp ອ່ານໄຟລ໌ໃນໄດເລກະທໍລີໂຮມຂອງຜູ້ໃຊ້, ຕັ້ງຄ່າ SELinux boolean ຕໍ່ໄປນີ້:
# setsebool -P ftp_home_dir on
ດຽວນີ້ທ່ານສາມາດເຊື່ອມຕໍ່ກັບ server ftp ໂດຍໃຊ້ລູກຄ້າເຊັ່ນ Filezilla:
ໃຫ້ສັງເກດວ່າຂໍ້ມູນບັນທຶກການດາວໂຫລດແລະອັບໂຫລດບັນທຶກ /var/log/xferlog
ທີ່ບັນທຶກພ້ອມກັບລາຍຊື່ໄດເລກະທໍລີຂ້າງເທິງ:
ບົດສະຫຼຸບ
ໃນບົດແນະ ນຳ ນີ້ພວກເຮົາໄດ້ອະທິບາຍວິທີການຕັ້ງ web ແລະ server ftp. ເນື່ອງຈາກເນື້ອໃນທີ່ກວ້າງຂວາງ, ມັນບໍ່ສາມາດທີ່ຈະເວົ້າເຖິງທຸກແງ່ມຸມຂອງຫົວຂໍ້ເຫຼົ່ານີ້ (ຕົວຢ່າງ: ເວັບໂຮດຕິ້ງເສີຍໆ). ດັ່ງນັ້ນ, ຂ້າພະເຈົ້າຂໍແນະ ນຳ ໃຫ້ທ່ານກວດເບິ່ງບົດຄວາມດີເດັ່ນອື່ນໆໃນເວບໄຊທ໌ນີ້ກ່ຽວກັບ Apache.