IPTables: SSH 액세스만 허용하고 다른 항목은 허용하지 않습니다.

IPTables: SSH 액세스만 허용하고 다른 항목은 허용하지 않습니다.

IPTable을 어떻게 구성합니까?오직SSH를 허용하고 다른 트래픽은 허용하지 않습니다.아니면 밖으로?

누구든지 추천할 수 있는 안전 예방 조치가 있나요?

내가 사용하는 서버가 있습니다.믿다GoDaddy에서 성공적으로 마이그레이션되었으며 저는믿다더 이상 사용되지 않습니다.

하지만 저는 확실히 하고 싶습니다. 왜냐하면... 당신은 절대 모르니까요. :)

이것은 GoDaddy의 가상 전용 서버입니다. 이는 백업이 없고 사실상 지원이 없음을 의미합니다.

답변1

INPUT 및 OUTPUT 체인에서 기본 정책을 DROP으로 설정하기만 하면 됩니다.

SSH를 허용하려면 다음 명령이 필요합니다.

$ sudo iptables -P INPUT DROP
$ sudo iptables -P OUTPUT DROP
$ sudo iptables -A INPUT -i lo -j ACCEPT
$ sudo iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
$ sudo iptables -A OUTPUT -o lo -j ACCEPT
$ sudo iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

마지막 두 명령은 일부 응용 프로그램이 올바르게 작동하는 데 필요한 루프백 트래픽을 허용합니다. 옵션을 사용하여 특정 IP의 SSH 액세스를 제한할 수 있습니다 -s source_ip.

위에 표시된 순서대로 명령을 실행하면 현재 SSH 세션이 중단됩니다. 이는 iptables 명령이 즉시 적용되기 때문입니다. 원격으로 실행할 때 컴퓨터에 연결하는 기능을 잃지 않으려면 셸 스크립트에서 실행해야 합니다.

답변2

이 같은:

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -j REJECT  # or iptables -P INPUT DROP

iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -j REJECT # or iptables -P OUTPUT DROP

관련 정보