Server Setting 1

다원·2023년 2월 7일
0

Server

목록 보기
1/4

Server

데몬형태로 설치되어져 서비스를 제공, 서버 프로그램 구성파일, 방화벽 등이 구성되고 AV 파일이나 각종 패치 파일의 업데이트 등이 수행되게 됨

서버 서비스 실행 시

서비스 프로그램 패키지와 모듈 설치
해당 서비스의 각종 구성파일 변경
방화벽 설정과 SELinux 설정 변경
사용자 접근제간 등 부가적인 설정 추가나 변경
해당 서비스 실행 및 실행 확인
클라이언트 사용자의 접속 로그파일 저장,시스템 모니터링 관리 작업 수행

Telnet Server

:Telnet으로 연결할 경우 대부분의 명령어를 사용할 수 있음

Install Setting

install telnet-server
systemctl start telnet.socket :ip 주소와 port 번호를 합친 socket 실행

23/tcp firewall allow

Telnet Check

외부 사용자로 telnet으로 접속

Telnet 서버에서 pstree로 telnet에 대해서 확인 시 외부에서 접속 한 것을 확인 할 수 있음

사용자를 확인하여 외부 접속 여부를 확인할 수 있음

프로세스 상세하게 확인해보면 telnet으로 외부 접속자가 접속한 것을 확인 할 수 있음

Putty를 사용하여 Window 운영체제에서도 Telnet 연결도 가능

SSH Server

rsyn나 scp를 사용하여 file을 전송 할 수 있음
평문장 Telnet 연결보다 보안이 강화된 암호화 사용하여 서버 접속
Password 인증보다 인증키를 사용한 연결도 가능

install&setting

install openssh-server
22 port open

외부 사용자로 SSH Server에 접속

Key로 연결할 것에 대한 여부를 문의

키를 공유하여 외부사용자와 접속

외부 사용자에서 ssh-keygen 명령어를 이용하여 공개키와 개인키 생성
(서버 사용자가 키를 생성하여 사용자에게 공유하여 사용하는 방식도 가능)

외부 사용자는 개인키 idrsa, 공개키 id_rsa.pub

ssh-copy-id 명령어로 ubuntu의 .ssh/auth
로 개인키로 전송

ubuntu .ssh/auth 확인해보면 centos의 공개키

Server의 sshd_config 파일 수정
PermitRootLogin 을 without-password로 설정 시 root 사용자 접속은 패스워드 없이 접속이 가능
AllowUser 사용자명 추가 시 해당 사용자명을 가진 사용자만 허용
AutorizedKeysFile 인증키 파일의 위치설정: %h(호스트)/.ssh/autohorized_keys

외부 사용자로 SSHserver에 접속

error: eavesdropping: 도청

취약점으로 ssh 원격으로 접속하지 않고 명령어를 추가하여 외부사용자가 정보를 출력할 수 있음

sftp

server에서 ssh_config sftp에 대한 설정이 존재, ftp도 ssh를 이용하여 통신 할 수 있음

서버에서 외부 사용자로 sftp 연결 (!pwd: local의 pwd출력)

외부 사용자에게 업로드/다운로드
put: 업로드

get: 다운로드

parallet ssh (pssh)

SSH 서버에서 여러 클라이언트 머신들과 병렬연결하여 일괄적인 관리에 편리 (SSH 도구)
개인키/공개키로 상호 연결하기 때문에 보안적으로 좋으며 Puppet처럼 한 곳에서 여러 원격 서버를 완벽한 보안에서 동시에 관리할 때 좋음
isntall python-pip && pip install pssh

.pslurp : 여러 파일을 동시에 다운로드 받을 때 사용
/tmp/hosts : 관리할 클라이언트 머신 등록 (/tmp/: sticky bit 설정으로 root 사용자가 만든 파일도 외부 사용자가 사용할 수 있음)

모든 호스트들로부터 호스트명을 얻는데 -A 패스워드 넣음, -h /tmp/hosts에서 호스트찾음 -i hostname

vsftpd

install vsftpd
user_list: Default로 해당 파일에 해당되는 사람들이 들어갈 수 없도록 설정되어있음
ftpusers: ftp를 이용하여 로그인 될 수 없는 사용자
chroot_list: root 사용자로 변경할 수 있는 사용자 입력
클라이언트 머신에 FileZilla install 후 접속

anonymoust local접속 write:file 작성, anon_upload mkdir : 작성과 업로드
dirm:디렉터리 접속 시 메시지
ascii up/down : 평문자
userlist_enable=yes이면 지정된 사용자들은 들어올 수 없음
chroot_list: chroot_list에 있는 사용자만이 상위 디렉토리로 이동할 수 있음

DNS

도메인을 구성할 때 가장 먼저 할 일이 DNS 서버를 구축
도메인이 있어야 도메인내의 모든 객체를 표현할 수 있음

DNS의 역할

내부에서 외부 도메인의 웹 서버 식으로 찾아가는 내부 호스트들에게 DNS서비스를 제공하는 역할, 도메인의 IP를 알려주는 역할
외부에서 조직 도메인 내의 웹 서버로 접속하려는 외부 호스트들에게 도메인의 IP를 알려주는 역할

