# iptables [-t 테이블 이름] [Chain 이름] [parameters 옵션] [-m 확장 모듈] [모듈 옵션] [target] [target 옵션]
- 테이블 이름은 소문자로 지정
- 옵션 생략 시 기본 값은 filter table로 지정됨
- INPUT, OUTPUT, FORWARD, PREROUTING, POSTROUTING
iptables 기본 동작
- 위에서부터 차례로 각 규칙에 대해 검사 수행
- 규칙과 일치하는 패킷에 대하여, 타겟에 지정된 작업을 수행
- 규칙이 일치하고 작업이 수행되면 해당 규칙의 결과에 따라 처리하고 체인에서 추가 규칙을 무시
- 패킷이 체인의 모든 규칙과 매치하지 않아 규칙의 바닥에 도달하면 정해진 기본정책(policy) 수행
▪ 기본 정책은 policy ACCEPT , policy DROP 으로 설정
• iptables 기본 정책 설정
- [root@localhost ~]# iptables -P
▪ Chain : 기본정책을 설정할 Chain 지정(대문자로 지정)
▪ Target : ACCEPT(허용) , DROP(거부) 설정
들어오는 모든 패킷을 모두 차단
# iptables -t filter -P INPUT DROP
* 핑 (icmp) 만 허용해주는 정책 추가
# iptables -t filter -A INPUT -p icmp -j ACCEPT
* tcp 22번 (SSH) 허용
# iptables -t filter -A INPUT -p tcp --dport 22 -j ACCEPT
* 리스트 볼 때 행번호 추가
[root@localhost ~]# iptables -t filter -L --line-number
* 행 번호를 이용하여 정책 한 줄만 삭제
[root@localhost ~]# iptables -t filter -D INPUT 1
* http (80번 포트) 허용 추가.
( I 옵션 쓰면 제일 위로, A옵션 쓰면 제일 아래로. 행번호 지정하고 싶으면 다음처럼 I 옵션 뒤에 추가. )
iptables 설정파일
- /etc/sysconfig/iptables 파일
# service iptables save
를 해주면 service iptables restart 를 하더라도 초기화되지 않고 보존된다.
iptables-save > /root./iptables.01
현재 저장된 iptables 상태 전체를 cat으로 읽을 수 있다.
백업했던 iptables. 파일로 원래상태로 복원시키기
실습 >
httpd를 virtual host 기능을 이용하여 80, 8080 포트로 서비스 하도록 설정 후
iptables 에서 -m miltiport 옵션을 이용하여 추가 후 외부에서 사용가능 하도록 하기
httpd 설치 후
//설정파일은 항상 백업해놓는 습관들이기
[root@localhost ~]# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak
//Listen 포트 8080 추가
[root@localhost ~]# vi /etc/httpd/conf/httpd.conf
[root@localhost ~]# service httpd restart
Virtual host
- 1개의 웹서버에서 여러개의 웹사이트를 동시에 운영
/var/www/80
/var/www/8080
디렉토리 추가 하고
각 디렉토리에 index.html 파일 만들고
이런식으로 대충 html 파일 만들어 준다.
[root@localhost 8080]# iptables -t filter -I INPUT -p tcp -m multiport --dports 80,8080 -j ACCEPT
* 상태 추적하는 명령어
[root@localhost ~]# iptables -F
[root@localhost ~]# cat /proc/net/nf_conntrack
ipv4 2 unknown 2 572 src=200.200.200.254 dst=224.0.0.1 [UNREPLIED] src=224.0.0.1 dst=200.200.200.254 mark=0 secmark=0 use=2
ipv4 2 tcp 6 299 ESTABLISHED src=200.200.200.23 dst=200.200.200.148 sport=50593 dport=22 src=200.200.200.148 dst=200.200.200.23 sport=22 dport=50593 [ASSURED] mark=0 secmark=0 use=2
ipv4 2 udp 17 3 src=200.200.200.29 dst=200.200.200.255 sport=138 dport=138 [UNREPLIED] src=200.200.200.255 dst=200.200.200.29 sport=138 dport=138 mark=0 secmark=0 use=2
# iptables -t filter -A INPUT -p tcp --tcp-flag ALL NONE -j LOG --log-prefix "[NULL SCAN DETECTED];"
하고
kali 에서
centOS 포트 열려있는지 nmap 명령어로
포트스캐닝
# cat /var/log/messages
'INFOSEC > LINUX' 카테고리의 다른 글
iptables NAT (0) | 2019.10.11 |
---|---|
iptables 실습 - linux router 이용 (0) | 2019.10.11 |
DHCP - Relay Agent ( Helper Address ) (0) | 2019.09.30 |
SNORT ( 2 ) - rules (0) | 2019.09.27 |
SNORT (0) | 2019.09.26 |