
さて、私は古いアプリケーションの責任を負っていますが、その詳細はよく理解されず、私のサーバーを保護しようとしていますが、誰かが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サーバーを構成することです。 2番目に良い方法は、ポート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
「定義済み」の代わりに「使用可能」という1行の応答を受け取るか、まったく応答がありません。
もし出力またはデバイスが「定義」されていません。
- 走る
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