Serye sa RHCSA: Pag-instalar, Pag-configure ug Pagsiguro sa Web ug FTP Server - Bahin 9


Ang web server (nailhan usab nga HTTP server) usa ka serbisyo nga nagdumala sa sulud (kasagaran mga panid sa web, apan uban pang mga tipo sa mga dokumento) ngadto sa usa ka kliyente sa usa ka network.

Ang FTP server usa sa labing karaan ug kasagarang gigamit nga mga kapanguhaan (bisan hangtod karon) aron magamit ang mga file sa mga kliyente sa usa ka network sa mga kaso diin wala’y kinahanglan nga pag-authenticate tungod kay ang FTP naggamit sa username ug password nga wala’y pag-encrypt.

Ang web server nga anaa sa RHEL 7 mao ang bersyon 2.4 sa Apache HTTP Server. Sama sa alang sa FTP server, among gamiton ang Very Secure Ftp Daemon (aka vsftpd) aron ma-establisar ang mga koneksyon nga gisiguro sa TLS.

Niini nga artikulo among ipasabut kung giunsa ang pag-install, pag-configure, ug pag-secure sa usa ka web server ug usa ka FTP server sa RHEL 7.

Pag-instalar sa Apache ug FTP Server

Niini nga giya atong gamiton ang RHEL 7 server nga adunay static nga IP address nga 192.168.0.18/24. Aron ma-install ang Apache ug VSFTPD, pagdagan ang mosunud nga mando:

# yum update && yum install httpd vsftpd

Kung makompleto na ang pag-install, ang duha nga mga serbisyo ma-disable sa sinugdanan, mao nga kinahanglan naton nga sugdan kini nga mano-mano sa pagkakaron ug hatagan sila nga awtomatiko nga magsugod sugod sa sunod nga boot:

# systemctl start httpd
# systemctl enable httpd
# systemctl start vsftpd
# systemctl enable vsftpd

Dugang pa, kinahanglan natong ablihan ang mga port 80 ug 21, diin ang web ug ftp nga mga daemon naminaw, matag usa, aron tugutan ang pag-access sa mga serbisyo gikan sa gawas:

# firewall-cmd --zone=public --add-port=80/tcp --permanent
# firewall-cmd --zone=public --add-service=ftp --permanent
# firewall-cmd --reload

Aron makumpirma nga ang web server nagtrabaho sa husto, sugdi ang imong browser ug isulod ang IP sa server. Kinahanglan nimong makita ang panid sa pagsulay:

Sama sa alang sa ftp server, kinahanglan namon nga i-configure kini sa dugang, nga among buhaton sa usa ka minuto, sa wala pa makumpirma nga kini nagtrabaho sama sa gipaabut.

Pag-configure ug Pagsiguro sa Apache Web Server

Ang nag-unang configuration file alang sa Apache nahimutang sa /etc/httpd/conf/httpd.conf, apan kini mahimong magsalig sa ubang mga file nga anaa sulod sa /etc/httpd/conf.d.

Bisan kung ang default nga pag-configure kinahanglan igo alang sa kadaghanan nga mga kaso, maayo nga ideya nga mahimong pamilyar sa tanan nga magamit nga mga kapilian sama sa gihulagway sa opisyal nga dokumentasyon.

Sama sa kanunay, paghimo og backup nga kopya sa nag-unang configuration file sa dili pa kini i-edit:

# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.$(date +%Y%m%d)

Dayon ablihi kini sa imong gusto nga text editor ug pangitaa ang mosunod nga mga variable:

  1. ServerRoot: ang direktoryo diin gitipigan ang configuration, error, ug log files sa server.
  2. Paminaw: nagmando sa Apache sa pagpaminaw sa piho nga IP address ug/o mga pantalan.
  3. Apil: nagtugot sa paglakip sa uban pang mga configuration file, nga kinahanglan anaa. Kung dili, ang server mapakyas, sukwahi sa IncludeOptional nga direktiba, nga hilom nga gibalewala kung wala ang piho nga mga file sa pag-configure.
  4. User ug Grupo: ang ngalan sa user/grupo nga modagan sa httpd nga serbisyo isip.
  5. DocumentRoot: Ang direktoryo diin ang Apache magsilbi sa imong mga dokumento. Pinaagi sa default, ang tanan nga mga hangyo gikuha gikan sa kini nga direktoryo, apan ang simbolikong mga link ug mga alyas mahimong gamiton aron magtudlo sa ubang mga lokasyon.
  6. ServerName: kini nga direktiba nagtakda sa hostname (o IP address) ug port nga gigamit sa server aron mailhan ang kaugalingon.

