firewalld
-> CentOS7 버전에 생김 , iptables보다 사용하기 쉽지만 세세히 적용하기 힘들어 아직까지도 iptables를 사용하는 곳이 많다.

iptables 실행
[root@localhost ~]# service iptables status
iptables: 방화벽이 실행 중이 아닙니다. 
[root@localhost ~]# chkconfig --list iptables
iptables        0:해제 1:해제 2:해제 3:해제 4:해제 5:해제 6:해제
[root@localhost ~]# chkconfig --level 5 iptables on
[root@localhost ~]# chkconfig --list iptables
iptables        0:해제 1:해제 2:해제 3:해제 4:해제 5:활성 6:해제
[root@localhost ~]# 

정책 목록 출력
[root@localhost ~]# 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         
[root@localhost ~]# 

-n을 붙혀 숫자로 표현
[root@localhost ~]# iptables -t filter -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 
REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

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

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
[root@localhost ~]# 

--line을 붙혀 정책의 순차번호 출력
[root@localhost ~]# iptables -t filter -nL --line
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
2    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 
5    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         
1    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination         
[root@localhost ~]# 

nat 정책 목록(현재는 설정해 놓은게 없어서 리스트가 없다)
[root@localhost ~]# iptables -t nat -nL
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
[root@localhost ~]# 


통신을 가능하게 하려면 양쪽다 허용
통신을 불가능하게 하려면 한쪽만 거부
iptables input DROP 설정 (filter table 생략가능)
[root@localhost ~]# iptables -t filter -P INPUT DROP

iptables input ACCEPT 설정 (filter table 생략가능)
[root@localhost ~]# iptables -t filter -P INPUT ACCEPT

iptables output DROP 설정 (filter table 생략가능)
[root@localhost ~]# iptables -t filter -P OUTPUT DROP

iptables output ACCEPT 설정 (filter table 생략가능)
[root@localhost ~]# iptables -t filter -P OUTPUT ACCEPT

append와 출발지 ip 사용 (-s or --source)
-append는 마지막부분에 추가된다.
[root@localhost ~]# iptables -A INPUT -s 1.1.1.1

insert는 따로 지정 없으면 최상위에 추가된다.
[root@localhost ~]# iptables -I INPUT -s 3.3.3.3
위치 지정은 INPUT 뒤에 숫자를 쓴다
[root@localhost ~]# iptables -I INPUT 2 -s 4.4.4.4


삭제는 -D or --delete 를 사용하고 INPUT 뒤에 지울 번호를 쓴다.
[root@localhost ~]# iptables -D INPUT 3

모든 정책 한번에 삭제 -F or --Flush
[root@localhost ~]# iptables -F INPUT

주요옵션 확인
[root@localhost ~]# iptables -h

특정 프로토콜 지정 할 수 있는 목록 확인
[root@localhost ~]# iptables -p tcp -h

-j REJECT
- 패킷 차단 하지만 차단된 패킷에 대한 응답을 전달
[root@localhost ~]# iptables -A INPUT -s 192.168.30.20 -j REJECT

iptable 저장 후 종료
[root@localhost ~]# service iptables save
iptables: 방화벽 규칙을 /etc/sysconfig/iptables에 저장 중: [  OK  ]
[root@localhost ~]# 
[root@localhost ~]# service iptables stop
iptables: 체인을 ACCEPT 규칙으로 설정 중:  nat filter      [  OK  ]
iptables: 방화벽 규칙을 지웁니다:                          [  OK  ]
iptables: 모듈을 언로드하는 중:                            [  OK  ]

icmp 세부설정
iptables -I INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -I OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT


사용자 정의 체인
- 연관 정책들에 대한 그룹지정 용도로 사용
iptables -N 이름


iptables -F 로 정책 전체 지울때 사용자정의 체인은 지원지지 않는다.

사용자 정의 체인 삭제 명령어 -X
iptables -X 이름 

외부에서 내부로 들어올 때는 기본 정책이 거부이고 화이트리스트 방식
(INPUT 은 거부)
내부에서 외부로 보낼 때는 기본 정책이 허용이고 블랙리스트 방식
(OUTPUT은 허용)


1개의 정책으로 여러가지 port 설정
iptables -A INPUT -p tcp -m multiport -s 192.168.30.0/24 --dport 23,2222 -j ACCEPT

icmp redirect 차단하기
iptables -A INPUT -p icmp --icmp-type redirect -j DROP










'정보보안 > 공부 기록' 카테고리의 다른 글

모의해킹  (0) 2023.01.01
Kail  (0) 2023.01.01
DNS Server  (0) 2023.01.01
DHCP Server  (0) 2023.01.01
인코딩, Join, view  (0) 2023.01.01

+ Recent posts