도메인 내의 객체를 IP주소로 변환하는 것을 이름 풀이 순서
로컬 머신의 /etc/hosts 파일
로컬 DNS 서버
글로벌 DNS 서버 순

외부 사용자가 타겟 머신의 /etc/hosts 파일에 특정 DNS의 IP주소를 변경하여 공격하는 것을 피싱 공격

로컬 DNS 서버 해킹은 도메인 내의 설계도를 얻는 것으로 비유
프록시 서버와 함께 모든 로컬 머신들이 접속한 웹 도메인과 해당 호스트의 주소를 가지고 있어서 로컬 도메인의 네트워크 상황을 반영하기 때문

DNS 서버끼리 영역전송 할 때 TCP
영역전송: 메인 DNS 서버와 서버 DNS 서버 사이에 통신
호스트들이 DNS 서버를 찾을 때 UDP

DNS서버는 bind 패키지를 사용하고 named 데몬으로 실행
WEB서버는 APACHE 패키지를 사용하고 httpd 데몬으로 실행
FTP서버는 vsFTP 패키지를 사용하고 vsftpd데몬으로 실행
Proxy-ARP : 로컬에서는 MAC 주소로 통신하는데 Proxy는 외부로 ip롱신

setting

named.conf 파일을 사용하여 local DNS 서버 설정

두 번째 DNS 서버가 있을 경우 allow-transfer를 지정
Recursion: 반복의 의미
zone: , IN: INTERNET
fwd: 정방향 조회

두번째 zone 의 부분을 역방향 조회
로컬 네트워크 주소가 같으니까, 즉 현재 로컬 IP 주소는 192.168.100.까지가 동일하기 때문에
맨 마지막 주소만 확인하여 속도를 빠르게 설정
역방향 조회가 속도가 빠른 까닭: DNS서버에서 .ROOT에서부터 역방향으로 조회

fwd.kahn.edu

정방향 조회

rev.kahn.edu

역방향 조회

resolv.conf

hosts

web page 설정

정방향 조회

역방향 조회

DNS 서버 확인

interface DNS

client에 hosts 파일 전송 한 뒤 접속

ftp server 설정

위 vsftp 설정과 동일하게 사용

web 서버

UNIX/Linux 에서는 Apache 웹 서버 사이트

Virtual host

가상 호스트 1대의 apache 웹 서버에 ip_based name_based Port_based 가상 머신을 여럿 구축해서 여러 도메인을 하나의 서버에서 운영하거나 하나의 도메인을 여러 서브 도메인을 생성해서 운영
하나의 도메인만 있을 때

IP_based Virtual Host

하나의 서버에 여러 IP주소를 추가로 부여(하나의 NIC에 IP주소를 추가로 부여)하여 각 도메인을 운영시키는 기법, IP Binding 성능이 좋은 시스템 하나에 여러 개의 IP주소를 할당하여 각각 IP주소 별로 도메인을 독립적으로 유지
(channel bond: 여러 NIC를 하나의 IP로 묶는것, 네트워크 카드를 여러개 두는 것을 multi homed, 사용하면 load balancing, faulttorenance(redundency: 잉여 똑같은 종류의 물리적 부품을 스페어로 보유하여 사용), fail safe)
ifconfig NIC명:number IP주소
라운드로빈 방식 여러 IP주소가 하나의 웹 사이트를 운영하는 Round-Robin 방식 (클라이언트가 서버에 접속할 때 어느 nic로 접속하는지 클라이언트는 모름(transparent 투명한 상황), 어떤 사용자가 요청 할 때 ipv6에서는 anycast 역할,

서버에 접속 시 어느 서버에 접속 될지 모르고, 동기화를 이루고 있음, 다른 공간에 저장하는 것을 hotsite)

Setting

ifconfig 명령어 이용하여 가상의 IP주소 생성

/etc/hosts > 가상 IP 주소와 도메인을 설정

http.conf 파일에서 DocumentRoot 디렉터리 변경 /var/www/

conf.d 디렉터리 아래에 설정파일 생성

/var/www 밑에 디렉터리를 생성 및 각각의 .html 파일 생성 한 뒤 시스템 restart

Name_based Virtual Host

하나의 서버에 부가적으로 여러 이름을 부여해서 각 도메인으로 운영시키는 기법
httpd.conf 파일 > NameVirtualHost 생성

/var/www/ 디렉터리 아래에 디렉터리 생성 한 뒤 .html 파일 생성

/etc/hosts > 서버의 IP주소와 함께 도메인의 이름을 부가적으로 부여 한 뒤 시스템 restart

외부 접속

Port_based Virtual Host

하나의 IP주소에 여러 포트를 할당해서 IP: 포트_번호 별로 각 도메인을 운영시키는 기법

nginx Server 구축

nginx에서는 conf.d 와 default.d 디렉터리가 존재,
conf.d 디렉터리가 Main, default.d 디렉터리에 생성하면 conf.d 디렉터리에서 불러옴
(http에서 http.conf 파일에서의 Include 문장 때문에 conf.d의 하위 디렉터리 설정을 갖고 오는 것과 동일)

nginx.conf > processes 변경하면 병렬처리되어 스레드 분할 사용

profile
공부일지,

0개의 댓글