ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • <4주차> 네트워크 교육 정리!
    클라우드 교육/보고서! 2022. 11. 20. 01:12

     

     

     

     

    목차

    Linux 접근제한

    프록시 ( Proxy )

    메일

    암호화

    SSH로그인

    NFS

     

     

     

     

     

     

    Linux 접근 제한

     

     

     

    현재 Pc내에 구현된 가상서버이다. 

     

     

    각각의 서버 ip가 다른데,

     

    blog : 서버 ip 로 접근 

     

    intra : 아이디만 접근

     

     

     

     

     

     

     

     

    IP 접근제한 

     

     

     

     

    IP 접근제한을 하기 위해서 두가지 서버에 같은 설정파일을 수정하고 재부팅 해줘야한다. 

     

     

    설정파일

     

     vi /etc/httpd/conf.d/vir.conf

     

     

     

     

    기볹적으로 이전에 서버를 만들기위해 설정되었으면, 아래처럼 되어있을것이다. 

     

     

    여기에 아래 코드를 추가해준다. 

     

     

    <Directory "/var/www/blog">
            Order   deny,allow
            Deny from all
            Allow from 10.0.0.101
    </Directory>

     

     

     

     

    만약에 아래처럼 allow,deny 순서를 반대로 하면 ip를 다 막아버리니 순서를 잊지말자

    <Directory "/var/www/blog">
            Order   deny,allow
            Deny from all
            Allow from 10.0.0.101
    </Directory>

     

     

     

     

     

    다른 블로그 서버도 추가

     

     

     

    systemctl reload httpd

    그리고 재부팅

     

     

     

     

     

     

    다른 ip는 접근불가한 모습

     

     

     

    101 ip는 접근된것을 볼 수있다. 

     

     

     

     

     

     

     

     

    사용자별로 구분

     

     

     

    intra 서버에 사용자 구분을 해서 넣어보자. 

     

     

    과정은

     

    디렉토리 생성 - 아이디 생성 - 설정파일 생성 - 설정파일 수정 - 재부팅 

     

    이런 과정이다. 

     

     

     

    먼저 디렉토리를 만들어준다. 디렉토리명은 크게 상관없다. 

    htpasswd 명령어를 사용할건데

    아파치 사용자 인증파일을 생성하고 관리한다. 

     

    htpasswd -c /web/.auth aaa
    htpasswd /web/.auth bbb

    최초로 만들어진 사용자는 -c 옵션을 추가하고 

    계정을 계속 생산시에는 사용하지않아도 된다

     

    패스워드 입력하고 생산

     

    잘 만들어졌는지 확인하자. 

     

     

     

     

    다른 Intra 서버에도 같이 작업

     

     

     

     

     

     

     

    이번에는 설정파일작업 ( 서버 다 아래두개작업 다 해줘야한다 )

     

     

    vi /var/www/intra/.htaccess

    이렇게 파일을 만들어주고, 

     

    AuthName        "Test Auth"
    AuthType        Basic
    AuthUserFile    /web/.auth
    Require user    aaa bbb

    위에거 추가

     

     

     

    이렇게

     

     

    그리고 아래 파일에 들어가서, 

     

     vi /etc/httpd/conf.d/vir.conf

     

     

    <Directory "/var/www/intra">
            AllowOverride   AuthConfig
    </Directory>

     

     

    이렇게 위처럼 추가해준다. 

     

     

    systemctl reload httpd

    그리고 재부팅 

     

     

     

    이렇게 사용자로그인을 할 수 있다.

     

     

     

     

     

     

     

     

     

    cmd 에서 vmware 내부아이피 여는법

     

     

     

     

     

     

    cmd창에 아래처럼 입력해준다. 

     

    ssh root@'리눅스 서버 IP'

     

     

    그러면 password를 입력하고 아래처럼 사용할 수 있다. 

     

     

     

     

     

     

     

     

     

    프록시 ( Proxy )

     

     

     

     

     

    '대리' 라는 의미도 갖고있는 Proxy는 외부의 접속자가 자신을 통해 네트워크에 접속할 수 있게 하는 개념을 갖고있다.

    이로 인해 트래픽조정을 통한 안정성, 보안성, 성능 등을 향상시킬 수 있다. 

     

     

     

     

    클라이언트가 서버에 직접 접근할 때 여러가지 문제점이 생길 수 있는데, 프록시는 이를 해결해준다. 

     

    서버는 다운되거나 , 업데이트를 할때에도 돌아가야하기때문에, 예비로 여러대를 두는데, 기본적으로 로드밸런싱이 되어있지않고, 해커등에 대한 접근 제한에도 안전하지 못하다. 

     

     

     

     

     

     

     

     

     

     

    아래는 프록시가 추가된 환경이다.

     

    로드밸런서의 역할도 할 수 있고, 사용자의 접근제한도 할 수있다.

     

     

     

     

     

     

     

     

     

    프록시의 종류에는 두가지가 있는데

    서버의 위치에 따라 

    포워드 프록시 ( Foreward proxy ) 

    리버스 프록시 ( Reverse proxy ) 

    로 나뉘게 된다. 

     

     

     

     

     

     

     

     

    포워드 프록시 ( Foreward proxy ) 

     

     

     

    클라이언트의 보안을 좀 더 중요시 하는게 클라이언트인데,

    정부, 학교, 공공기관에서 클라이언트의 제한적인 인터넷 사용을 하여 특정 사이트의 접속제한을 할 수 있다. 

    또한 서버의 정보를 임시저장해주기도 하는데, 다른 클라이언트에서 접속한 정보를 저장해뒀다가 제공하여 서버의 부하를 조정하기도 한다.

     

     

     

     

     

     

     

     

     

     

     

    리버스 프록시 ( Reverse proxy )

     

     

     

    기업이 운영하는 서버의 보안을 좀 더 중요시하는게 리버스 프록시이다. 

    기업의 서버에는 하루에도 수백만명이 방문하는데, 어떤 한 서버에 몰리게 되면 서버에 과부하가 될 수 있기에 특정서버가 과부하 되지않게 관리해주는 로드밸런서 역할을 할수 있다. 또한 서버의 본래 ip를 노출시키지 않아 해커들의 공격에도 안전해진다. 또한 해외서버에 접속할때, 서버의 프록시서버가 한국에도 있을때, DNS 정보를 한국에서 제공할 수 있기때문에, 클라이언트들의 빠른 접근이 가능하다. 

     

     

     

     

     

     

     

     

    Linux 환경에서 구축

     

     

     

    설치 

    yum install -y haproxy
    vi /etc/haproxy/haproxy.cfg

     

    위에서부터 설치와 설정파일이다. 아래처럼 변경해주면된다

     

    80번 포트를 사용할 것이며, 아래는 서버의 위치와 사용할 포트를 입력한다. 

     

    firewall-cmd --permanent --add-port=80/tcp
    firewall-cmd --reload

     

    방화벽 열어주기

     

     

     

     

     

     

     

     

     

    메일

     

     

     

    Send mail / dovecot / thunderbird 를 사용할것이다. 

     

     

    설치하기 

    yum install sendmail sendmail-cf dovecot

     

     

     

     

     

     

    설정파일 위치다

     

     

    /etc/mail/

     

     

     

    여기가서

     

    vi /etc/mail/sendmail.mc

    21번줄 14로 변경

     

     

     

     

    52,53번줄 주석 제거

     

     

    그리고 모든 ip에서 받겠다고 설정하기 위해 118번을 아래 두개 중 하나로 설정한다. 

     

     

     

     

     

    m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

    위의 cf 파일에 들어간다. 

     

     

    아래는 빈줄이 두개로 되어있는데 하나의 줄만 남겨준다

     

     

    도메인 이름 등록하는 89,91을 주석제거해준다. 

     

    그리고 저장

     

     

     

    아래로 가서 

    vi /etc/mail/local-host-names

     

    도메인 이름을 등록해준다. 

    저장

     

     

     

     

    아래가서 

    vi /etc/mail/access

     

    이렇게 하면 10.0.0 으로 시작되는 모든 ip를 허용한다는 의미이다. 

     

     

     

     

     

     

    makemap 명령어로 accss로 설정된 것을 sendmail이 인식할 수있도록 한다. 

     makemap hash /etc/mail/access< /etc/mail/access

     

     

     

     

    전송에 사용할 사용자를 생성하기

     

     

     

    xx

    yy

    예시로 이렇게 두개  만든다. 

     

     

     

     

    아래 그룹 mail에 xx,yy사용자 추가 

    vi /etc/group

     

     

     

    그리고 sendmail 재부팅

    systemctl start sendmail

     

     

     

     

     

    이제 받는 메일을 설정해보자. 

     

     

    여기가서

    vi /etc/dovecot/dovecot.conf

     

     

    24, 30 주석제거

    저장

     

     

    dovecot 의 설정파일에 들어갈건데 아래 파일들만 설정하면 된다. 

    ls /etc/dovecot/conf.d/

     

     

    먼저 인증 파일부터 설정해보자. 

     vi /etc/dovecot/conf.d/10-auth.conf

     

    위처럼 변경

     

     

     

    사서함 위치 지정을 위해 아래에서 25번주석제거

    vi /etc/dovecot/conf.d/10-mail.conf

     

     

     

     

     

     

     

     

    포트지정을 위해 19,40줄 주석 제거 해준다. 

     

    19 - imap

    40 - pop

    을 의미한다.

     

    vi /etc/dovecot/conf.d/10-master.conf

     

     

     

     

     

     

     

     

    ssl에서 8번줄을 no로 설정해준다. 

     

    vi /etc/dovecot/conf.d/10-ssl.conf

     

     

     

    마지막으로 방화벽을 열면 설정이 끝난다. 

     

    25번은 보내는 포트이고 , 110,143은 받는 포트이다. 

    firewall-cmd --permanent --add-port=25/tcp
    firewall-cmd --permanent --add-port=110/tcp
    firewall-cmd --permanent --add-port=143/tcp
    firewall-cmd --reload
    firewall-cmd --list-all

     

     

     

     

     

     

     

    썬더버드를 사용할건데 계정을 만들때 아래처럼 설정하면 된다. 만일 안된다면 hostname에 ip번호를 적어도 된다. 

     

     

    그리고 테스트 메일을 보내면 

     

     

    아래처럼 잘 도착했다.

     

     

     

     

     

     

     

     

     

    설치방법

     

     

     

    먼저 telnet 서버와 연결한다 

     

    telnet localhost 25

     

     

    이렇게 뜨면 잘 되고있다는것이다. 

     

     

    보낼주소와 

    mail from:ceo@sangm.shop
    rcpt to:dochuk9@naver.com
    data
    subject:googbay

     

     

     

    아래처럼 메일함에 잘 와있다.

     

     

     

     

     

     

     

     

    암호화

     

     

     

     

    암호화란 송수신자가 정보를 주고 받는과정에서 외부의 어느 누구도 해독하지 못하게 파일을 변환하고 해독하기 위해 만들어진 인터넷 체계이다. 

     

     

     

    대칭키 암호화 방식

     

    암호화와 복호화에 같은 키를 사용하는 방식이다. 

    송,수신자 둘다 대칭키를 가져야 하기때문에,

    대칭키를 전달하는 과정에서 키가 노출될 위험이 있다.  

     

     

     

    이를 보완하기 위해 나온 방법이 아래의 공개키 암호화 방식이다. 

     

     

     

     

     

     

    공개키 암호화 방식

     

     

    암호화와 복호화에 서로 다른 키 ( 공개키 / 비밀키 ) 를 사용하는 방식이다. 

    공개키는 공유되고

    비밀키는 소유자만 갖고있다.

    서버로 부터 안전하게 데이터를 전송하는것이 목적이지만, 계산이 느리다. 

     

     

     

     

     

     

    SSH의 통신과정

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    ssh 로그인

     

     

     

     

     

     

    1. 키만들기

     

     

     

     

    cmd에서 

     

    ssh-keygen

     

     

    이렇게 되면 만들어진다. 

     

    C:\Users\user\.ssh

     

     

    여기안에 보면

     

     

     

     

     

    이렇게 만들어져있는게 보인다. 

     

    id_rsa.pub을 메모장으로 켜고 

     

    개인마다 다른데 아래 조건은 필수이다. 

     

    띄어쓰기는 1개만.

    AAAA 로 시작한다. 

    빨간칸 다음을 지워버리기고 저장

     

     

     

     

    이렇게 남겨둔다

     

     

    리눅스의 root 디렉토리에서

     

    mkdir .ssh

    이렇게 .ssh 파일을 만들어준다. 

     

    cmd에서 .ssh 파일안으로 가서 

     

    C:\Users\user\.ssh>scp ./id_rsa.pub root@10.0.0.1:/root/.ssh

     

     

    id_rsa.pub 파일을 복사해 리눅스 .ssh 안으로 보내는것

     

    파일 복사하면 이렇게 보인다. 

     

    이렇게 있는게 보인다. 

     

     

     

     

    설정파일로 들어간다

    vi /etc/ssh/sshd_config

    그리고 

     

     

    38, 43주석제거

     

    47번줄을 보면, 키의 위치와 이름을 저렇게 해야 적용이 된다는것을 볼 수 있다. 

     

    65번 주석 처리

    저장 후 sshd를 새로 시작해주자. 

     

    systemctl restart sshd

     

    이름도 바꿔주자. 

    mv .ssh/id_rsa.pub .ssh/authorized_keys

     

     

     

    xshell에서 이렇게 이름 암호 지우고 Public key로 변경

     

     

    그리고 암호키를 찾아 등록해주면 완성이다. 

     

    만일 리눅스 to 리눅스 환경에서 구축할때는, 반드시 Private key 파일의 권한을 600으로 맞춰야한다!!

     

     

     

     

     

     

     

     

     

     

    NFS ( Network File System )

     

     

     

    네트워크 파일 시스템

     

    서버의 공간을 자신의 자원처럼 사용하기 위해 만들어진 공유 파일 폴더 

    공통으로 사용되는 파일들을 공유 폴더에 저장해 저장효율성이 증가된다 

    다른 네트워크에 있는것들을 사용하기때문에 보안에 취약하고 

    네트워크를 이용하기때문에 속도가 느림

     

     

     

     

     

     

     

    nfs 설치

     

     

    공유 파일 폴더라서 2개의 서버가 필요하다

     

     

    nfs-utils 설치 , 서버 두개에 다 설치한다. 

     

     

     

    공유할 폴더를 만들어준다

     

    그 후 

    위의 폴더에 들어가서 아래 문구 입력하고 nfs 시작 ( 자신이 사용할 네트워크의 주소를 입력한다 )

    /nfs-server        10.0.0.0/24(rw,no_root_squash,sync)

     

     

    exportfs -v

    위의 명령어로 확인해보면 아래처럼 서버가 공유된것을 확인할 수 있다. 

     

     

    아래 명령어로 확인해보면 서비스가 실행되었는지 알 수 있다. 

    rfcinfo -p

     

     

     

     

    방화벽 오픈 

    firewall --permanent --add-service=nfs
    firewall --permanent --add-service=mountd
    firewall --permanent --add-service=rpc-bind
    firewall --permanent --reload

     

     

     

    서버 2

     

     

    공유 폴더 생성

     

     

    마운트 하기

     

     

     

     

     

    마운트 명령어로 확인해보면

     

     

    이걸로 보면 아래처럼 나와있다

     

     

     

     

    과정이 끝났으니 공유가 되는지 확인해보자. 

     

     

    이렇게 만들면

    1에서 확인가능

     

     

    댓글

Designed by Tistory.