
iptables는 특정 초(예: 30초) 후에 설정된 출력 세션을 자동으로 삭제할 수 있습니까? 출시 이후? 하지만 대상 포트 80과 443에 대해서만 제한하고 싶습니다. 목적은 Chrome, Teamviewer와 같은 일부 작동 응용 프로그램에 속하는 사용되지 않은 설정된 TCP 연결을 삭제하는 것입니다. 나는 최근의 제한된 모듈로 시도했지만 성공하지 못했습니다. IPTable이 지속 시간에 따라 연결을 제한하는 기능을 수행하지 않거나 뭔가를 모르는 것일까요?
나는 이미 몇 가지 관련 주제를 읽었습니다. https://stackoverflow.com/questions/20327518/need-to-drop-found-connections-with-iptables
iptables - X시간 후에 설정된 특정 연결을 삭제합니다.
등등.
스크립트나 응용 프로그램을 좀 도와주실 수 있나요? IPT로 할 수 있는 방법은 없을까요?
내 홈 테이블:
iptables가 특정 초(예: 30초) 후에 설정된 출력 세션을 자동으로 삭제할 수 있습니까? 출시 이후? 하지만 대상 포트 80과 443에 대해서만 제한하고 싶습니다. 목적은 Chrome, Teamviewer와 같은 일부 작동 응용 프로그램에 속하는 사용되지 않은 설정된 TCP 연결을 삭제하는 것입니다. 나는 최근의 제한된 모듈로 시도했지만 성공하지 못했습니다. IPTable이 지속 시간에 따라 연결을 제한하는 기능을 수행하지 않거나 뭔가를 모르는 것일까요?
나는 이미 몇 가지 관련 주제를 읽었습니다. https://stackoverflow.com/questions/20327518/need-to-drop-found-connections-with-iptables
iptables - X시간 후에 설정된 특정 연결을 삭제합니다.
등등.
스크립트나 응용 프로그램을 좀 도와주실 수 있나요? IPT로 할 수 있는 방법은 없을까요?
내 집 테이블:
echo Kernel modules
#
modprobe ip_conntrack
modprobe ip_conntrack_ftp
################################################################################
echo Reset iptables
#
iptables -F
iptables -F -t nat
iptables -F -t raw
iptables -F -t mangle
iptables -X
iptables -X -t nat
iptables -X -t raw
iptables -X -t mangle
iptables -Z
iptables -Z -t nat
iptables -Z -t raw
iptables -Z -t mangle
################################################################################
echo Default policy
#
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
################################################################################
echo Logging INPUT,OUTPUT
#
iptables -A INPUT -j LOG --log-prefix="INPUT chain"
iptables -A OUTPUT -j LOG --log-prefix="OUTPUT chain"
################################################################################
echo Allow local
#
iptables -A INPUT -i lo -s 127.0.0.0/8 -j ACCEPT
iptables -A OUTPUT -o lo -d 127.0.0.0/8 -j ACCEPT
################################################################################
echo Allow icmp out
#
iptables -A OUTPUT -p icmp -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p icmp -m state --state ESTABLISHED -j ACCEPT
################################################################################
echo Allow port 53 out
#
iptables -A OUTPUT -p udp --sport 1024:65535 --dport 53 \
-m state --state NEW -j ACCEPT
iptables -A INPUT -p udp --sport 53 --dport 1024:65535 \
-m state --state ESTABLISHED -j ACCEPT
################################################################################
echo Allow ports 20,21 out
#
iptables -A OUTPUT -p tcp -m tcp --sport 1024:65535 \
--dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --sport 1024:65535 \
-m multiport --dports 20,1024:65535 \
-m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -m tcp -m multiport --sports 20,21,1024:65535 \
--dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
################################################################################
echo Allow ports 80,443 out
#
iptables -A OUTPUT -p tcp --sport 1024:65535 -m multiport --dports 80,443 \
-m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -m tcp -m multiport --sports 80,443 \
--dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
################################################################################
echo Allow port 123 out
#
iptables -A OUTPUT -p udp -m udp --sport 123 \
--dport 123 -m state --state NEW -j ACCEPT
iptables -A INPUT -p udp -m udp --sport 123 \
--dport 123 -m state --state ESTABLISHED -j ACCEPT
################################################################################
#
##iptables -A INPUT -j REJECT
##iptables -A FORWARD -j REJECT
##iptables -A OUTPUT -j REJECT
답변1
아니요. 다음을 참조하세요.http://linux.die.net/man/8/iptables. 이것만 있습니다(당신이 요청한 것이 아닙니다):
... 시간
패킷 도착 시간/날짜가 지정된 범위 내에 있으면 일치합니다. 모든 옵션은 선택적입니다.
--timestart value 'value' 뒤에 있는 경우에만 일치합니다(포함, 형식: HH:MM , 기본값 00:00).
--timestop value 'value' 이전인 경우에만 일치합니다(포함, 형식: HH:MM , 기본값 23:59).
--days listofdays 오늘이 지정된 날짜 중 하나인 경우에만 일치합니다. (형식: 월,화,수,목,금,토,일; 기본 매일)
--datestart date 'date' 이후인 경우에만 일치합니다(포함, 형식: YYYY[:MM[:DD[:hh[:mm[:ss]]]]] ; h,m,s는 0부터 시작 ; 기본값 1970년까지)
--datestop date 'date' 이전인 경우에만 일치합니다(포함, 형식: YYYY[:MM[:DD[:hh[:mm[:ss]]]]] ; h,m,s는 0부터 시작 ; 기본값 2037년까지)
...
"시간"이 아닌 "기간"을 요청하셨습니다. 무언가를 해킹할 수는 있지만 Source에서 수정하는 것이 가장 빠르고 강력합니다.
커널을 패치하고 다시 컴파일할 수 있습니다.
보다http://www.netfilter.org/documentation/HOWTO/netfilter-extensions-HOWTO-3.html섹션 "conntrack patch"에서 명령 "ctexpire". 약간의 코드를 작성하고 사용자 정의 필터를 사용하여 커널을 패치하는 것이 편안하다면 우리가 도와드릴 수 있습니다(그렇지 않으면 대답은 "아니요, 그렇게 할 수 없습니다. 그러한 필터 명령이 없습니다"입니다).