wonder
정보보안 스터디 - 7주차 7일 - httpd 웹서버 구성 본문
다른 시스템과의 디스크 연결에서
하드디스크 논리적인 방법으로 레이드를 하고
그걸 마운트까지 할 수 있어야합니다.
☞ 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 제작 후 실행시킵니다.
'Security > 리눅스' 카테고리의 다른 글
정보보안 스터디 - 8주차 6일 - 리눅스 DNS서버 구축 (0) | 2022.12.06 |
---|---|
정보보안 스터디 - 8주차 5일 - tomcat, JSP (0) | 2022.12.05 |
정보보안 스터디 - 7주차 6일 - FTP/NFS/Samba 서버 (0) | 2022.11.29 |
정보보안 스터디 - 7주차 5일 - SSH/SFTP (0) | 2022.11.28 |
정보보안 스터디 - 7주차 2일 - LVM, 레이드, 패키지 (0) | 2022.11.26 |