원격 서버 보안: iptables: 4분만 주시겠습니까?

원격 서버 보안: iptables: 4분만 주시겠습니까?

원격 서버:

들어오는 모든 트래픽을 차단하도록 iptables를 구성하고 싶습니다.

하지만..시스템이 완전히 부팅된 후 4분

내가 가질 수 있도록4분 안에 SSH를 통해 연결
내가 잠겨 있기 전에 .

이를 달성하는 가장 좋은 방법은 무엇입니까?

1 단계아마도:

 chkconfig iptables off

무엇인가요2 단계 ?

답변1

시스템 시작 시 실행되는 스크립트를 생성하여 먼저 4분 동안 절전 모드로 전환한 다음 필요한 iptables 명령을 실행할 수 있습니다.

그것은 다음과 같습니다:

#!/bin/bash
/etc/init.d/iptables stop
sleep 4m
/etc/init.d/iptables start
iptables -P INPUT DROP

시스템 시작 시 이를 실행하려면 chmod +x yourscript.sh/etc/init.d에서 적절한 권한( )을 사용하여 스크립트를 복사하고 rc를 업데이트합니다. 예:

update-rc.d yourscript.sh defaults 100

답변2

보안 관점에서는 애플리케이션을 실행하기 전에 방화벽을 설치하는 것이 가장 좋습니다.

따라서 를 사용하는 것이 더 적합할 수 있습니다 . 이 방법을 사용하면 포트를 knockd열고 지정된 시간 후에 닫는 포트 노크 시퀀스를 설정할 수 있습니다 .ssh

구성 예는 다음과 같습니다.

/etc/knockd.conf
[options]
    logfile = /var/log/knockd.log

[opencloseSSH]
                   sequence      = 8081,8082,8083
                   seq_timeout   = 5
                   tcpflags      = syn
                   start_command = /usr/sbin/iptables -I IN_external_allow -i enp0s8 -s %IP% -p tcp --dport 22 -j ACCEPT
                   cmd_timeout   = 15
                   stop_command  = /usr/sbin/iptables -D IN_external_allow -i enp0s8 -s %IP% -p tcp --dport 22 -j ACCEPT

들어가고 싶다면 다음과 같은 것을 사용할 수 있습니다.

nc -w 1 myhost 8081
nc -w 1 myhost 8082
nc -w 1 myhost 8083
ssh user@myhost

패킷만 검사하므로 위 포트에 대한 리스너를 설정할 필요가 없습니다 syn. 그러나 패킷이 호스트에 도달할 수 있도록 외부 방화벽에서 포트를 열어야 합니다. 이미 열려 있을 가능성이 높은 80, 25, 443과 같은 보다 일반적인 포트를 사용할 수도 있습니다.

구성에 따라 이 시퀀스는 5초 이내에 완료되어야 하며 15초 후에 포트가 다시 닫힙니다. 기존 세션은 계속 열려 있으므로 안전하게 사용할 수 있습니다.

당신은 또한 볼 수 있습니다http://www.zeroflux.org/projects/knock이 기능을 구성하는 방법에 대한 세부정보입니다.

관련 정보