ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [리눅스] 방화벽 ( Firewalld )
    서버/리눅스 2017. 5. 4. 21:17

    사용하는 데몬

    firewalld


    열려 있는 포트 확인

    사용 커멘드

    #>ss ( netstat )

    [옵션]        [기능]

    -a             all ( 모든 소켓 표시 )

    -n             numeric ( 숫자로 표시 )

    -t              tcp

    -u             udp

    -l              listening

    -4             ipv4

    -6             ipv6

    -p             process ( 해당 소켓을 사용한 프로세스 찾기)

    옵션 a의  표시

    Netid State      Recv-Q Send-Q        Local Address:Port                         Peer Address:Port

      #1     #2               #3                                               #4

    #1 : Netid ( 프로토콜 상태 ) 

    tcp : 3 handshaking ( ping, syn, ack ) 

    up : 비연결 


    #2 : State ( 상태 )

    LISTEN : 서비스 요청을 기다리고 있는 상태 ( tcp )

    UNCONN : 서비스 요청을 기다리고 있는 상태 ( udp )

    ESTAB : 실제로 데이터를 교환하고 있는 상태

    TIME-WAIT : 연결이 종료되었지만 일정시간 유지하고 있는 상태

    FIN-WAIT : 연결 종료 중인 상태

    SYN-SENT : SYN 패킷을 보낸후 연결을 요청한 상태

    SYN-RECEVIED : SYN패킷을 받안 후 ACK 패킷을 기다리고 있는 상태 


    #3 : Recv-Q Send-Q     : 소켓의 버퍼 사이즈


    #4 : Local Address:Port , Peer Address:Port

    -ipv4

    *:port ( 0.0.0.0:port ) : 모든주소


    -ipv6

    :::port    : 모든주소 ( 4도 포함 )


    ipv4를 ipv6로 표현할떄  

    100.100.100.128:80 > ::ffff:100.100.100.128:80




    Firewalld

    서비스를 구축할떄 포트를 여는 것 뿐만아니라 방화벽도 열어줘야 한다.

    방화벽은 클라이언트와 제일먼저 마주친다 ( 지구의 오존층같은 개념인가.. )

    SSH는 리눅스에서 기본적으로 방화벽에 들어있으므로 putty 같은 프로그램이 원격접속을 할 수 있는것이다. ( putty는 기본 SSH )


    데몬설정파일

    /etc/firewalld/firewalld.conf


    firewalld-cmd ( firewalld 데몬을 제어 할 수 있는 명령어 ) 

    데몬 명령어

    #>firewall-cmd --reload    : 방화벽 재시작 (방화벽 설정적용)

    #>firewall-cmd --state      : 방화벽 상태


    zone ( 영역 )

    #>firewall-cmd --get-zones    ( 영역별로 방화벽 설정을 지정할 수 있다 )

    work drop internal external trusted home dmz public block : 


    기본영역

    #>firewall-cmd --get-default  : 영역만 출력

    #>firewall-cmd --get-active    : 인터페이스 ( 랜카드번호 ) 까지 출력



    특정 서비스에 대한 설정

    firewall-cmd 명령어 사용

    #1 어느 영역에 설정을 할 것인가 ? 

    > 방화벽은 영역마다 설정이 가능하며 기본값은 public이다.


    option]]    --new-zone=<zone_name>  : 새로운 영역생성

             --zone=<zone_name>  : 영역이름 지정

       --delete-zone=<zone_name> : 기존영역 삭제

      --change-interface=<i_name> : 인터페이스 변겅 ( ip addr 명령어로 확인 )

        > --permanent 옵션없이도 고정


    #2 영구적으로 사용할 것인가?

    > 방화벽설정은 1회성이다 . 따라서 reload 옵션사용시 설정사항도 모두 사라진다.

    option]]     --permanent    : 설정한 방화벽을 영구적으로 사용한다.


    #3 영역에 대한 설정값을 출력할 수 있다.

    > 해당 영역에 대한 설정값을 확인해보자

    option]]     --list-all


    #4 서비스

    option]]    --get-service    : 서비스목록

       --add-service=<s_name> : 서비스 이름 등록

       --removce-service=<s_name> : 서비스 해제

       --add-port=<port_num>/<protocol> : 포트 열기

       --remove-port=<port_num>/<protocol> : 포트 닫기


    #설정 사항 기재 후 설정이 적용이 되지 않았다면 reload 할 것.

    영역 생성 / 삭제

    #생성

    #>firewall-cmd --permanent --new-zone=korea


    #삭제

    #>firewall-cmd -petmanent --delete-zone=korea


    #인터페이스 설정

    #>firewall-cmd --zone=korea change-interface=ens33


    서비스 설정 ( --get-service에 등록되어 있는 서비스만 허용 ) 

    #서비스 추가

    #>firewall-cmd --permanent --zone=korea --add-service=ftp


    #서비스 제거

    #>firewall-cmd --permanent --zone=korea --remove-service=ftp


    포트 설정  ( ss -ant로 설정  )

    방화벽에 서비스로 등록이 안되있을 떄 사용


    #열기

    #>firewall-cmd --permanent --add-port=21/tcp

    #닫기

    #>firewall-cmd --permanent --remove-port=21/tcp



    '서버 > 리눅스' 카테고리의 다른 글

    AWS 자동결재  (0) 2019.06.04
    [리눅스] DNS설정 후 웹서버  (0) 2017.05.02
    [리눅스] DNS  (0) 2017.04.28
    [리눅스] SSH(Secure Shell)  (0) 2017.04.27
    [리눅스] Telnet  (0) 2017.04.26

    댓글

Designed by Tistory.