메뉴 건너뛰기

Linux
2016.02.18 08:02

iptables 용어

조회 수 330 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

iptables 용어

어려운 용어들은 제껴두고 간략히 사용할 부분에 대해서 설명한다.

1) 테이블(tables)

우선 iptables에는 테이블이라는 광범위한 범주가 있는데, 이 테이블은 filter, nat, mangle, raw 같은 4개의 테이블로 구성되며, 이중에서 우리에게 필요한 것은 필터링 규칙을 세우는 filter 테이블이다.

2) 체인(chain)

iptables에는 filter 테이블에 미리 정의된 세가지의 체인이 존재하는데 이는 INPUT, OUTPUT, FORWARD 이다. 이 체인들은 어떠한 네트워크 트래픽(IP 패킷)에 대하여 정해진 규칙들을 수행한다.

가령 들어오는 패킷(INPUT)에 대하여 허용(ACCEPT)할 것인지, 거부(REJECT)할 것인지, 버릴(DROP)것인지를 결정한다.

  • INPUT : 호스트 컴퓨터를 향한 모든 패킷
  • OUTPUT : 호스트 컴퓨터에서 발생하는 모든 패킷
  • FORWARD : 호스트 컴퓨터가 목적지가 아닌 모든 패킷, 즉 라우터로 사용되는 호스트 컴퓨터를 통과하는 패킷

3) 매치(match)

iptables에서 패킷을 처리할때 만족해야 하는 조건을 가리킨다. 즉, 이 조건을 만족시키는 패킷들만 규칙을 적용한다.

  • --source (-s) : 출발지 IP주소나 네트워크와의 매칭
  • --destination (-d) : 목적지 ip주소나 네트워크와의 매칭
  • --protocol (-p) : 특정 프로토콜과의 매칭
  • --in-interface (i) : 입력 인테페이스
  • --out-interface (-o) : 출력 인터페이스
  • --state : 연결 상태와의 매칭
  • --string : 애플리케이션 계층 데이터 바이트 순서와의 매칭
  • --comment : 커널 메모리 내의 규칙과 연계되는 최대 256바이트 주석
  • --syn (-y) : SYN 패킷을 허용하지 않는다.
  • --fragment (-f) : 두 번째 이후의 조각에 대해서 규칙을 명시한다.
  • --table (-t) : 처리될 테이블
  • --jump (-j) : 규칙에 맞는 패킷을 어떻게 처리할 것인가를 명시한다.
  • --match (-m) : 특정 모듈과의 매치

4) 타겟(target)

iptables는 패킷이 규칙과 일치할 때 동작을 취하는 타겟을 지원한다.

  • ACCEPT : 패킷을 받아들인다.
  • DROP : 패킷을 버린다(패킷이 전송된 적이 없던 것처럼).
  • REJECT : 패킷을 버리고 이와 동시에 적절한 응답 패킷을 전송한다.
  • LOG : 패킷을 syslog에 기록한다.
  • RETURN : 호출 체인 내에서 패킷 처리를 계속한다.

REJECT는 서비스에 접속하려는 사용자의 액세스를 거부하고 connection refused라는 오류 메시지를 보여주는 반면 DROP은 말 그대로 telnet 사용자에게 어떠한 경고 메시지도 보여주지 않은 채 패킷을 드롭한다. 관리자의 재량껏 이러한 규칙을 사용할 수 있지만 사용자가 혼란스러워하며 계속해서 접속을 시도하는 것을 방지하려면 REJECT를 사용하는 것이 좋다.

5) 연결 추적(Connection Tracking)

