wonder

정보보안 스터디 - 7주차 7일 - httpd 웹서버 구성 본문

Security/리눅스

정보보안 스터디 - 7주차 7일 - httpd 웹서버 구성

wonder12 2022. 11. 30. 22:29

다른 시스템과의 디스크 연결에서

하드디스크 논리적인 방법으로 레이드를 하고

그걸 마운트까지 할 수 있어야합니다.

 

 

☞ Samba 서버 

서로다른 운영체제에서 파일을 손쉽게 공유하기 위해 만들어졌습니다.

 

 리눅스에서 윈도우로 공유

가장 많은 사례입니다.

 

yum -y install smb 

 

systemctl enable --now smb nmb

 

smbuser 계정을 만듭니다. 여기서 passwd파일에 있는 계정과 같아야합니다.

conf 파일설정을합니다. 공유할 파일경로를 지정하고 읽고쓰기가 가능하도록 설정할 수 있습니다.

/public으로 공유디렉토리를 설정 합니다.

 

리눅스에서 /test/share1생성, file1까지만들고

삭제/쓰기할 수 있게 chmod 해줍니다.

 

netstat -ntpl을 보면

서버에서는 항상 리슨상태이기 때문에

 

윈도우에서 실행으로 \\192.168.2.200 들어오기만하면 끝입니다.

 

 

연결확인

 

리눅스

윈도우

netstat -ntp
포트이름, 프로세스이름 확인
서버 445포트에 << 클라이언트가 연결되어있습니다.
smbstatus
net use

 

 

 

 

 

 

 

윈도우에서 리눅스로 공유

윈도우에서는 실행창으로 바로 마운트했던 것을 리눅스에서는 명령어로 마운트해주는 개념입니다.

 

윈도우 컴퓨터관리에 들어가서 user1 계정을 만들고

C드라이브 루트디렉토리에 samba폴더를만듭니다.

폴더 속성>공유에서 user1에 대해서 읽고 쓰기가 가능하도록 설정합니다.

 

그리고 윈도우도 프로세스에 항상 실행되기 때문에

리눅스에서 마운트만 하면됩니다.

mount -t cifs //192.168.2.1/public /mnt/samba -o user1
또는
mount.cifs //192.168.2.1/public /mnt/samba -o user1
> password입력
df -h

마운트가 되었다면 ls -l /mnt/samba로 확인하면 파일이 있습니다. 쓰기/삭제 가 가능합니다.

 

 

마운트를 유지하려면 fstab설정뿐만아니라 리눅스를 재부팅할 때 로그인되어있는 상태여야 정상적으로 부팅되므로 /etc/samba/cred 파일에 username과 password를 작성해둡니다.

cat << EOF >> cred
username = user1
password = user1
EOF

 

해당 cred파일은 보안상 계정정보를 확인할 수 있으므로 chmod 600 권한변경합니다.

또한 fstab에서의 설정은 credential: 추가합니다.

 

 

 

리눅스에서 리눅스로 공유

물론 리눅스끼리도 가능합니다.

 

클라이언트나 서버나 서로 enable상태이므로 마운트만 하면됩니다.

mount.cifs //192.168.2.200/public /mnt/samba

 

역시 마운트를 유지하려면 cred파일이 필요합니다.

 

 

사실상 nfs와 같은 기능을 하고, 서로 파일의 읽고 쓰고 실행이 되는 것은 같지만 약간 개념이 다릅니다.

nfs는 용량이큰 시스템으로 마운트하는거라면 삼바는 간단하게 파일 공유를 하려고 하는것입니다.

 

 

 

mysql

설치

yum -y install mariadb-server

 

실행

systemctl 

 

초기 비밀번호는 설정되어있지 않으므로 빠르게 설정합니다.

mysql_secure_installation

 

mysql 접속후 다른 사용자 계정을 만들고 권한도 줍니다.

다시 루트로 와서

create database

create table user1(id int,name varchar(10),..)

desc users;

insert into values()

데이터를 넣어줍니다.

 

 

 

httpd 웹서버