Ang unang sukod sa seguridad maglangkob sa pagmugna og dedikadong user ug grupo (ie tecmint/tecmint) nga modagan sa web server ug mag-usab sa default port ngadto sa mas taas (9000 sa niini nga kaso):

ServerRoot "/etc/httpd"
Listen 192.168.0.18:9000
User tecmint
Group tecmint
DocumentRoot "/var/www/html"
ServerName 192.168.0.18:9000

Mahimo nimong sulayan ang configuration file gamit ang.

# apachectl configtest

ug kung OK ra ang tanan, i-restart ang web server.

# systemctl restart httpd

ug ayaw kalimot sa pagpagana sa bag-ong pantalan (ug pag-disable sa daan) sa firewall:

# firewall-cmd --zone=public --remove-port=80/tcp --permanent
# firewall-cmd --zone=public --add-port=9000/tcp --permanent
# firewall-cmd --reload

Timan-i nga, tungod sa mga palisiya sa SELinux, mahimo ra nimo gamiton ang mga pantalan nga gibalik ni

# semanage port -l | grep -w '^http_port_t'

alang sa web server.

Kung gusto nimo mogamit ug lain nga pantalan (ie TCP port 8100), kinahanglan nimo nga idugang kini sa konteksto sa SELinux port alang sa serbisyo sa httpd:

# semanage port -a -t http_port_t -p tcp 8100

Aron mas masiguro ang imong pag-install sa Apache, sunda kini nga mga lakang:

1. Ang gumagamit nga Apache nagdagan ingon nga wala’y access sa usa ka kabhang:

# usermod -s /sbin/nologin tecmint

2. I-disable ang listahan sa direktoryo aron mapugngan ang browser sa pagpakita sa mga sulod sa usa ka direktoryo kon walay index.html nga anaa sa maong direktoryo.

I-edit ang /etc/httpd/conf/httpd.conf (ug ang configuration files para sa virtual hosts, kon aduna man) ug siguroha nga ang Options directive, sa ibabaw ug sa Directory block level, gitakda sa Wala:

Options None

3. Tagoa ang impormasyon mahitungod sa web server ug sa operating system sa HTTP nga mga tubag. I-edit ang /etc/httpd/conf/httpd.conf ingon sa mosunod:

ServerTokens Prod 
ServerSignature Off

Karon andam ka na nga magsugod sa pag-alagad sa sulod gikan sa imong /var/www/html nga direktoryo.

Pag-configure ug Pagsiguro sa FTP Server

Sama sa kaso sa Apache, ang nag-unang configuration file alang sa Vsftpd (/etc/vsftpd/vsftpd.conf) maayo nga gikomento ug samtang ang default configuration igo na alang sa kadaghanan sa mga aplikasyon, kinahanglan nga pamilyar ka sa dokumentasyon ug ang man page (man vsftpd.conf) aron maoperahan ang ftp server nga mas episyente (dili nako mahatag og igong gibug-aton!).

Sa among kaso, kini ang mga direktiba nga gigamit:

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

Pinaagi sa paggamit sa chroot_local_user=YES, ang mga lokal nga tiggamit mahimong (sa default) ibutang sa usa ka chroot'ed jail sa ilang home directory pagkahuman dayon sa pag-login. Kini nagpasabut nga ang mga lokal nga tiggamit dili maka-access sa bisan unsang mga file sa gawas sa ilang katugbang nga mga direktoryo sa balay.

Sa katapusan, aron tugutan ang ftp nga magbasa sa mga file sa direktoryo sa balay sa gumagamit, itakda ang mosunud nga SELinux boolean:

# setsebool -P ftp_home_dir on

Mahimo ka na makonektar sa ftp server gamit ang usa ka kliyente sama sa Filezilla:

Timan-i nga ang /var/log/xferlog log nagrekord sa mga pag-download ug pag-upload, nga miuyon sa listahan sa direktoryo sa ibabaw:

Summary

Sa kini nga panudlo gipasabut namon kung giunsa ang pag-set up sa usa ka web ug usa ka ftp server. Tungod sa kadaghanon sa hilisgutan, dili posible nga matabonan ang tanan nga mga aspeto niini nga mga hilisgutan (ie mga virtual web host). Mao nga, girekomenda ko nga susihon usab nimo ang uban pang maayo nga mga artikulo sa kini nga website bahin sa Apache.