iptables는 연결 추적(connection tracking)이라는 방법을 사용하여 내부 네트워크 상 서비스 연결 상태에 따라서 그 연결을 감시하고 제한할 수 있게 해준다. 연결 추적 방식은 연결 상태를 표에 저장하기 때문에, 다음과 같은 연결 상태에 따라서 시스템 관리자가 연결을 허용하거나 거부할 수 있다.

  • NEW : 새로운 연결을 요청하는 패킷, 예, HTTP 요청
  • ESTABLISHED : 기존 연결의 일부인 패킷
  • RELATED : 기존 연결에 속하지만 새로운 연결을 요청하는 패킷, 예를 들면 접속 포트가 20인 수동 FTP의 경우 전송 포트는 사용되지 않은 1024 이상의 어느 포트라도 사용 가능하다.
  • INVALID : 연결 추적표에서 어디 연결에도 속하지 않은 패킷

상태에 기반(stateful)한 iptables 연결 추적 기능은 어느 네트워크 프로토콜에서나 사용 가능하다. UDP와 같이 상태를 저장하지 않는 (stateless) 프로토콜에서도 사용할 수 있다.

6) 명령어(commond)

  • -A (--append) : 새로운 규칙을 추가한다.
  • -D (--delete) : 규칙을 삭제한다.
  • -C (--check) : 패킷을 테스트한다.
  • -R (--replace) : 새로운 규칙으로 교체한다.
  • -I (--insert) : 새로운 규칙을 삽입한다.
  • -L (--list) : 규칙을 출력한다.
  • -F (--flush) : chain으로부터 규칙을 모두 삭제한다.

  • -Z (--zero) : 모든 chain의 패킷과 바이트 카운터 값을 0으로 만든다.
  • -N (--new) : 새로운 chain을 만든다.
  • -X (--delete-chain) : chain을 삭제한다.
  • -P (--policy) : 기본정책을 변경한다.

7) 기본 동작

  1. 패킷에 대한 동작은 위에서 부터 차례로 각 규칙에 대해 검사하고, 그 규칙과 일치하는 패킷에 대하여 타겟에 지정한 ACCEPT, DROP등을 수행한다.
  2. 규칙이 일치하고 작업이 수행되면, 그 패킷은 해당 규칙의 결과에 따리 처리하고 체인에서 추가 규칙을 무시한다.
  3. 패킷이 체인의 모든 규칙과 매치하지 않아 규칙의 바닥에 도달하면 정해진 기본정책(policy)이 수행된다.
  4. 기본 정책은 policy ACCEPT , policy DROP 으로 설정할 수 있다.

일반적으로 기본정책은 모든 패킷에 대해 DROP을 설정하고 특별히 지정된 포트와 IP주소등에 대해 ACCEPT를 수행하게 만든다.

8) iptables 출력

Iptables의 룰셋을 확인할때 아래와 같이 하면 보기 더 편리하다.

Bash
iptables -nL

  Chain INPUT (policy DROP)
  target     prot opt source               destination
  ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
  ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
  ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:22
  ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:53
  ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:53
  ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80
  ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:443
  ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:3306

  Chain FORWARD (policy DROP)
  target     prot opt source               destination

  Chain OUTPUT (policy ACCEPT)
  target     prot opt source               destination

아래와 같이 각 룰셋의 적용순서까지 확인 가능한 방법도 있다.

Bash
iptables -nL --line-numbers

  Chain INPUT (policy DROP)
  num  target     prot opt source               destination
  1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
  2    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
  3    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:22
  4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:53
  5    ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:53
  6    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80
  7    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:443
  8    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:3306

  Chain FORWARD (policy DROP)
  num  target     prot opt source               destination

  Chain OUTPUT (policy ACCEPT)
  num  target     prot opt source               destination
Bash
iptables -L -v

  Chain INPUT (policy DROP 1626 packets, 214K bytes)
   pkts bytes target     prot opt in     out     source               destination
      0     0 ACCEPT     all  --  lo     any     anywhere             anywhere
    944  194K ACCEPT     all  --  any    any     anywhere             anywhere            state RELATED,ESTABLISHED
      0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:ssh
      0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:domain
      4   245 ACCEPT     udp  --  any    any     anywhere             anywhere            udp dpt:domain
      6   304 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:http
      0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:https
      2    88 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:mysql

  Chain FORWARD (policy DROP 0 packets, 0 bytes)
   pkts bytes target     prot opt in     out     source               destination

  Chain OUTPUT (policy ACCEPT 179 packets, 22190 bytes)
   pkts bytes target     prot opt in     out     source               destination

