iptablesを搭載したLAMP強化透明プロキシ

iptablesを搭載したLAMP強化透明プロキシ

私はFTP(S)と複数のユーザーを持つLAMPサーバーを実行しています。ユーザーはPHPファイルやその他のWebコンテンツのみをアップロードできます。一部はDrupalとWordPressを実行していますが、いくつかの独自の制作機能もあります。 PHPへのシェルアクセス試行をすべて無効にしました。しかし、ダウンタイム、スクリプトキディ、その他の不快なことから自分自身、サーバー、ユーザーを完全に保護するために無効にしたいと思います。無線周波数干渉。実際、私は私が許可しないサーバーからのトラフィック(TCPとUDP)を許可したくありません。このタスクでは、パケットを送信する前にすべてのパケットを検索して許可するかどうかを判断する透明なプロキシを作成したいと思います。ローカルデータベースから許可されたURLを簡単に取得できるので、意思決定作業にPythonを使用したいと思います。特定のAPI / OAuthソースを許可したいと思います。

すべてのデータ(ターゲットIPとポートを含む)をPythonアプリケーションに送信するようにiptablesをどのように設定しますか?それとももっと良い方法がありますか?

私の考えでは、シェルアクセスと不正なネットワークトラフィックを無効にすることができれば、夜の睡眠をよりよくすることができます。これにより、誰も私のサーバーをボットネットのボットとして使用できなくなります。そしてスパムを送ることもできません。どう思いますか?

PHP 5.4以降を使用しているので、Suhosinに頼りたくありません。

ベストアンサー1

iptablesの面で:

## default policy for OUTPUT
iptables -P OUTPUT DROP

## allow related/established traffic, e.g. for incoming connections
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

## whitelist some APIs (here 10.0.0.1)
## or package repositories, or your DNS (here 8.8.8.8), ...
iptables -A OUTPUT -p udp --dport 53 -d 8.8.8.8 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 53 -d 8.8.8.8 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 443 -d 10.0.0.1 -j ACCEPT

## other TCP packages go to your script (probably not needed anyway)
iptables -t nat -A OUTPUT -p tcp -j DNAT --to-destination 127.0.0.1:8001

プロキシスクリプトを直接書くのではなく、PHPからのトラフィックをフィルタリングするためにapparmorをチェックすることもできます。

おすすめ記事