글쎄, 내가 오래된 애플리케이션에 대한 책임을 맡고 있는데 그 세부사항은 잘 이해하지 못하며 내 서버를 보호하려고 하는데 누군가가 FTP에 포트 21을 금지하자고 제안했다고 가정해 보겠습니다.
하지만 매일 어떤 프로그램이 FTP를 실행하고 사용하고 있는지는 잘 모르겠습니다.
서버나 네트워크에 원하는 도구를 설치할 수 있는 솔루션이 없다고 가정해 보겠습니다. 내 해결책은 무엇입니까?
- 포트 21을 차단하고 방화벽이 어떤 트래픽을 차단하는지 확인해야 합니까?
- AIX 서버에 이 포트를 통해 액세스되고 있는 서버 목록을 보려면 어디로 가야 합니까? 서버의 IP와 파일 이름이 있다면 이 작업을 수행한 프로그램을 추적할 수 있을 것입니다. 그렇다면 FTP에는 로그 파일이 있습니까?
편집하다:
ㅏ)inetd
활동 ftp
적이고(@JeffSchaller에게 감사드립니다)
b) 나는 알고 싶다들어오는그리고나가는해당 포트의 트래픽 - 실행된 명령(가능한 경우) 즉, 내 목표는 아는 것입니다.
- 로컬 FTP 서버에서 실행된 명령
- 로컬 FTP 클라이언트가 다른 서버에 어떤 명령을 실행했습니까?
어떤 제안이라도 환영합니다.
답변1
로컬 FTP 서버에서 어떤 명령이 실행되었습니까?
AIX 시스템에서 FTP 로깅을 활성화하려면 FTP(귀하의 경우 inetd에 의해 호출됨)를 재구성하여 디버그 로그를 syslog로 보내고 이러한 로그를 파일에 저장하도록 syslog를 구성해야 합니다.
ftpd 줄 끝에 편집
/etc/inetd.conf
하여 추가합니다 .-d
ftp stream tcp6 nowait root /usr/sbin/ftpd ftpd -d
inetd 새로 고침:
refresh -s inetd
로그를 어딘가에 저장
/etc/syslog.conf
하려면 다음 줄을 편집 하고 추가하세요.daemon.debug
daemon.debug /var/log/ftp.log
기록할 syslog용 파일을 생성합니다.
touch /var/log/ftp.log
시스템 로그를 새로 고칩니다.
refresh -s syslogd
grep
Syslog는 모든 데몬의 로그를 이 파일로 보내므로 다음과 같이 필터링해야 합니다 grep 'daemon:debug ftpd' /var/log/ftp.log
.
FTP를 통해 전송된 명령은 문자열을 사용하여 기록됩니다 command:
. 예는 다음과 같습니다.
May 18 10:13:35 ftpserver daemon:debug ftpd[3932700]: command: USER username-here^M
May 18 10:13:35 ftpserver daemon:debug ftpd[3932700]: <--- 331
May 18 10:13:35 ftpserver daemon:debug ftpd[3932700]: Password required for username-here.
May 18 10:13:42 ftpserver daemon:debug ftpd[3932700]: command: PASS
May 18 10:13:42 ftpserver daemon:debug ftpd[3932700]: <--- 230-
May 18 10:13:42 ftpserver daemon:debug ftpd[3932700]: Last login: Fri May 18 10:13:02 EDT 2018 on ftp from ftpclient.example.com
May 18 10:13:43 ftpserver daemon:debug ftpd[3932700]: <--- 230
May 18 10:13:43 ftpserver daemon:debug ftpd[3932700]: User username-here logged in.
May 18 10:13:43 ftpserver daemon:debug ftpd[3932700]: command: PORT 10,1,1,1,229,54^M
May 18 10:13:43 ftpserver daemon:debug ftpd[3932700]: <--- 200
May 18 10:13:43 ftpserver daemon:debug ftpd[3932700]: PORT command successful.
May 18 10:13:43 ftpserver daemon:debug ftpd[3932700]: command: LIST^M
May 18 10:13:43 ftpserver daemon:debug ftpd[3932700]: <--- 150
May 18 10:13:43 ftpserver daemon:debug ftpd[3932700]: Opening data connection for /bin/ls.
May 18 10:13:43 ftpserver daemon:debug ftpd[3932700]: <--- 226
May 18 10:13:43 ftpserver daemon:debug ftpd[3932700]: Transfer complete.
예, 해당 Control-M은 로그에 표시됩니다!
로컬 FTP 클라이언트가 다른 서버에서 어떤 명령을 실행했습니까?
애플리케이션은 자체 FTP 작업을 수행할 수 있으므로 /usr/bin/ftp
이 작업을 캡처하기 위해 가능한 모든 클라이언트 프로그램(예: )을 래핑하는 것은 어렵습니다. 가장 좋은 방법은 위에서 했던 것처럼 명령을 기록하도록 원격 FTP 서버를 구성하는 것입니다. 두 번째로 좋은 방법은 포트 21에 대한 트래픽을 허용하고 기록하도록 AIX 방화벽을 구성하는 것입니다.
ipsec 파일 세트가 설치되어 있는지 확인하십시오.
lslpp -L bos.net.ipsec.rte; echo $?
대신 반환 코드 0으로 나열된 파일 세트가 표시되어야 합니다.
lslpp: 0504-132 Fileset bos.net.ipsec.rte not installed.
IPsec 장치가 활성화되어 있는지 확인하십시오.
lsdev -l ipsec_v4
"정의됨" 대신 "사용 가능"이라는 한 줄 응답을 받거나 전혀 응답이 없습니다.
만약에출력이나 장치가 "정의"되지 않았습니다.
- 달리기
smitty ipsec4
- 선택하다
Start/Stop IP Security
, - 선택하다
Start IP Security
, - 기본값을 그대로
Now and After Reboot
두고Deny All Non_Secure = no
- 엔터 키를 치시오.
이제 ipsec device_v4에 "사용 가능"이 표시됩니다.
다음 명령을 사용하여 로그 파일을 생성합니다. touch /var/log/ipsec.log
.
시스템 로그 업데이트:
echo "local4.debug /var/log/ipsec.log rotate size 100k files 4" >> /etc/syslog.conf
refresh -s syslogd
포트 21에 대한 트래픽을 허용하고 기록하는 규칙을 추가합니다.
# -v 4 == IPv4
# -n 2 == add this after the first rule
# -a P == permit
# -O eq == destination port *equals* 21
# -P 21 == destination port 21
# -w O == outbound connections; change this to “B” to log in both directions
# -c tcp == TCP protocol
# -s, -m, -d, -M = source/dest IP & mask (any)
# -l Y = Log it
# -r L = applies only to packets destined or originated from the local host
genfilt -v 4 -n 2 -a P -O eq -P 21 -w O -c tcp -s 0.0.0.0 -m 0.0.0.0 -d 0.0.0.0 -M 0.0.0.0 -l Y -r L -D “allow and log port 21 traffic”
녹음 시작:
mkfilt -g start
규칙 세트를 활성화합니다:
mkfilt -u
아웃바운드 FTP 연결이 발생할 때까지 기다린 후 다음을 수행합니다.
grep ipsec_logd /var/log/ipsec.log | grep DP:21
아웃바운드 FTP 연결에 대한 소스 및 대상 IP와 타임스탬프가 표시됩니다. 예를 들면 다음과 같습니다.
May 18 11:29:40 localhost local4:info ipsec_logd: #:0 R:p O:10.1.1.1 S:10.1.1.1 D:10.2.2.2 P:tcp SP:55091 DP:21 R:l I:en0 F:n T:0 L:0
그것은 기록하지 않습니다콘텐츠(명령) FTP 세션이지만 타임스탬프와 대상이 표시됩니다. 알아채다모든모든 FTP 연결에 대한 패킷이 기록됩니다!
인용하다:
답변2
VSFTP가 서버에 설치된 경우 다음 명령을 사용하여 전체 로그를 볼 수 있습니다.\
cat /var/log/vsftpd.log