iptables 설정

아래는 CentOS 6.4 Minimal의 기본적인 iptables의 설정내용이다.

Bash
iptables -L

  Chain INPUT (policy ACCEPT)
  target     prot opt source               destination
  ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
  ACCEPT     icmp --  anywhere             anywhere
  ACCEPT     all  --  anywhere             anywhere
  ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh
  REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited

  Chain FORWARD (policy ACCEPT)
  target     prot opt source               destination
  REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited

  Chain OUTPUT (policy ACCEPT)
  target     prot opt source               destination

기본 정책이 모든 패킷에 대해 ACCEPT이며, SSH 서비스가 기본적으로 허용되어 있다. 이것을 과감히 날리고! 새로운 정책의 규칙을 작성할 것이다.

기본 정책 수립에 있어 DROP으로 설정할 경우 원격에서 SSH를 접속해 사용중이라면 그 순간 서버에 접속할 수 없게 된다. 그러므로 일단 기본 정책을 ACCEPT로 설정해서 SSH 설정을 마친후 다시 기본 정책을 DROP으로 변경하도록 하자. 현재 iptables 작업을 콘솔(서버컴퓨터로)상으로 작업하고 있다면 문제 될것이 없다.

기본설정

  1. 기본 정책을 ACCEPT 로 변경

    Bash
    iptables -P INPUT ACCEPT
    
  2. 체인에 정의된 모든 규칙을 삭제

    Bash
    iptables -F
    
  3. 확인해보면 규칙이 모두 제거되어 있다.

    Bash
    iptables -L
    
      Chain INPUT (policy ACCEPT)
      target     prot opt source               destination
    
      Chain FORWARD (policy ACCEPT)
      target     prot opt source               destination
    
      Chain OUTPUT (policy ACCEPT)
      target     prot opt source               destination
    
  4. INPUT 체인에 로컬호스트 인터페이스에 들어오는 모든 패킷을 허용 추가

    Bash
    iptables -A INPUT -i lo -j ACCEPT
    

    일반적으로 많은 소프트웨어들이 localhost 어댑터와 통신이 되어야 하기에 필요하다.

  5. INPUT 체인에 state 모듈과 매치되는 연결상태가 ESTABLISHED, RELATED인 패킷에 대해 허용 추가

    Bash
    iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    

    INPUT 체인에 접속에 속하는 패킷(응답 패킷을 가진것)과 기존의 접속 부분은 아니지만 연관성을 가진 패킷 (ICMP 에러나 ftp데이터 접속을 형성하는 패킷)을 허용하는 규칙이다.

  6. INPUT 체인에 프로톨콜이 tcp이며 목적지포트가 22번인 패킷에 대해 허용 추가

    Bash
    iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
    

    이로써 SSH 접속이 허용된다. telnet의 경우는 목적지 포트가 23번

  7. 이제 INPUT 체인에 대한 기본 정책을 버림(DROP)으로 변경

    Bash
    iptables -P INPUT DROP
    
  8. FORWARD 체인에 대한 기본정책을 버림으로 변경

    Bash
    iptables -P FORWARD DROP
    

    서버를 라우팅기기로 사용하지 않기에 모든 포워드에 대한 패킷을 DROP

  9. OUTPUT 체인에 대한 기본정책을 허용으로 변경

    Bash
    iptables -P OUTPUT ACCEPT
    
  10. 설정한 것들에 대한 확인

    Bash
    iptables -L -v
    
      Chain INPUT (policy DROP 108 packets, 12199 bytes)
       pkts bytes target     prot opt in     out     source               destination
          0     0 ACCEPT     all  --  lo     any     anywhere             anywhere
        273 25012 ACCEPT     all  --  any    any     anywhere             anywhere            state RELATED,ESTABLISHED
          0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:ssh
    
      Chain FORWARD (policy DROP 0 packets, 0 bytes)
       pkts bytes target     prot opt in     out     source               destination
    
      Chain OUTPUT (policy ACCEPT 9 packets, 1612 bytes)
       pkts bytes target     prot opt in     out     source               destination
    
  11. 설정한 것들 저장

    Bash
    service iptables save
    
    iptables: 방화벽 규칙을 /etc/sysconfig/iptables에 저장 중: [  OK  ]
    