웹서버는 많이 사용하는 데몬인 apache로 구축합니다.

 

80번 포트의 웹서버에서 디렉토리의 html파일을 다운받아 읽는 개념입니다.

https 모듈 패키지인 ssl 을 같이 설치해줍니다.

 

 httpd -v

아파치 버전확인

 

 

웹서버 구축

systemctl enable --now httpd

 

 

echo "Hello Web Server" > /var/www/html/index.html

 

클라이언트에서는

curl http://192.168.2.200

html 반응이 옵니다.

curl -k https://

curl -I

버전확인가능합니다.

 

telnet 192.168.2.200 80 

GET / HTTP/1.0  

으로 포트번호를 바꿔도 웹서버 반응확인이 가능합니다.

 

 클라이언트( X윈도우 그래픽기반)

firefox http://192.168.2.200 &

 

실제 PC

웹서버 방문> 연결

 

 

netstat -ntpl은

리슨을 확인가능하고,

netstat -ntp를 보면

80 443 연결되있는 걸 확인 가능합니다.

 

 

 

사용자 웹 페이지 구성(가상디렉토리)

/var/www는 외부의 다수사용자가 서버를 방문할 때 쓰는것이고 

관리자페이지 등을 위한 설정이 필요합니다.

 

루트가 아닌 user1에 대해 접속하기 위한 설정

user1계정에서 

/home/user1/public_html 디렉토리를 만들고

server1 > index.html 만듭니다.

 

그다음 서버의 conf.d/userdir.conf 설정에서

#Userdir disabled를 주석처리하고

UserDir public_html을 주석삭제하여 유저 디렉토리에 접근 가능하도록합니다.

 

이제 클라이언트에서

curl http://192.168.2.200/~user1/index.html 또는

실제로 접속하면

상위디렉토리로 넘어가 /home/user1이라는 디렉토리를 사용할 수 있게 됩니다.

 

alias 설정으로 /user1 로 접속이 가능합니다.

 

 

user2는 물리 디렉토리를 사용합니다.

루트 디렉토리가 DocumentRoot "/var/www/html" 이므로

안에 user2디렉을 생성합니다.

 

주 설정파일은 /etc/httpd/conf/httpd.conf로

DocmentRoot 루트디렉토리 변경가능합니다.

원래는 http://192.168.2.200/var/www/html/index.html 경로가 맞지만

alias 축약하여 /var/www/html을 제외하고 사용 할 수 있습니다.

 

 

 

 

 

 

httpd 구조입니다.

 

 

 

 

httpd.conf 설정 중요 지시자

환경 설정

서버 설정

 

 

 

 

CGI(Common Gateway Interface) 

 

CGI는 브라우저와 서버 중간에서 http요청을 받아서 서버에게 대신 질의를 합니다. 응답도 받아와 줍니다.

용도는 동적 html과 데이터베이스 질의 처리를 위함입니다.

 

c++ , python, perl등 언어로 프로그램 제작이 가능합니다.

 

 

 

 가상 호스트 구성

/www1 디렉토리를 사용하는 가상 호스트를 구성합니다.

 

 

 

쉘 스크립트 CGI 구성

/www1/cgi-bin 디렉토리를 생성 후, test.cgi(쉘 스크립트)를 만듭니다.

#!/bin/bash 를 코드에 포함합니다.

실행권한도 부여해줍니다.

 

 

 

perl 스크립트 사용

epel 과 perl을 설치해준 뒤

perl.conf 설정파일의 주석을 삭제해주고

스크립트를 제작하여 테스트합니다.

 

 

/www/cgi-bin에 스크립트파일을 작성하고 넣어두면

 

php, perl, 스크립트 등 코딩을하면 mysql 관련해서 데이터도 볼 수 있고

명령어를 사용하여 웹서버를 구축할 수 있습니다.

 

 

 

php 스크립트 사용

mysql과 연동되는 패키지까지 설치해주고 

echo <?php phpinfo ?> > /www1/index.php 제작 후 실행시킵니다.

 

 

 

 

 

 

 

 

 

Comments