IPTable을 사용하여 SSH 및 SMTP를 허용하는 방법은 무엇입니까?

IPTable을 사용하여 SSH 및 SMTP를 허용하는 방법은 무엇입니까?

정기적으로 이메일을 보내도록 Raspberry Pi를 설정했습니다. 24시간 인터넷에 연결되어 있기 때문에 IPTables를 올바르게 설정해야 합니다.

SSH 수신을 허용하고 포트 587에서 SMTP를 통해 이메일을 보낼 수 있도록 허용하고 싶습니다. 이 IPTables 스크립트를 생각해 냈는데 맞나요? 그렇지 않다면 이유를 말해주실 수 있나요? 감사해요.

sudo iptables -P INPUT DROP
sudo iptables -P OUTPUT DROP

sudo iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

sudo iptables -A OUTPUT -p tcp --dport 587 -j ACCEPT
sudo iptables -A INPUT -p tcp --sport 587 -j ACCEPT

답변1

이와 같은 iptables 규칙은 잘 작동합니다.

*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [1:156]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A INPUT -i lo -j ACCEPT 
-A INPUT  -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT 
-A INPUT  -p tcp -m state --state NEW -m tcp --dport 587 -j ACCEPT 
-A INPUT -j REJECT --reject-with icmp-host-prohibited 
-A FORWARD -j REJECT --reject-with icmp-host-prohibited 
COMMIT

첫 번째 규칙은 기본적으로 들어오는 모든 연결을 삭제하고, 두 번째 규칙은 기본적으로 모든 전달을 삭제하고, 세 번째 규칙은 출력을 허용합니다. 왜 허용됩니까? IMHO, 출력 연결을 여는 것은 그다지 안전하지 않으며 닫으면 방화벽 구성이 약간 어려울 수 있습니다.

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 

관련 및 설정됨 상태의 연결을 허용합니다.

나머지는 쉽죠

    -A INPUT  -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT 
    -A INPUT  -p tcp -m state --state NEW -m tcp --dport 587 -j ACCEPT 
    -A INPUT -j REJECT --reject-with icmp-host-prohibited 
    -A FORWARD -j REJECT --reject-with icmp-host-prohibited 
    COMMIT

22 tcp를 허용하고 587 tcp를 허용하고 다른 모든 연결을 허용하지 않으면 파일에 저장한 다음 실행할 수 있습니다

iptables-restore < firewall.file

nmap -sS그리고 호스트에게 확인해 보세요

답변2

이러한 명령을 사용하는 것이 불편하다면 다른 명령을 iptables사용해도 됩니다 . UFWUFW는 Simple Firewall의 약자로 iptables보다 사용하기 쉬운 도구입니다.

ufwRaspberry Pi에 설치합니다.

sudo apt-get install ufw

ufw를 설치한 후 다음 명령을 사용하여 기본값을 설정할 수 있습니다.

sudo ufw default deny incoming && sudo ufw default deny outgoing

이렇게 하면 연결을 시도하는 모든 요청이 거부되고 모든 나가는 요청도 거부됩니다. 이는 좀 더 제한적인 경우에 좋습니다.

허용하다ssh 존재하다하다:

sudo ufw allow in 22

허용하다587 나가하다:

sudo ufw allow out 587

자세한 내용은 man ufw더 많은 예제와 잘 설명된 내용을 확인하세요.

관련 정보