Linux 서버에서 iptables 명령을 활용하여 IP 및 port가 차단 되었는지 확인 하기
Iptables 프로그램
Iptable은 정책 체인(chain)을 활용하여 트래픽을 허용하거나 차단하기 위해 Linux 커널 방화벽의 IP 패킷 필터 규칙을
구성하는 프로그램이다.
#iptables [-t table][action][matches][-j target]
Iptables에서의 IP address 차단 상태 점검
IPTABLES에서 IP 상태 확인
iptables -L -n -line | grep [IP address]
여기서 만약 해당 IP 상태가 Drop 또는 Reject 일 경우, Iptables에서 블록 된 상태 이다.이를 경우,
해당 IP address를 Unblock 해 줘야 한다.
IPTABLES에서 IP address를 Unbloking 하기 위한 Accept 설정
iptables -I INPUT -s [IP address] -j ACCEPT
해당 IP address 재 Blocking 설정
iptables -A INPUT -d [IP address] -j DROP
해당 설정을 저장 하기
service iptables save
SSH에서 CSF의 IP address의 차단 해제
CSF에서 IP 차단 상태 확인
csf -g <IP_address>
만약 IP가 거부되어 있는것을 이를 제거하려면 다음 명령을 실행
csf -dr <IP_address>
프로세스 변경 사항을 적용하려면 CSF를 다시 시작 해야 한다.
csf -r
** 참고 : IPTABLES의 ull 경로는 /sbin.iptables 이지만 명령 #iptables로 대체 할 수 있다.
IPTABLES에서 모든 포트 차단하기
특정 포트를 제외한 모든 연결을 차단 하기. 루트(Root) 권한으로 서버에 SSH 접속
1. 현재 모든 iptables 규칙 삭제 (이전 구성으로 인한 오류 배제시키기 위함)
iptables -t filter -F
iptables -t filter -X
2. 모든 트래픽 차단
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP
3. 기존 연결 유지(건너 뛸수 있지만 다음 규칙을 적용하는 것이 좋다)
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEP
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEP
4. 루프백(Loopback) 연결 허용( 경우에 따라 필요, 가능한 이 규칙 추가)
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT
5. 허용된 규칙 추가 (예 : http 트래픽 허용)
iptables -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
6. SSH 허용 설정(기본 Port에서 변경 한 경우 변경된 port 설정)
iptables -t filter -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 22 -j ACCEPT
7. 특정 IP를 SSH 오픈
iptables -I INPUT -p tcp -m tcp -s <ip_address> --dport 22 -j ACCEPT
iptables -I INPUT -p tcp -m tcp -s <0.0.0.0/0> --dport 22 -j ACCEPT
8. 일부 포트 범위를 허용해야 하는 경우(port 1024~2000)
iptables -t filter -A OUTPUT -p tcp --dport 1024:2000 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 1024:2000 -j ACCEPT
9. DNS(53) port 제외한 모든 UDP 차단
#allow dns requests
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
#block all other udp
iptables -A OUTPUT -p udp -j DROP
ip6tables -A OUTPUT -p udp -j DROP
10. -d 파라메터를 사용하여 허용된 네임서버 추가
iptables -A OUTPUT -p udp --dport 53 -d 8.8.8.8 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -d 8.8.4.4 -j ACCEPT
11. 발신 Ping Echo 를 비활성화(disable)
iptables -A OUTPUT -p icmp --icmp-type echo-requests -j DROP
12. 수신 Ping 비활성화
iptables -A INPUT -p icmp --icmp-type echo-requests -j REJECT
13. 모든 설정이 끝났으면 저장 후 서비스를 재 시작 해야 한다.
iptables -save >/etc/sysconfig/iptables
service iptables restart
리눅스(Linux)에서 IP 블록상태 및 Port 차단 하는 방법을 알아 봤습니다.:)
'정보보안, 해킹, IT지식 > 네트워크 지식' 카테고리의 다른 글
시스코 무선 AP 공장 초기화 (0) | 2023.08.02 |
---|---|
시스코(Cisco) AP(Access point) IOS upgrade (0) | 2023.08.01 |
포티넷(Fortinet) Fortigate CLI 주요 명령어 (0) | 2023.07.28 |
포티넷(Fortinet) 방화벽 Fortigate CLI 접근 방법 (0) | 2023.07.26 |
TCPing 에 대해 알아 보자 (0) | 2023.07.24 |