관리 메뉴

IT창고

리눅스 iptables 본문

서버운영/Linux

리눅스 iptables

방구석여포 2017. 10. 15. 21:19

리눅스의 iptables는 커널의 IP 패킷 필터링(Packet Filtering) 기능을 하는 Netfilter에 규칙을 설정하고 관리하는 도구입니다.

체인이라는 방향성을 가진 규칙을 연결한 테이블이라고 할수있습니다. packet filtering은 네트워크를 통과하는 모든 패킷들은 패킷 헤더에 출발지와 목적지 그리고 어떤 프로토콜을 이용하는지에 대한 정보를 가지고 있습니다.


iptables를 설정해보겠습니다.

먼저 리눅스에서 service iptables start를 입력해서 데몬을 활성화시키고 chkconfig --list iptables 로 확인합니다.

iptables의 정책으로 OUTPUT, FORWARD, INPUT 체인이 있습니다. 정책 설정은 iptables -P INPUT DROP, iptables -P OUTPUT ACCEPT 와 같이 해줍니다. iptables -F 를 입력하면 iptables의 모든 정책을 초기화시켜서 깨끗하게 합니다. 만약 ssh로 접속한 상태에서 iptables -F를 입력했다면 ssh접속도 해제될텐데 iptables -A INPUT -p tcp --dport 22 -j ACCEPT를 콘솔에 입력해주면 다시 ssh에 접속할수 있습니다. 


테스트를 해보면 vi /etc/resolv.conf 파일에 ip를 8.8.8.8로 설정해두고 시작하겠습니다.

iptables설정 형식은 iptables -A INPUT -p tcp -[s/d IP주소] --[d/s PORT번호] -j [ACCEPT/DROP] 입니다.

A리눅스에서 B리눅스(ip는 192.168.1.25)로 ssh접속을 막는다는 가정하에 A리눅스에 iptables -A INPUT -p tcp -s 192.168.1.25 --dport 22 -j DROP 를 입력하면됩니다. C리눅스(192.168.1.26)에서 A리눅스로 ssh접속을 허용하려면 iptables -A INPUT -p tcp -s 192.168.1.26 --dport 22 -j ACCEPT 를 입력하면됩니다.

자신이 입력한 정책을 직접 확인하려면 iptables -L 혹은 iptables -nL를 입력하면 현재 iptables정책 상태를 확인할수있습니다.

정책을 많이 설정했다면 정책을 삭제하는 방법도 있습니다. 정책은 INPUT, FORWARD, OUTPUT 각각의 체인안에서 가장 위에있는 정책이 1번이고 그다음 아래에 있는게 2번 순서대로 흘러갑니다. 만약 INPUT체인안에 3번째 정책을 삭제하고 싶다면 iptables -D INPUT 3 를 입력하면 됩니다. 그리고 정책상 정책순서를 가장 먼저 올려야할경우도 있습니다 그럴 경우 예로들어 iptables -I INPUT 1 -p tcp -s 192.168.1.25 --dport 22 -j DROP 를 입력하면됩니다 여기서 I옵션이 정책을 1번으로 올립니다. 그리고 특정 ip만 개방하는 법말고도 모두 개방할수도 있습니다 예로 ptables -A INPUT -p tcp --sport 80 -j ACCEPT 를 입력하면 80번 포트로 모두 개방합니다. 

'서버운영 > Linux' 카테고리의 다른 글

리눅스 웹 서버 사용자 디렉토리  (0) 2018.07.18
CentOS 7 설치 및 환경설정  (0) 2018.06.12
리눅스 WEB3 설정  (0) 2017.10.15
리눅스 WEB2 설정  (0) 2017.09.30
리눅스 WEB 설정  (0) 2017.09.28
Comments