1. iptables 저장 즉시 최근 방화벽 설정으로 사용 설정하기
save 필요없이 systemctl restart iptables 시 바로 방화벽 적용 됩니다.
접속된 putty는 방화벽 수정과 상관없이 계속 접속되며 ssh 확인은 다른 창에서 Putty 접속후 적용여부 확인 필요합니다.
아래 사항 yes로 수정
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
[root@~]# vi /etc/sysconfig/iptables-config # Save current firewall rules on restart. # Value: yes|no, default: no # Saves all firewall rules to /etc/sysconfig/iptables if firewall gets # restarted. IPTABLES_SAVE_ON_RESTART="yes" # Save (and restore) rule and chain counter. # Value: yes|no, default: no # Save counters for rules and chains to /etc/sysconfig/iptables if # ‘service iptables save’ is called or on stop or restart if SAVE_ON_STOP or # SAVE_ON_RESTART is enabled. IPTABLES_SAVE_COUNTER="yes" |
2. iptables 수정 및 설명
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
[root@localhost]# vi /etc/sysconfig/iptables # Generated by iptables-save v1.3.5 on Mon Jan 28 16:36:47 2013 *filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT ACCEPT [0:0] :RH-Firewall-1-INPUT - [0:0] # 막을 아이피영역지정 -A RH-Firewall-1-INPUT -s 5.9.167.0/24 -j DROP -A RH-Firewall-1-INPUT -s 114.108.152.0/24 -j DROP -A RH-Firewall-1-INPUT -s 114.108.153.0/24 -j DROP -A RH-Firewall-1-INPUT -s 177.129.90.0/24 -j DROP -A RH-Firewall-1-INPUT -s 116.124.131.0/24 -j DROP [0:0] -A INPUT -j RH-Firewall-1-INPUT [0:0] -A FORWARD -j RH-Firewall-1-INPUT [0:0] -A RH-Firewall-1-INPUT -i lo -j ACCEPT [0:0] -A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type any -j ACCEPT #허용아이피,Port 지정 [0:0] -A RH-Firewall-1-INPUT -d 224.0.0.251 -p udp -m udp --dport 5353 -j ACCEPT [0:0] -A RH-Firewall-1-INPUT -p udp -m udp --dport 53 -j ACCEPT [0:0] -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 53 -j ACCEPT [0:0] -A RH-Firewall-1-INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT [0:0] -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 20 -j ACCEPT [0:0] -A RH-Firewall-1-INPUT -s 111.111.111.222 -j ACCEPT [0:0] -A RH-Firewall-1-INPUT -s 210.123.21.175 -p tcp -m tcp --dport 22 -j ACCEPT [0:0] -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 21 -j ACCEPT [0:0] -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 143 -j ACCEPT [0:0] -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 80 -j ACCEPT [0:0] -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 443 -j ACCEPT [0:0] -A RH-Firewall-1-INPUT -j DROP COMMIT |
설명
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#허용아이피,Port 지정 [0:0] -A RH-Firewall-1-INPUT -d 224.0.0.251 -p udp -m udp --dport 5353 -j ACCEPT [0:0] -A RH-Firewall-1-INPUT -p udp -m udp --dport 53 -j ACCEPT # udp 53 port 허용 #이후는 삭제후 실행 [0:0] -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 53 -j ACCEPT # tcp 53 port 허용 #이후는 삭제후 실행 [0:0] -A RH-Firewall-1-INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT [0:0] -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 20 -j ACCEPT # tcp 20 port 허용 #이후는 삭제후 실행 [0:0] -A RH-Firewall-1-INPUT -s 111.111.111.222 -j ACCEPT # 내 PC는 모두 포트 허용 #이후는 삭제후 실행 [0:0] -A RH-Firewall-1-INPUT -s 210.123.21.175 -p tcp -m tcp --dport 22 -j ACCEPT #특정 IP에서만 22포트 허용 #이후는 삭제후 실행 [0:0] -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 21 -j ACCEPT #ftp 포트 열기 #이후는 삭제후 실행 [0:0] -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 143 -j ACCEPT #143 포트 열기 #이후는 삭제후 실행 [0:0] -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 80 -j ACCEPT #http 포트 열기 #이후는 삭제후 실행 [0:0] -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 443 -j ACCEPT #https 포트 열기 #이후는 삭제후 실행 [0:0] -A RH-Firewall-1-INPUT -j DROP # 그 외에 모두 드랍 (반드시 있어야 함) #이후는 삭제후 실행 |
2.1 주석추가 샘플 (주석최대 256바이트)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
[root@localhost]# vi /etc/sysconfig/iptables # Generated by iptables-save v1.3.5 on Mon Jan 28 16:36:47 2013 *filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT ACCEPT [0:0] :RH-Firewall-1-INPUT - [0:0] # 막을 아이피영역지정 -A RH-Firewall-1-INPUT -s 5.9.167.0/24 -j DROP -A RH-Firewall-1-INPUT -s 114.108.152.0/24 -j DROP -A RH-Firewall-1-INPUT -s 114.108.153.0/24 -j DROP -A RH-Firewall-1-INPUT -s 177.129.90.0/24 -j DROP -A RH-Firewall-1-INPUT -s 116.124.131.0/24 -j DROP [0:0] -A INPUT -j RH-Firewall-1-INPUT [0:0] -A FORWARD -j RH-Firewall-1-INPUT [0:0] -A RH-Firewall-1-INPUT -i lo -j ACCEPT [0:0] -A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type any -j ACCEPT #허용아이피,Port 지정 [0:0] -A RH-Firewall-1-INPUT -d 224.0.0.251 -p udp -m udp --dport 5353 -j ACCEPT [0:0] -A RH-Firewall-1-INPUT -p udp -m udp --dport 53 -m comment --comment "Domain udp 53 port 허용" -j ACCEPT [0:0] -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 53 -m comment --comment "Domain udp 53 port 허용" -j ACCEPT [0:0] -A RH-Firewall-1-INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT [0:0] -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 20 -m comment --comment "tcp 20 port 허용" -j ACCEPT [0:0] -A RH-Firewall-1-INPUT -s 111.111.111.222 -m comment --comment "내 PC는 모두 포트 허용" -j ACCEPT [0:0] -A RH-Firewall-1-INPUT -s 210.123.21.175 -p tcp -m tcp --dport 22 -m comment --comment "특정 IP에서만 22포트 허용" -j ACCEPT [0:0] -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 21 -m comment --comment "ftp 포트 열기" -j ACCEPT [0:0] -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 143 -m comment --comment "143 포트 열기" -j ACCEPT [0:0] -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 80 -m comment --comment "http 포트 열기" -j ACCEPT [0:0] -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 443 -m comment --comment "https 포트 열기" -j ACCEPT [0:0] -A RH-Firewall-1-INPUT -m comment --comment "- 그 외에 모두 드랍 (반드시 있어야 함)" -j DROP COMMIT |
- -A (–-append) : 새로운 규칙을 추가
- ACCEPT : 패킷을 받아들임.
- DROP : 패킷을 버림 (패킷전송이 없었던 것 처럼)
- -s (–source) : 출발지 IP주소나 네트워크와의 매칭
- -d (–destination) : 목적지 IP주소나 네트워크와의 매칭
- -p (–protocol) : 특정 프로토콜과의 매칭
- -i (–in-interface) : 입력 인터페이스
- -o (–out-interface) : 출력 인터페이스
- –state : 연결상태와의 매칭
- –comment : 커널 메모리 내의 규칙과 연계되는 최대 256바이트 주석
- -y (–syn) : SYN 패킷을 허용하지 않음
- -f(–fragment) : 두번째 이후의 조가게 대해서 규칙을 명시한다.
- -t (–table) : 처리될 테이블
- -j (–jump) : 규칙에 맞는 패킷을 어떻게 처리할것인가를 명시한다.
- -m (–match) : 특정 모듈과의 매치
3. 확인
1 2 3 |
iptables -nL |
4. 적용 / 재시작
1 2 3 4 5 6 7 8 9 10 11 |
[root@localhost bin]# systemctl restart iptables //구명령어 /etc/init.d/iptables restart 방화벽 규칙을 삭제하는 중: [ OK ] chains를 ACCEPT 규칙으로 설정함: filter [ OK ] iptables 모듈을 제거하는 중: [ OK ] iptables 방화벽 규칙들을 적용하는 중: [ OK ] 추가 iptables 모듈을 읽어오는 중: [ OK ] |
기타
1. 패켓(접속수) 개수 보기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# iptables -nvL --line-numbers Chain INPUT (policy DROP 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination 1 1591 214K RH-Firewall-1-INPUT all -- * * 0.0.0.0/0 0.0.0.0/0 Chain FORWARD (policy DROP 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination 1 0 0 RH-Firewall-1-INPUT all -- * * 0.0.0.0/0 0.0.0.0/0 Chain OUTPUT (policy ACCEPT 1180 packets, 6223K bytes) num pkts bytes target prot opt in out source destination Chain RH-Firewall-1-INPUT (2 references) num pkts bytes target prot opt in out source destination 1 0 0 DROP all -- * * 206.124.132.23 0.0.0.0/0 2 0 0 DROP all -- * * 76.72.173.179 0.0.0.0/0 3 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 4 0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmptype 255 5 0 0 ACCEPT udp -- * * 0.0.0.0/0 224.0.0.251 udp dpt:5353 6 0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:53 7 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:53 8 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:50002 9 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpts:60010:60020 10 12 648 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 11 1551 209K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 17 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:25 18 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:143 19 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:110 20 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 21 15 3348 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 |
2. 패켓 0 초기화
1 2 3 |
# iptables -Z |