iptables 규칙을 만들 때는 순서가 매우 중요하다. 예를 들어 만일 chain에서 로컬 192.168.100.0/24 서브넷에서 들어오는 모든 패킷을 drop하도록 지정한 후 (drop 하도록 지정된 서브넷에 포함되는) 192.168.100.13에서 들어오는 패킷을 모드 허용하는 chain (-A)을 그 후에 추가하면 뒤에 추가된 추가 규칙이 무시된다. 먼저 192.168.100.13를 허용하는 규칙을 설정한 후 서브넷을 drop하는 규칙을 설정해야한다.

그 밖의 서비스 허용

아래의 설정은 기본 정책을 OUTPUT 체인을 DROP (iptables -P OUTPUT DROP)으로 설정했을 경우를 대비해 OUTPUT도 함께 기술하였다.

네임서버

DNS -- TCP 53 / UDP 53
Bash
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT

웹서버

HTTP -- TCP 80
Bash
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
HTTPS -- TCP 443
Bash
iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp -m multiport --dports 80,443 -j ACCEPT
MySQL -- TCP 3306
Bash
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT 
FTP(passive mode)
Bash
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A OUTPUT -p tcp –-sport 21 -j ACCEPT

iptables -A INPUT -p tcp --dport 1024:65535 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 1024:65535 -j ACCEPT

메일서버

SMTP -- TCP 25
Bash
iptables -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
Secure SMTP -- TCP 465
Bash
iptables -A INPUT -p tcp -m tcp --dport 465 -j ACCEPT
POP3 -- TCP 110
Bash
iptables -A INPUT -p tcp -m tcp --dport 110 -j ACCEPT
Secure POP3 -- TCP 995
Bash
iptables -A INPUT -p tcp -m tcp --dport 995 -j ACCEPT
IMAP -- TCP 143
Bash
iptables -A INPUT -p tcp -m tcp --dport 143 -j ACCEPT
Secure IMAP -- 993
Bash
iptables -A INPUT -p tcp -m tcp --dport 993 -j ACCEPT
ICMP 허용 (ping)
Bash
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
NTP 시간동기화
Bash
iptables -A INPUT -p udp --dport 123 -j ACCEPT 

서버 취약점 보안

NULL 패킷 차단

NULL 패킷은 정찰 패킷으로 서버설정의 약한 곳을 찾기위한 방법으로 사용된다.

Bash
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
syn-flood attack 차단

syn-flood attack은 공격자가 새로운 연결을 만들고 빠지고를 반복해 리소스의 소모를 시키는 것

Bash
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP

Anti synflood with iptables

Edit /etc/sysctl.conf to defend against certain types of attacks and append / update as follows:

net.ipv4.tcp_syncookies = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.netfilter.ip_conntrack_max = 1048576
XMAS 패킷 차단

XMAS 또한 정찰 패킷이다.

Bash
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP

기타 사용법

iptables 수정법

등록된 iptables를 수정하는 방법은 /etc/sysconfig/iptables 에서 직접 vi로 수정하거나 iptables 명령어를 사용한다.

실행 순번을 확인하기

Bash
iptables -nL --line-number

아래의 예는 순번 3의 행을 아래와 같이 R(replace) - 수정하게 된다.

Bash
iptables -R INPUT 3 -p tcp --dport 2222 -j ACCEPT

인터페이스 지정

루프백 인터페이스에 대해 모든 패킷을 허용

Bash
iptables -A INPUT -i lo -j ACCEPT

랜카드 지정에 대해 모든 패킷을 허용

