NIS(Network Information Service) 서버와 클라이언트 실습

Hiyalobi·2024년 4월 12일

linux_master

목록 보기
9/14
post-thumbnail

이번에는 정말 교재 따라 진행했습니다.
사실 NIS가 인증 서비스라고 하는데 어떤 식으로 사용하는지가 궁금했습니다.
그래서 무턱대고 들어가니, 자잘한 실수들이 모여서 시간을 계속 앗아 갔네요...

NIS 서버와 클라이언트 공통 구성

저의 경우 클라이언트와 서버 모두 virtual box 내 설치된 rocky linux로 진행했습니다.

클라이언트를 여럿 하진 않고, 한 개로 실습을 진행했습니다.

중요한 것은 virtual box의 네트워크 설정을 서버와 클라이언트 모두 해야한다는 것입니다.

이전 포트 포워딩 글에서 설명하였듯, 위쪽 새로만들기 옆 설정에 들어가 [네트워크] -> [어댑터2] -> [호스트 전용 어댑터] -> [VirtualBox Host-Only Ethernet Adapter]로 설정하시면 됩니다.

(외전)Virtual Box에서 PortFowarding으로 웹사이트 외부 접속하기

서버와 클라이언트 모두 환경설정이 필요합니다.

rpc 관련 데몬을 실행해 줍니다.

systemctl start rpcbind
systemctl enable rpcbind

그리고 /etc/hosts 파일을 수정해 줍니다.

sudo vi /etc/hosts

[server_ip]	nis.test.co.kr
[client-ip]	nis_client.test.co.kr

여기서 중요한 것은 ip 주소입니다.

윗 단계에서 추가한 어댑터2의 네트워크 ip를 추가해주셔야 합니다.
이 부분은 서버와 클라이언트 모두 동일하게 적용됩니다.

이후 클라이언트를 설치할 환경에서 서버를 설치할 환경으로 연결이 가능한지 테스트 해봐야 합니다.

ping [servre-ip]

실행 결과가 다음과 같이 출력된다면 성공적으로 연결된 것입니다.

이후 진행해야할 것은 SELinux를 동작하지 않도록 설정을 해야합니다.

sudo vi /etc/sysconfig/selinux
sestatus

/etc/sysconfig/selinux에 vim 작성기로 들어값니다.
그리고 위의 SELinux 부분이 disabled로 작성을 진행합니다.
작성이 완료되었다면, 재부팅을 합니다.
sestatus로 보았을 때, 상태가 disabled라면 비활성으로 설정되었습니다.

NIS 서버

우선 NIS 서버부터 설정합니다.

sudo dnf install ypserv

ypserv를 설치하면 ypserv, yppasswd, ypxfrd 3개의 데몬 스크립트가 설치됩니다.

sudo vi /etc/sysconfig/network

NISDOMAIN=test.co.kr

nisdomainname 명령어로 설정할 수 있지만, 일시적이기에 영구적인 /etc/sysconfig/network에 NIS의 도메인명을 작성해 줍니다.

이후 NIS 클라이언트에서 사용할 계정을 생성합니다.

sudo useradd alin
sudo passwd alin

계정 생성이 완료되었다면 관련 데몬을 시작시키고, 작동을 확인합니다.

systemctl start ypserv yppasswdd ypxfrd
ps aux | egrep 'ypserv yppasswdd ypxfrd'

이후 NIS 정보를 갱신합니다.

cd /var/yp
sudo make

성공적으로 수행되었다면 다음과 같은 결과를 보여줍니다.
계정이 추가된 것과 같은 서버 내 정보를 갱신해야 할 때 사용합니다.

성공적으로 수행되었다면 위 이미지와 같은 결과를 보여줍니다.
계정이 추가된 것과 같은 서버 내 정보를 갱신해야 할 때 사용합니다.

make 수행이 완료되면 /var/yp 디렉토리에 다음과 같은 파일로 구성된다는 것을 확인할 수 있습니다.

이후 서버의 방화벽 보안을 설정해 줍니다.

이전 도메인을 설정하였던 /etc/sysconfig/network에 다음의 내용을 작성합니다.

sudo vi /etc/sysconfig/network

NISDOMAIN=test.co.kr
YPSERV_ARGS="-p 834"
YPXFRD_ARGS="-p 835"
YPPASSWDD_ARGS="-p 836"

firewall로 서비스와 포트에 대한 tcp, udp 설정을 추가합니다.

firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --permanent --add-port=834/tcp
firewall-cmd --permanent --add-port=834/udp
firewall-cmd --permanent --add-port=835/tcp
firewall-cmd --permanent --add-port=835/udp
firewall-cmd --permanent --add-port=836/tcp
firewall-cmd --permanent --add-port=836/udp
firewall-cmd --reload

추가적인 방화벽 설정을 위해 Iptable을 사용합니다.

iptables -I INPUT -p tcp -m multiport --dport 111,834:835 -j ACCEPT
iptables -I INPUT -p udp -m multiport --dport 111,834:836 -j ACCEPT

sudo iptables-save

systemctl restart iptables

이후, NIS 서버를 재시작 및 활성화 해줍니다.

systemctl restart ypserv yppasswdd ypxfrd

systemctl enable ypserv yppasswdd ypxfrd

NIS 클라이언트

sudo dnf install ypbind

저는 ypbind만 설치를 하여도 모두 설치가 되었는데, 만약 오류가 발생한다면, yp-tools 패키지도 다운받으셔야합니다.

서버와 동일하게 /etc/sysconfig/network에 도메인 명부터 등록합니다.

sudo vi /etc/sysconfig/network

NISDOMAIN=test.co.kr

이후 /etc/yp.conf 파일에 서버와 도메인을 지정합니다.

sudo vi /etc/yp.conf

server nis.test.co.kr
ypserver nis.test.co.kr
domain test.co.kr

이후 데몬을 시작하고 동작 및 프로세스를 확인, 데몬을 활성화 합니다.

systemctl start ypbind
systemctl -l status ypbind

ps aux | grep ypbind
systemctl enable ypbind

ypbind의 상태 확인시 active가 출력된다면 구동하고 있는 것입니다.

사용자 인증을 받기 위해 인증 변경을 진행합니다.

authselect select nis

최종 테스트는 telnet을 통해 진행합니다.
텔넷을 다운받고, 서비스를 구동시켜 줍니다.

sudo dnf install telnet telnet-server

systemctl start telnet.socket

정상적으로 연결되었을 때 나타나는 화면입니다.

로그인 진행 이후 부터 client는 서버쪽에서 생성한 계정으로 cmd에서 활용이 가능합니다.

전반적인 기본 틀은 Rocky Linux 8로 리눅스 마스터 1급 정복하기를 이용해 진행되었으며, 이외 방화벽에 대한 추가 사안은 아래 참고 블로그를 통해 진행되었습니다.

참고 사이트

리눅스 NIS(Network Information Service) 개념 및 계정 통합 서버 구축 방법

profile
유영하다

0개의 댓글