Web Service
- HTTP protocol에 의해 내용이 전송된다.
- 80/TCP 가끔 8080/tcp 443/tcp(http)
//웹 서버 테스트
yum install -y httpd
systemctl start httpd
firewall-cmd --add-service=http --permanent
firewall-cmd --reload
mkdir /var/www/html2
cd /var/www/html2
echo "hi" > hello.html
vi /etc/httpd/conf/httpd.conf
42 Listen 8080 //웹 서버가 페이지 요청을 수신할 네트워크 인터페이스 및 포트 지정.
//8080번 포트에서 요청을 수신하겠다.
119 DocumentRoot "/var/www/html2" //웹 서버가 웹 서비스를 통해 표시할 디렉토리를 지정.
121 <Directory "/var/www/html2"> //html2 디렉토리에 적용될 지시어 그룹.
122 AllowOverride None
123 # Allow open access:
124 Options Indexes FollowSymLinks
125 Require all granted
126 </Directory>
systemctl restart httpd
firewall-cmd --add-port=8080/tcp
firewall-cmd --list-all
setenforce 0
getenforce
-> 192.168.122.200:8080/hello.html 로 접속
hi
확인
* 사용자 페이지 생성 및 테스트
- Server
yum install -y bind*
systemctl start named.service
firewall-cmd --add-service=dns --permanent
firewall-cmd --reload
cp /var/named/named.empty /var/named/data/20200604.zone
vi /var/named/data/20200604.zone
$TTL 3H
@ IN SOA ns.20200604.co.kr root.20200604.co.kr.(
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS ns.20200604.co.kr.
IN A 192.168.122.200
ns IN A 192.168.122.200
www IN A 192.168.122.200
first IN CNAME www
second IN CNAME www
vi /etc/named.conf
13 listen-on port 53 { any; };
14 listen-on-v6 port 53 { none; };
21 allow-query { any; };
59 zone "20200604.co.kr." IN {
60 type master;
61 file "data/20200604.zone";
62 };
chmod -R 754 /var/named
systemctl restart named.service
setenforce 0
getenforce
- Client
yum install -y bind-utils
nslookup www.google.com
nslookup www.20200604.co.kr 192.168.122.200
Server: 192.168.122.200
Address: 192.168.122.200#53
Name: www.20200604.co.kr
Address: 192.168.122.200
* 이름 기반 가상 호스트 구성
- Server
mkdir /var/www/html2
echo "hihihi" > /var/www/html/index.html
echo "world!" > /var/www/html2/index.html
vi /etc/httpd/conf.d/virtualhost.conf
<VirtualHost 192.168.122.200:8080>
DocumentRoot "/var/www/html"
ServerName "first.20200604.co.kr"
</VirtualHost>
<VirtualHost 192.168.122.200:8080>
DocumentRoot "/var/www/html2"
ServerName "second.20200604.co.kr"
</VirtualHost>
systemctl restart httpd.service
- Client
nslookup first.20200604.co.kr 192.168.122.200
Server: 192.168.122.200
Address: 192.168.122.200#53
first.20200604.co.kr canonical name = www.20200604.co.kr.
Name: www.20200604.co.kr
Address: 192.168.122.200
nslookup second.20200604.co.kr 192.168.122.200
Server: 192.168.122.200
Address: 192.168.122.200#53
second.20200604.co.kr canonical name = www.20200604.co.kr.
Name: www.20200604.co.kr
Address: 192.168.122.200
apt-get install curl
vi /etc/resolv.conf
nameserver 192.168.122.200
nameserver 8.8.8.8
curl first.20200604.co.kr
hihihi
curl second.20200604.co.kr
world!
* IP 기반 가상 호스트 구성
- Server
vi /etc/httpd/conf.d/virtualhost.conf
<VirtualHost 192.168.122.200:8080>
DocumentRoot "/var/www/html"
ServerName "first.20200604.co.kr"
</VirtualHost>
<VirtualHost 192.168.122.150:8080> //200->150
DocumentRoot "/var/www/html2"
ServerName "second.20200604.co.kr"
</VirtualHost>
systemctl restart named.service
systemctl restart httpd.service
- Client
curl 192.168.122.150:8080
world!
* HTTPS
SSL / TLS
- 기밀성 : 통신 내용의 노출을 막을 수 있다. (대칭키)
- 무결성 : 데이터가 변조되지 않음을 확인할 수 있다.
- 인증 : 접속하려는 서버임을 보장. (공개키)
- SSL 인증서
- 내용
- 서비스의 정보 (인증서를 발급한 CA, 서비스의 도메인)
- 서버의 공개키 (서비스의 공개키)
클라이언트 -> HTTPS 서버 : 연결 요청 -> 임의 데이터 추가 -> 자기가 사용할 수 있는 암호화 방식 추가
HTTPS 서버 -> 클라이언트 : 서버가 가지고 있는 인증서(서버의 공개키가 같이 들어있다) 전달
클라이언트 : CA 서버가 전달한 인증서가 맞는지 확인한다. (틀리면 차단)
클라이언트 -> HTTPS 서버 : 공개키(대칭키)
HTTPS 서버 -> 클라이언트 : 내용 전달
* HTTPS 전송을 위한 서버구성
// 개인키 생성
openssl genrsa -out private.key 2048
// CSR(Certificate Signing Request) 생성
openssl req -new -key private.key -out cert.csr
KR
Seoul
Seoul
Linux
root
www.20200604.co.kr
user@20200604.co.kr
openssl x509 -req -signkey private.key -in cert.csr -out cert.crt
mv /root/cert.crt /etc/pki/tls/certs
mv /root/private.key /etc/pki/tls/private
restorecon -Rv /etc/pki/tls
chmod 600 /etc/pki/tls/private/private.key
// SSL/TLS 설정
vi /etc/httpd/conf.d/ssl.conf
<VitrualHost _default_:443>
DocumentRoot "/var/www/html"
ServerName www.20200604.co.kr:443
SSLCertificateFile /etc/pki/tls/certs/cert.crt
SSLCertificateKeyFile /root/pki/tls/private/private.key
</VirtualHost>
systemctl restart httpd.service
'Linux' 카테고리의 다른 글
고급 권한 관리 (0) | 2020.06.18 |
---|---|
Linux로 wordpress 구축하기 (0) | 2020.06.12 |
iSCSI 블록 스토리지 (0) | 2020.06.03 |
SMB Storage (0) | 2020.06.03 |
NFS Storage (autofs) (0) | 2020.06.02 |
댓글