오늘 iptables 맨페이지를 보다가 -A 설명에 "Append one"이라고 적혀 있는 것을 발견했습니다.이상선택한 체인의 끝까지 규칙을 적용합니다.” 이는 다음과 같은 경우를 의미합니까?
iptables -A INPUT {...rule1...}
iptables -A INPUT {...rule2...}
한 줄로 단순화할 수 있나요?
iptables -A INPUT {...rule1; rule2...}
나는 Google을 둘러 보았지만 누군가가 이것을 수행하는 예를 찾을 수 없지만 가능하다면 단순히 내 스크립트 중 일부일 것입니다.
답변1
한 번의 호출에서는 하나의 규칙 정의만 제공할 수 있습니다 iptables -A
.
그러나 둘 이상의 주소로 확인되는 www.example.com과 같은 주소를 사용하는 경우 각 주소에 하나씩 여러 규칙이 추가됩니다.
예: (가짜 IP가 사용됨...):
$ host www.example.com
www.example.com has address 10.1.2.3
www.example.com has address 10.1.2.4
$ sudo iptables -A INPUT -s www.example.com -j ACCEPT
$ sudo iptables -L INPUT -vn
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
208K 250M ACCEPT all -- * * 192.168.0.0/16 0.0.0.0/0
0 0 ACCEPT all -- * * 10.1.2.3 0.0.0.0/0
0 0 ACCEPT all -- * * 10.1.2.4 0.0.0.0/0
이제 하나의 iptables -A
호출을 사용하여 둘 이상의 규칙을 삽입했습니다.
나는 이것이 맨페이지 설명에서 명확하지 않다는 데 동의합니다.
답변2
iptables 호출당 1번 규칙입니다. "추가" 옵션은 "삽입" 옵션과 대조됩니다. 다음과 같이 추가... 새 규칙은 규칙 목록의 끝으로 이동하지만 삽입은 규칙을 목록의 맨 위에 추가합니다.
iptables -I INPUT {Rule1}
iptables -I INPUT {Rule2}
규칙은 다음과 같습니다.
{Rule2}
{Rule1}
어디
iptables -A INPUT {Rule1}
iptables -A INPUT {Rule2}
결과는
{Rule1}
{Rule2}