없는 서버가 있습니다.iptables방어:ACCEPT all..
이 서버에는 사용자 정의 애플리케이션이 있을 수 있습니다.
엄격한 iptables 규칙으로 이 서버를 강화해야 하는 경우(따라서 모든 것을 거부하고 애플리케이션에 필요한 것만 허용) 어떤 애플리케이션이 어떤 애플리케이션을 사용하는지 수동으로 알아낸 dst/src
port/protocol
다음 이에 대한 iptables 규칙을 작성해야 합니다.
질문: 실행 중인 머신에서 이 정보를 수집하는 데 도움이 되는 스크립트가 있습니까? (로그에서?) - 자동으로 iptables 규칙을 생성합니까?
그것은 마치 거기에 있는 것과 audit2allow
같습니다 SELinux
.iptables
기계에는 정전이 있어서는 안 됩니다!
예를 들어, "MAGIC" 스크립트는 일주일/한 달 동안 컴퓨터에서 실행되어 정보를 수집한 다음 일주일/달 후에 우리가 사용할 수 있는 iptables 규칙 파일을 생성할 수 있습니다.
많은 사람들이 이런 상황에 직면할 수 있습니다(iptables 서버를 강화하는 방법). 이 작업을 수행할 수 있는 스크립트/솔루션이 있다면 좋을 것입니다.\
답변1
수동으로
sudo ss -tuanp
또는
sudo netstat -tuanp
설명하다:
-t - show tcp sockets
-u - show udp sockets
-a - show all sockets
-n - show numeric, don't resolve
-p - show process name
답변2
tcpdump
평균 트래픽을 캡처하려면 일주일 정도 머신에서 실행하세요 . 그런 다음 나중에 Wireshark를 사용하여 트래픽을 탐색하여 어떤 포트가 사용되고 있는지 확인할 수 있습니다.
이를 수행하는 명령은 다음과 같습니다.tcpdump -i <interface> -s 65535 -w <some-file>
그런 다음 이를 다시 매핑하여 netstat -tuanp
어떤 PID/응용 프로그램이 어떤 포트를 사용하고 있는지 확인할 수 있습니다.
이론적으로 이것은 스크립트로 작성될 수 있습니다.
답변3
다음과 같은 매우 기본적인 템플릿으로 시작할 수 있습니다.https://gist.github.com/jirutka/3742890, ssh와 ping만 허용하고 다른 항목은 수동으로 추가합니다.
공용 인터페이스(0.0.0.0) /tcp에서 수신 대기하는 애플리케이션에 대한 iptables 규칙을 생성하는 빠른 스크립트 해킹
netstat -lnpt | egrep '0.0.0.0:[0-9]+' | awk '{print $4,$7}' | \
sed -E -e 's/0.0.0.0://g' -e 's|[0-9]+/||' | \
awk '{printf ("iptables -A INPUT -p tcp --dport %5d --syn -m conntrack --ctstate NEW -m comment %s \n", $1,$2) }'
iptables -I INPUT <number>
다음을 사용하여 특정 위치에 규칙을 삽입 할 수도 있습니다 .iptables -nvL --line-numbers INPUT
답변4
iptable 규칙을 사용하여 새 연결을 기록하면 udp도 기록됩니다.
iptables -I INPUT -m state --state NEW -j LOG --log-prefix "New inbound connection: "
iptables -I OUTPUT -m state --state NEW -j LOG --log-prefix "New outbound connection: "
--log-level
/var/log/messages 이외의 파일에 로그를 저장하는 다양한 방법을 지정할 수 있습니다 (syslog 데몬을 구성해야 함).
일부 서버는 정오, 주말, 월말(분기, 연도)과 같이 주기적인 활동을 하기 때문에 기본 애플리케이션 로그를 읽어야 서버의 중요한 네트워크 활동을 놓치지 않을 수 있다고 생각합니다.
서버는 중요하므로 규칙을 구축하는 데 도움이 되는 멋진 스프레드시트에 서버의 네트워크 트래픽 매트릭스(IP 소스, IP 대상, 프로토콜, 포트, 애플리케이션)를 만드십시오.