Bash
iptables -A INPUT -i eth0 -j ACCEPT

IP 주소 지정

신뢰할 만한 ip에 대해 모든 패킷을 허용

Bash
iptables -A INPUT -s 192.168.0.3 -j ACCEPT

신뢰할 만한 ip 대역에 대해 모든 패킷을 허용

Bash
iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT

신뢰할 만한 ip 대역에 대해 모든 패킷을 허용

Bash
iptables -A INPUT -s 192.168.0.0/255.255.255.0 -j ACCEPT

신뢰할 만한 ip와 MAC주소에 대해 모든 패킷을 허용

Bash
iptables -A INPUT -s 192.168.0.3 -m mac --mac-source 00:50:80:FD:E6:32 -j ACCEPT

포트 범위지정

Bash
iptables -A INPUT -p tcp --dport 6881:6890 -j ACCEPT

자동화 스크립트

자주 방화벽 설정을 초기화하고 재설정해야 한다면 자동화 스크립트를 짜놓는게 좋다. 아래는 그에 대한 예이다.

#!/bin/bash
# iptables 설정 자동화 스크립트
# 입맛에 따라 수정해서 사용합시다.
iptables -F

# TCP 포트 22번을 SSH 접속을 위해 허용
# 원격 접속을 위해 먼저 설정합니다
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT

# 기본 정책을 설정합니다
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# localhost 접속 허용
iptables -A INPUT -i lo -j ACCEPT

# established and related 접속을 허용
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Apache 포트 80 허용
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# 설정을 저장
/sbin/service iptables save

# 설정한 내용을 출력
iptables -L -v
  1. 위 내용을 입맛에 맞게 수정한 후에 저장(myfirewall)
  2. 권한부여

    Bash
    chmod +x myfirewall
    
  3. 실행

    Bash
    ./myfirewall
    



