Hostwinds 튜토리얼
에 대한 검색 결과:
목차
태그 : CentOS Web Panel, Firewall, Linux
iptables는 리눅스 배포판을 위해 특별히 제작 된 매우 유연한 명령 줄 기반 방화벽 유틸리티입니다.iptables는 트래픽을 허용하거나 차단하기 위해 정책 체인을 사용합니다.서버에 연결이 설정되면 iptables가 목록에서 규칙을 식별하여 수행 해야하는 작업을 확인합니다.연결에 대한 규칙이 없으면 시스템에 대해 정의 된 기본 조치에 의존 할 것입니다.
일반적으로 IPTables는 대부분의 Linux 시스템에 기본적으로 설치됩니다. 업데이트하거나 설치하려면 다음 명령을 실행하여 IPTables 패키지를 검색 할 수 있습니다.
노트 : IPTable은 CentOS 6에 사전 설치되어 있어야합니다.
우분투
apt-get install iptables-persistent
CentOS 7
systemctl stop firewalld
systemctl mask firewalld
yum install iptables-services
systemctl enable iptables
systemctl start iptables
이제 iptables가 시스템에 설치됩니다.iptables를 사용하는 방법을 살펴 보겠습니다.
이 섹션에서는 현재 규칙 집합을 나열하고 IP 주소를 차단하는 것과 같은 기본 iptables 특정 명령 및 사용을 다루게됩니다.
Specification으로 현재 활성화 된 룰 세트를 나열하려면 다음 명령을 실행합니다.
iptables -S
특정 체인에 현재 적용되는 규칙을 표시하려면 다음 명령을 사용할 수 있습니다. 이 예제는 UDP 체인에 대한 모든 규칙 사양을 보여줍니다.
iptables -S UDP
-L 옵션을 호출하는 다음 명령을 사용하여 테이블보기에있는 현재 IPTables 규칙을 모두 나열 할 수 있습니다. 그러면 체인 유형별로 정렬 된 모든 현재 규칙 세트가 나열됩니다.
iptables -L
-d 옵션을 사용하여 iptables에서 규칙을 삭제할 수 있습니다.몇 가지 다른 방법으로 규칙 집합을 제거 할 수 있습니다.우리는 사양으로 규칙을 제거 할 것입니다.예를 들어, 포트 443에서 모든 수신 트래픽을 허용하는 규칙을 제거하려면 다음 명령을 사용하십시오.
iptables -D INPUT -i eth0 -p tcp --dport 443 -j ACCEPT
IPTables를 사용하여 규칙을 플러시 할 수 있습니다. 이는 단일 체인을 플러시하거나 모든 체인을 플러시하여 수행 할 수 있습니다. 아래에서 두 가지 방법을 모두 다룰 것입니다.
단일 체인을 플러시하려면 -f 옵션 또는 동일한 -flush 옵션을 사용하여 플러시 할 체인의 이름과 결합 할 수 있습니다.예를 들어 다음 명령을 사용하여 입력 체인의 모든 규칙을 삭제할 수 있습니다.
iptables -F INPUT
모든 체인을 플러시하려면 추가 매개 변수없이 -f 또는 explie -flush 옵션을 다시 사용합니다.이렇게하면 현재 서버에서 활성화 된 모든 방화벽 규칙을 효과적으로 제거합니다.명령은 다음과 같습니다.
iptables -F
iptables는 특정 IP 주소에서 네트워크 연결을 차단하는 기능을 제공합니다.예를 들어 모든 수신 연결을 10.10.10.10으로 차단하려면 다음 명령을 실행합니다.
iptables -A INPUT -s 10.10.10.10 -j DROP
"연결 거부"오류로 응답하는 연결을 거부 할 수도 있습니다.거부로 드롭을 교체하십시오.
iptables -A INPUT -s 10.10.10.10 -j REJECT
특정 IP의 연결을 -i 옵션을 사용하여 eth1과 같은 특정 네트워크 장치로 연결할 수도 있습니다.
iptables -A INPUT -i eth1 -s 10.10.10.10 -j DROP
기본 SSH 포트 (22)에서 들어오는 모든 SSH 연결을 허용하려면 다음 명령을 사용하십시오.
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT
또한 SSH 연결을 제한하여 특정 IP 주소 또는 서브넷에서만 허용됩니다.예를 들어, IP 주소 10.10.10.10이 SSH를 통해 서버에 연결되도록 허용하기 만하면 다음 명령을 사용하십시오.
iptables -A INPUT -p tcp -s 10.10.10.10 --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT
다음 명령이 설명하는대로 / 27과 같이 명령에 서브넷을 추가하여 전체 서브넷에 대해이 작업을 수행 할 수도 있습니다.
iptables -A INPUT -p tcp -s 10.10.10.10/27 --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
방화벽은 수락 할 출력 정책을 설정할 수 없습니다.이 경우 서버에서 직접 외부 서버에 연결하려는 경우 나가는 SSH 연결을 허용해야 할 수 있습니다.다음 명령을 실행하여 기본 SSH 포트 (22)에서이를 수행 할 수 있습니다.다른 SSH 포트를 사용하는 경우 다음 예제에서 "22"를 사용중인 포트 번호로 바꿉니다.
iptables -A OUTPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT
기본적으로 HTTP 트래픽은 일반적으로 포트 80에서 제공되며 HTTPS 트래픽은 일반적으로 포트 443에서 제공됩니다. 다음 명령을 사용하여 웹 서버에 대한 연결 유형을 모두 허용 할 수 있습니다.
노트: 다른 하나가 아닌 다른 하나만 허용하려는 경우 허용하려는 프로토콜과 관련된 명령에서 포트 번호를 제거하십시오.
iptables -A INPUT -p tcp -m multiport --dports 80,443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -m multiport --dports 80,443 -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables를 사용하면 기본 SMTP 포트 (25)와 같은 특정 포트를 차단할 수 있습니다. 예를 들어, 서버에서 나가는 메일을 허용하지 않을 수 있습니다. iptables를 사용 하여이 작업을 중지하려면 다음 명령을 실행할 수 있습니다.
iptables -A OUTPUT -p tcp --dport 25 -j REJECT
이렇게하면 포트 25에서 모든 나가는 트래픽을 거부 할 수있는 iptables를 구성합니다. 다른 포트에서 트래픽을 거부하려면 "25"를 문제의 포트 번호로 바꿀 수 있습니다.
다음 명령을 실행하여 서버가 포트 25의 모든 SMTP 연결에 응답하도록 할 수 있습니다.
iptables -A INPUT -p tcp --dport 25 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 25 -m conntrack --ctstate ESTABLISHED -j ACCEPT
작성자 Hostwinds Team / 12 월 13, 2016