본문 바로가기

Engineer/virtual machine

[리눅스] 우분투 ubuntu 마스터 네임서버 설치 및 운영

웹서버의 설정(Server- Ubuntu 20.04 GUI버전) 

root@server:~# apt -y install apache2

아파치 웹서버 설치 

root@server:~# systemctl restart apache2
root@server:~# systemctl enable apache2
Synchronizing state of apache2.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable apache2
root@server:~# systemctl status apache2
● apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor prese>
     Active: active (running) since Thu 2023-08-03 22:08:17 KST; 18s ago
       Docs: https://httpd.apache.org/docs/2.4/
   Main PID: 4391 (apache2)
      Tasks: 55 (limit: 2285)
     Memory: 5.5M
     CGroup: /system.slice/apache2.service
             ├─4391 /usr/sbin/apache2 -k start
             ├─4392 /usr/sbin/apache2 -k start
             └─4393 /usr/sbin/apache2 -k start

 8월 03 22:08:17 server systemd[1]: Starting The Apache HTTP Server...
 8월 03 22:08:17 server apachectl[4390]: AH00558: apache2: Could not reliably d>
 8월 03 22:08:17 server systemd[1]: Started The Apache HTTP Server.

서비스이므로 systemctl restart/enable/status apache2를 순서대로 하고, active 상태를 확인한다.

root@server:~# ufw allow 80
규칙이 추가되었습니다
규칙이 추가되었습니다 (v6)

웹 서버의 포트인 80번을 허가해 준다.

root@server:~# cd /var/www/html
root@server:/var/www/html# rm index.html
root@server:/var/www/html# gedit index.html

var/www/html로 이동해서 index.html을 지우고, index.html을 열어 다음과 같이 수정하고 저장하고 닫는다. 

웹서버의 설정(Server(B) FTP서버- 우분투 20.04 CUI버전)

apt -y install vsftpd #ftp서버 설치
ufw allow 21 #방화벽 허용
cd /srv/ftp/ #디렉터리 이동
touch welcome.msg #파일 생성 
nano welcome.msg #파일 수정

파일 수정을 열고 아래와 같이 수정한 후에 저장 후 닫는다.

nano -c /etc/vsfpd.conf

nano파일을 열어서 다음과 같이 수정한다.

외부에서 anonymous 사용자로 접속이 가능하고, FTP로 접속했을 때 /srv/ftp/welcome.msg 파일의 내용을 환영메시지로 보여주라는 이야기이다. 

다 되었으면 systemctl restart vsftpd로 FTP서버를 시작한다.

systemctl restart vsftpd

 

 

john.com 도메인의의 설정(Server- Ubuntu 20.04 GUI버전) 

nano /etc/bind/named.conf

 

이렇게 안 나오는 경우

apt -y install bind9 bind9utils
systemctl restart named
systemctl enable named
systemctl status named

를 하고 다시 해보면 나올 것이다. bind 패키지가 설치 안돼서 안 열리는 것이다.

root@server:~# named-checkconf

맞춤법이 맞았는지 확인한다.  

root@server:~# cd /etc/bind
root@server:/etc/bind# touch john.com.db
root@server:/etc/bind# pwd
/etc/bind
root@server:/etc/bind# ls
bind.keys  db.empty     named.conf.default-zones  zones.rfc1918
db.0       db.local     named.conf.local
db.127     john.com.db  named.conf.options
db.255     named.conf   rndc.key

똑같이 실행해 주면 ls에 john.com.db가 생긴 것을 확인할 수 있다.

b

nano john.com.db

nano 파일을 열어 다음과 같이 수정한다. 해당 내용을 이해하기 위해 잠깐 표로 내용을 정리했다. 이 파일을 포워드 존 파일 또는 정방향 영역 파일이라고 한다.

;(세미콜론) 주석
$TTL Time To Live의 약자 존서버에 호스트 이름을 질의해갔을 경우, 질의해간 다른 네임서버가 해당 IP 주소를 캐시에 저장하는 시간을 말한다. 3H는 3시간을 의미한다.
@ /etc/bind/named.conf에 정의한 john.com
IN 클래스 이름, 인터넷을 의미 
SOA Start Of Authority
()안의 숫자 
1.  serial number 
2. refresh 상위 네임 서버에 업데이트 정보를 요청하는 기간 
3. retry 상위 네임 서버에 문제가 발생했을 때 재접속 간격
4. expire 상위 네임 서버에 접속하지 못하는 경우 이전의 정보를 파기하는 간격 
5. minimum 이  시간 이후 정보가 삭제됨 
*H는 Hour,D는 Day, W는 Week의 약자  
NS Name Server의 약자로, 설정된 도메인의 네임 서버 역할을 하는 컴퓨터를 지정 
MX Mail Exchanger의 약자, 메일 서버 컴퓨터를 설정
A 호스트 이름에 상응하는 IP주소를 지정 
CNAME 호스트 이름에 별칭을 부여할 때 사용 
root@server:/etc/bind# named-checkzone john.com john.com.db
zone john.com/IN: loaded serial 2
OK

틀린 것이 있는지 확인해 본다. 이렇게 떠야 제대로 된 것이다. 

root@server:/etc/bind# systemctl restart bind9
root@server:/etc/bind# systemctl enable bind9
root@server:/etc/bind# ufw status
상태: 활성

목적                         동작          출발
--                         --          --
80                         ALLOW       Anywhere                  
53                         ALLOW       Anywhere                  
80 (v6)                    ALLOW       Anywhere (v6)             
53 (v6)                    ALLOW       Anywhere (v6)

클라이언트의 설정(Server- kubuntu 20.04 GUI버전)

명령어로 192.168.111.100(본인의 john 서버)으로 되어있는지 확인한다. 

인터넷을 접속해 보면 위와 같이 뜬다. 

이제 ftp로도 접속할 수 있다. 

Winclient의 설정(window 7 64비트 운영체제) 

 

다 설정하고 나면 john서버에 들어가진다.

관리자 권한으로 들어가서 바꿀 수도 있는데 

필자는 로컬 영역으로 되어있어서 안됐다. 그래서 직접 바꿔주었다. 아직까지 방법을 찾지 못했다.

하지만 여기에 만약 로컬 영역 연결이 아니라 Ethernet0이라고 뜬다면 netsh interface ip set dns "Ethernet0" static 192.168.111.100 명령으로 DNS서버를 수동으로 지정할 수 있다.