댓글을 달아 주세요

  1. 좋네요 3년 전

    상당히 정리도 깔끔하세요..
    출판일하신것처럼...

  2. 서버 2년 전

    정말 잘봤습니다!!
    지금 리눅스서버구축하고 외부접속 설정하는중에 이글을 보게되었네요!..
    근데 service 명령어에서 자꾸 오류가나네요;
    /sbin/service: 그런 파일이나 디렉터리가 없습니다.
    저장을 못하고있어요...
    명령어로 따로 쳤는데도 안먹힙니다;;
    # service iptables save
    왜안될까요...

    • BlogIcon unclepapa 2년 전

      음 제가 지금 CentOS 서버를 밀어버려서 확인이 불가능한데요.
      혹시 iptables 의 다른 명령어는 다 작동하나요?

      service iptables start / service iptables stop 과 같은 것 말이죠.
      다 작동하는데 service iptables save 만 작동하지 않는다면 iptables를 제거하고 다시 설치해 보는 방법뿐이 도움을 못드리겠네요.^^;

  3. 1900 약 1년 전

    혹시 폐가 안된다면 복사해가도 되는것이오? 소인도 iptables 정리글을 작성중에있는데 이글을 보니 탐이 나지않을수가 없더이다...

  4. 1900 약 1년 전

    고맙소 은혜있지않겠소

  5. SE 약 1년 전

    # iptables -P INPUT ACCEPT
    # iptables -F
    #iptables -A INPUT -i lo -j ACCEPT
    #iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    # iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
    # iptables -P INPUT DROP
    # iptables -P FORWARD DROP
    # iptables -P OUTPUT ACCEPT

    이 상태에서 외부에서 핑이 안가야 정상아닌가요? 계속 핑이 가는데 미치겠네요 ㅎㅎ문서가 참 깔끔합니다. 고맙습니다

  6. 좋아요 약 1년 전

    좋은 자료 정리 해주셔서 감사합니다.
    iptables 에 대해서 한번에 이해가 되네요 ㅎㅎㅎ 감사합니다.
    좋은 자료 다음에 못 찾을까봐; 자료좀 퍼갈께요 ;;;

  7. 감사 12개월 전

    좋은자료 감사합니다~ 출처남길께요~ 퍼갑니다 ^%^

  8. 87 10개월 전

    감사히 잘보게습니다. 블로그에 비공개로 볼 생각으로 퍼갑니다.^^

  9. 꽃선생 10개월 전

    퍼갑니다 링크로 출처 남기겠습니다^^

    좋은 자료 감사합니다!!

  10. manholeg 8개월 전

    질문이 있습니다. 좀 급해서 포트를 여는 데 이 강좌를 사용했는데요. 이후부터 wget명령어를 받아들이질 못하네요. unable to resolve host address "주소" 이런 메세지가 뜨네요. 방화벽과 관련이 있는 건가요?

    그리고 하나 더 있는데요. 제가 원래 공유기를 사용하던 환경에서는 포트포워딩만으로도 ssh접속이 가능했는데, 스위치를 사용하는 환경으로 바꾸고 나서부터는 22번포트가 안 열리더라구요. 방화벽이 있더라도 공유기에서 포트포워딩 작업을 거치면 자동으로 포트가 열리는 건가요?

    초보적인 질문을 스스로 해결하지 못해서 떠넘기는 것 같아 죄송하네요. 저도 더 알아보도록 할테니 짧은 도움 부탁드립니다~

    • BlogIcon 흉내쟁이 8개월 전

      방화벽 설정시에 나가는 연결에 대해서 무언가 이상이 없는지 확인해 보세요. 기본적으로 나가는 연결은 모두 ACCEPT 일껍니다. 저도 현재 타지에 있어서 확인할 수 없어 안타깝군요;;

      공유기를 사용하시는 환경에서는 공유기가 최전방에서 막아주는 역활을 하는거고, 포트포워딩을 해도 공유기와 물린 하위 컴퓨터들이 방화벽을 실행중이라면 접속하지 못하는게 맞는 겁니다.

      다만, 외부의 접속이 필요한 응용 프로그램들, 가령 웹서버나 FTP, 기타 등등의 프로그램들을 설치시에 방화벽 경고창이 뜨고 확인을 누르면 해당 프로그램이 필요로 하는 포트를 개방하게 되죠. 아마 윈도우에서 프로그램들 설치하시다보면 그런 경고창 자주 보셨을겁니다.^^;

      스위치는 제가 아직 사용해 보지 못한 관계로.. 답변을 드릴수가 없으나, 22번 포트를 열기 위해서는 스위치내에서 포트 개방이 필요할것 같고 SSH로 접속하게 될 서버의 방화벽 설정도 필요할 것으로 사료됩니다.

    • manholeg 8개월 전

      친절한 설명에 감사드립니다. 깔끔한 글이라 정독만 해도 응용이 잘 되네요.

      + 혹 저와 같은 증상을 겪은 분들이 계실까봐 말씀드립니다. 설정을 적용하던 도중 재부팅을 했었는지 DNS서버가 초기화된 거였네요.

  11. 데모닉21 8개월 전

    이해하기 쉽게 정리 잘 되어있네요.
    제 블로그에 복사해 가도 괜찮을까요?

  12. BlogIcon do9dark 8개월 전

    정말 도움 많이되었습니다. 감사합니다 '-'

  13. Edw_mong 7개월 전

    자동화 스크립트 내용에 대한 궁금증이 있어서 코멘트 남깁니다.
    1. 기본정책중 drop을 먼저 새우시고 그 이후에 accept하는 정책들을 쓰면 뒷 부분에 있는 내용들은 차단되지 않나요?
    2. 기본정책과 일반 정책의 차이점을 간결하게 설명해주세요
    3. 기본정책과 일반 정책의 우선순위를 간결하게 설명해주시면 감사하겠습니다.

  14. cuizhe960307@hotmail.com 6개월 전

    저도 SMTP 포트를 열려고 하는데 잘 안되요.
    위의 방법대로 하고
    # netstat -an | grep LISTEN
    쳐보면
    tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
    으로 되요.
    그런데 다른 포트들을 보면
    tcp 0 0 :::80 :::* LISTEN
    으로 되어있어요.
    제 생각엔 25포트가 local에서만 접근가능하게 되어있는것 같은데 외부에서두 붙게 하려면 어떻게 해야 할까요?

    • BlogIcon 흉내쟁이 6개월 전

      본문에 기재되어있는 iptable 설정확인 명령어를 사용하셔서 확인하세요

    • cuizhe960307@hotmail.com 6개월 전

      메일서버를 설치한 CentOS서버에
      메일계정 창조하고 outlook로 붙어보니
      SMTP 서버에 붙을수 없다고 해서 그러는데 어떻게 해결해야 할지 해결책을 찾지 못해서 그러니 부탁드립니다.

    • BlogIcon 흉내쟁이 6개월 전

      일단 메일서버가 정상 작동하는지 메일 서버에 접속하셔서 다른 계정에게 로컬상으로 메일 보내보시고, 웹메일계정에도 보내보셔요.
      (http://webdir.tistory.com/165)

      또한, 메일서버를 구축시에는 고정 IP를 확보하셔야 되고, 해당 IP가 화이트 도메인으로 등록되셔야 타도메인의 메일서버와의 메일 교환에 이상이 없습니다.

      SMTP 뿐만 아니라 사용하시는 프로그램에 따라 POP3/IMAP을 이용하셔야 할 수도 있으며 각각 포트를 개방하셔야 합니다.

    • cuizhe960307@hotmail.com 6개월 전

      댓글 감사합니다.
      다른 계정에서 로컬상으로 메일 보내봤습니다.
      bobby@example.com 으로 보내보니 /var/spool/mail/root 안에 쌓여있는걸 확인했어요.
      혹시 메일계정을 잘못 창조해서 그러잖을까요?

    • BlogIcon 흉내쟁이 6개월 전

      메일서버에 bobby 라는 계정이 있는거지요?
      뒤에 도메인은 임의로 붙이신건지 아니면 원래 계정명이 bobby@example.com 인 것인지!

      mail bobby 와 같이 일반 계정명으로 보내시면 됩니다.

    • cuizhe960307@hotmail.com 6개월 전

      example.com은 임의로 붙인것이고 bobby라는 계정이 존재합니다.
      mail bobby하니 정말 메일이 가요...
      근데 outlook에서 붙어보면 여전히 테스트 메일 보내기 실패가 현시됩니다.

    • BlogIcon 흉내쟁이 6개월 전

      로컬상으로 보내지면 이번에는 웹메일에 보내보셔야지요.

      다시 메일서버에서 이번에는 실제 사용하시는 메일계정으로 보내보셔요. 가령 naver 계정이 있으시면 mail 계정명@naver.com과 같이요.

      문제는 화이트도메인 등록이 안된 IP를 사용하신다면 naver 에서 블럭을 할 수 있으니 Daum 계정있으시면 그걸로도 보내보고 gmail 계정있으시면 그걸로도 테스트 해보셔야 할겁니다.

      일단 저 세곳중에 한 곳이라도 메일서버에서 보낸 메일이 도착한다면 SMTP는 작동하는 것입니다.

    • cuizhe960307@hotmail.com 6개월 전

      gmail에서 전송해봤는데 안되네요...
      무슨 잘못일까요?

    • BlogIcon 흉내쟁이 6개월 전

      /var/log/maillog 에서 오류메시지를 분석하세요. SMTP와 관련된 메세지는 https://support.google.com/a/answer/3221692?hl=ko 와 SMTP 에러메세지로 검색해보면 찾아보실수 있습니다.

    • cuizhe960307@hotmail.com 6개월 전

      아무리 메일보내도
      /var/log/maillog에는 아무 기록도 남지 않아요.
      크기가 변하지 않아요.

    • BlogIcon 흉내쟁이 6개월 전

      /var/log/messages 도 살펴보세요.
      그리고 사용하시는 메일 프로그램은 무엇인지요?

    • cuizhe960307@hotmail.com 6개월 전

      sendmail을 설치했어요.
      /var/log/messages도 달라지지 않아요.
      혹 제가 sendmail 잘못 설치한것 같은데
      sendmail설치 가이드 참고할 URL이라도 주시면 고맙겠습니다.

    • BlogIcon 흉내쟁이 6개월 전

      아이고, 저도 샌드메일은 설치경험이 없습니다. 따로 검색해보셔야 할것 같고요. postfix가 아마 최근에 사용되는 메일서버 일 껍니다.

    • cuizhe960307@hotmail.com 6개월 전

      그럼 님이 사용하시는 메일은 무엇입니까?

    • BlogIcon 흉내쟁이 6개월 전

      저는 이 블로그에 postfix를 이용한 설치 경험을 포스팅했고, 고정IP가 없어서 중도에 구글 SMTP 를 이용해 메일서버를 구축해 사용했고 지금은 따로 메일서버없이 네이버에서 제공하는 네이버 웍스를 사용합니다. 개인적인 사용목적이거나 소규모 조직의 사용이라면 네이버웍스를 추천드립니다.

    • cuizhe960307@hotmail.com 6개월 전

      답변 감사합니다.
      성의껏 방조 해주셔서 정말 고맙습니다.

    • BlogIcon 흉내쟁이 6개월 전

      문제해결이 되시길 기원합니다!

  15. 6개월 전

    비밀댓글입니다

  16. kay 3개월 전

    요즘 방화벽 공부중인데,
    제가 본 자료 중 최고입니다.
    잘 보고 갑니다. 고맙습니다 (__)


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
127 Linux nmtui 맨하탄노숙자 2017.11.21 0
126 Linux xfs repair 맨하탄노숙자 2017.10.14 0
125 Linux RHEL7(CentOS7) 의 grub2 사용 해 보기 맨하탄노숙자 2017.07.26 3
124 Linux VMware ESXi SSD on RAID showing as non-ssd 맨하탄노숙자 2017.05.09 3
123 Windows Windows XP 의 윈도우에서 Visual Studio .net (2003) 설치시 옵션 맨하탄노숙자 2017.01.02 10
122 Windows 윈 10 인증 크랙 secret 맨하탄노숙자 2016.05.01 8
121 Windows 윈도우10 정품인증을 확실하게 받을 수 있는 방법입니다 맨하탄노숙자 2016.05.01 2464
120 Linux CentOS 7 CPU 퍼포먼스가 100% 안나올때 맨하탄노숙자 2016.03.25 152
119 Linux ## 아파치 설치용으로 CSR을 생성하고, 발급받은 VeriSign(베리사인) SSL 인증서를 Tomcat 8 에 적용 맨하탄노숙자 2016.03.22 210
118 Linux mysql old_password 설정 맨하탄노숙자 2016.03.22 84
117 Windows 윈도우7 원격데스크톱 2인 이상 동시 접속 (다중 사용자 모드) 설정 방법 file 맨하탄노숙자 2016.03.21 351
116 Linux rsync 맨하탄노숙자 2016.03.21 57
115 Linux Rsync 특정 기간(일정 기간) 이상 지난 컨텐츠 복사 (730일, 365일, 1주일) 맨하탄노숙자 2016.03.10 51
114 Linux iptables 용어 맨하탄노숙자 2016.02.18 320
» Linux iptables 용어 맨하탄노숙자 2016.02.18 330
112 Linux Linux iptables 방화벽 설정 맨하탄노숙자 2016.02.18 60
111 Linux Linux iptables 방화벽 설정 맨하탄노숙자 2016.02.18 184
110 Linux iptables 설정 두번째 맨하탄노숙자 2016.02.18 107
109 Linux iptables connlimit 모듈 활용 DDoS 맨하탄노숙자 2016.02.17 59
108 Linux iptables 분석 맨하탄노숙자 2016.02.17 23
Board Pagination Prev 1 2 3 4 5 6 7 Next
/ 7