서버의 iptables 규칙을 확인하세요.

서버의 iptables 규칙을 확인하세요.

이 시스템은 거의 구성 없이 Ubuntu 14.04b를 실행하고 있습니다.
최소한 방화벽을 가져오는 것이 좋은 생각이라고 생각합니다. iptables가 제 선택이 될 것입니다.

IMHO 인터페이스가 사전 실행될 때 /etc/network/interfaces다음과 같은 것을 사용하여 iptables 생성 파일을 통해 규칙을 로드하는 것이 더 나을 것입니다
pre-up iptables-restore < /etc/iptables.rules
( iptables-save무언가를 변경해야 하는 경우 포스트다운에서).

그러나 두 가지 점이 나를 화나게 했습니다.

  • 첫째, 내 파일이 제대로 작업을 수행할지 확신할 수 없습니다(아래 참조).
  • 둘째, 제가 마지막으로 iptables를 사용했을 때 IPv6는 전혀 문제가 되지 않았습니다! ip6tables가 있다는 것을 알았지만 두 테이블 모두에 동일한 규칙 파일을 사용할 수 있는지 알 수 없습니다... 그러면 좋겠지만 슬프게도 사실이라고 믿기에는 너무 쉬운 것 같습니다.

아래는 내 규칙 파일입니다. 이상하거나 비논리적이거나 원치 않는 내용을 지적해 줄 수 있는 사람이 있나요?

보시다시피 상자 안에 Apache가 있습니다.네트워크 서버(도메인 이름이 있으므로도메인 명 시스템통과해야 함),MySQL 서버(원격 액세스 기능 포함),SFTP 서버(FTP는 이제 꽤 구식이 된 것 같습니다.)메일 서버(접미사, 아마도 감독자의 메일링 리스트가 아직 존재한다면) 및절대적으로 접근 가능해야 함통과하다SSH(이 서버에 대한 SSH 액세스를 잃을 여유가 없습니다. 콘솔 없이 400km 떨어진 전용 장치입니다.)

# Generated by iptables-save v1.4.21 on Wed Sep 28 15:08:21 2016
*raw
:PREROUTING ACCEPT [30261051:8737714396]
:OUTPUT ACCEPT [28933128:15186346449]
COMMIT
# Completed on Wed Sep 28 15:08:21 2016
# Generated by iptables-save v1.4.21 on Wed Sep 28 15:08:21 2016
*nat
:PREROUTING ACCEPT [8040256:1000464908]
:INPUT ACCEPT [8040256:1000464908]
:OUTPUT ACCEPT [357964:47801350]
:POSTROUTING ACCEPT [357964:47801350]
COMMIT
# Completed on Wed Sep 28 15:08:21 2016
# Generated by iptables-save v1.4.21 on Wed Sep 28 15:08:21 2016
*mangle
:PREROUTING ACCEPT [30261051:8737714396]
:INPUT ACCEPT [30261051:8737714396]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [28933128:15186346449]
:POSTROUTING ACCEPT [28933128:15186346449]
COMMIT
# Completed on Wed Sep 28 15:08:21 2016
# Generated by iptables-save v1.4.21 on Wed Sep 28 15:08:21 2016
*filter
:INPUT ACCEPT [10752:1386943]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [18529:5801236]
# Do not kill established connections
-A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

#INPUT rules
#SSH & SFTP
-A INPUT -i eth0 -p tcp -m tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
#HTTP server
-A INPUT -i eth0 -p tcp -m tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
#HTTPS
-A INPUT -i eth0 -p tcp -m tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
#Echo
-A INPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
#DNS
-A INPUT -i eth0 -p udp -m udp --sport 53 -j ACCEPT
#SMTP
-A INPUT -i eth0 -p tcp -m tcp --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT
#SQL in
-A INPUT -i eth0 -p tcp -m tcp --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
#IMAP
-A INPUT -i eth0 -p tcp -m tcp --dport 143 -m state --state NEW,ESTABLISHED -j ACCEPT
#IMAP sur SSL
-A INPUT -i eth0 -p tcp -m tcp --dport 993 -m state --state NEW,ESTABLISHED -j ACCEPT
#POP3
-A INPUT -i eth0 -p tcp -m tcp --dport 110 -m state --state NEW,ESTABLISHED -j ACCEPT
#POP3 sur SSL
-A INPUT -i eth0 -p tcp -m tcp --dport 995 -m state --state NEW,ESTABLISHED -j ACCEPT
#Limit HTTP flood
-A INPUT -p tcp -m tcp --dport 80 -m limit --limit 25/min --limit-burst 100 -j ACCEPT
#Loopback
-A INPUT -i lo -j ACCEPT

#OUTPUTS
#SSH & SFTP
-A OUTPUT -o eth0 -p tcp -m tcp --sport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
#HTTP
-A OUTPUT -o eth0 -p tcp -m tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
#HTTPS
-A OUTPUT -o eth0 -p tcp -m tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT
#echo
-A OUTPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A OUTPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT
#DNS
-A OUTPUT -o eth0 -p udp -m udp --dport 53 -j ACCEPT
#SMTP
-A OUTPUT -o eth0 -p tcp -m tcp --sport 25 -m state --state ESTABLISHED -j ACCEPT
#SQL out
-A OUTPUT -o eth0 -p tcp -m tcp --sport 3306 -m state --state ESTABLISHED -j ACCEPT
#IMAP
-A OUTPUT -o eth0 -p tcp -m tcp --sport 143 -m state --state ESTABLISHED -j ACCEPT
#IMAP sur SSL
-A OUTPUT -o eth0 -p tcp -m tcp --sport 993 -m state --state ESTABLISHED -j ACCEPT
#POP3
-A OUTPUT -o eth0 -p tcp -m tcp --sport 110 -m state --state ESTABLISHED -j ACCEPT
#POP3 sur SSL
-A OUTPUT -o eth0 -p tcp -m tcp --sport 995 -m state --state ESTABLISHED -j ACCEPT
#Doublons by legacy script.
#Remove?
-A OUTPUT -p tcp -m tcp --dport 53
-A OUTPUT -p udp -m udp --dport 53
-A OUTPUT -p tcp -m tcp --dport 53 -j ACCEPT
-A OUTPUT -p udp -m udp --dport 53 -j ACCEPT
#Loopback
-A OUTPUT -o lo -j ACCEPT

#End of config. Make it happen!
COMMIT
# Completed on Wed Sep 28 15:08:21 2016

도와주셔서 감사합니다!

답변1

저장 iptables파일은 어떤 IP도 참조하지 않으므로 ip6tables해당 IP도 사용할 수 있습니다. 가장 좋은 방법은 at2분 이내(또는 적절하다고 판단되는 시간)에 방화벽 규칙을 재설정하는 작업을 실행하는 것입니다.

# echo "service iptables stop" | at now + 2 minutes

그런 다음 IPv4 및 IPv6 파일에 iptables 규칙을 적용합니다.

# iptables-restore < iptables-save-file
# ip6tables-restore < iptables-save-file

지금 액세스할 수 없는 경우 at작업이 방화벽을 비활성화할 때까지 2분 동안 기다린 다음 수동으로 규칙 세트 구성을 시작하십시오. 작동하는 경우 새 방화벽을 실행 service iptables save하고 즐기십시오.service ip6tables save

또한 기존 파일은 실제로 트래픽을 거부하거나 거부하거나 삭제하지 않는다는 점에 유의해야 합니다. 모든 체인의 기본 정책은 이고 또는 대상에 ACCEPT대한 추적 규칙이 없으므로 다소 비효율적인 방화벽 구성으로 보입니다.DROPREJECT

관련 정보