원격 서버:
들어오는 모든 트래픽을 차단하도록 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이 기능을 구성하는 방법에 대한 세부정보입니다.