LinuxシステムはどのようにCC攻撃を防止してホームページのカートンを避けます
サーバーが正常に稼働しているのに、ユーザーがサイトにアクセスする人数が正常なのに、ページが詰まっていることがありますか。潰れるまで、CCに攻撃されることが多いのではないでしょうか。予防は治療より優れています。以下、Linuxシステムを例に、LinuxがCC攻撃を防ぐ方法を紹介します。
CC攻撃とはcc攻撃は簡単(ChallengeCollapsar)
CC攻撃の原理は、攻撃者が一部のホストが大量のパケットを相手サーバに送信し続け、ダウンタイムが崩壊するまでサーバリソースが消費されることを制御することである。CCは主にページを攻撃するために使用され、誰もがこのような体験を持っている:1つのページにアクセスする人数が特に多い場合、ページを開くのが遅くなり、CCは複数のユーザー(どれだけのスレッドがどれだけのユーザー)をシミュレートして、大量のデータ操作(つまり大量のCPU時間を必要とする)を必要とするページにアクセスし続け、サーバー資源の浪費をもたらす。CPUは長時間100%で、ネットワークが混雑するまで処理しきれない接続があり、正常なアクセスが中止されます。
CC攻撃防止方法このCC攻撃を防ぐには2つの方法があります
1つ目は、本機のファイアウォールを利用してCSF内に設置できるファイアウォールを解決することです。このような弊害は、小規模なCC攻撃やDDOS(私の立ち位置はアリ雲なので、DDOSはあまり心配しない)CC攻撃が比較的強いと機器もそのままCUPでいっぱいになることを防ぐことです。
2つ目の方法はCDNを追加することです。CC攻撃を防ぐ方法が一番ですが、CDNは一般的にお金がかかります。
具体的な防護についてお話しします
まずCSFファイアウォールをインストールします。これは簡単でドメイン名を変更する必要はありません。小規模なものは直接解決します。
一、依存パッケージのインストール:yum install perl-libwww-perl perl iptables
二、CSFをダウンロードしてインストールする:wget http://www.configserver.com/free/csf.tgz
tar -xzf csf.tgz
cd csf
sh install.sh
三、CSFが正常に動作するかどうかをテストする:[root@localhost csf]# perl /etc/csf/csftest.pl
Testing ip_tables/iptable_filter.。.OK
Testing ipt_LOG.。.OK
Testing ipt_multiport/xt_multiport.。.OK
Testing ipt_REJECT.。.OK
Testing ipt_state/xt_state.。.OK
Testing ipt_limit/xt_limit.。.OK
Testing ipt_recent.。.OK
Testing xt_connlimit.。.OK
Testing ipt_owner/xt_owner.。.OK
Testing iptable_nat/ipt_REDIRECT.。.OK
Testing iptable_nat/ipt_DNAT.。.OK
RESULT: csf should function on this server
四、csfの構成:CSFのプロファイルは
vim /etc/csf/csf.conf
# Allow incoming TCP ports
#SSHのデフォルトポート(22)を他のポートに変更することをお勧めしますが、必ず新しいポートを次の行に追加してください
TCP_IN = “20,21,47,81,1723,25,53,80,110,143,443,465,587,993,995〃
#Allow outgoing TCP ports同様に、SSHのログインポートを次の行に追加します。
#プログラムによっては、Pureftpdのpassive modeなど、一定範囲のポートを開く必要がある場合、30000:35000のように30000-35000の範囲のポートを開くことができます。
TCP_OUT = “20,21,47,81,1723,25,53,80,110,113,443〃
# Allow incoming UDP ports
UDP_IN = “20,21,53〃
# Allow outgoing UDP ports
# To allow outgoing traceroute add 33434:33523 to this list
UDP_OUT = “20,21,53,113,123〃
#Allow incoming PING他の人にあなたのサーバーをpingすることを許可するかどうか、デフォルトは1で、許可します。0は許可されていません。
ICMP_IN = “1〃
これらの構成はご覧の通りですが、一般的に使われているものをいくつか紹介します。
前のページ 1 合計2ページ いくつかのタイプの小規模DDos攻撃を免疫する:# Connection Tracking. This option enables tracking of all connections from IP
# addresses to the server. If the total number of connections is greater than
# this value then the offending IP address is blocked. This can be used to help
# prevent some types of DOS attack.
#
# Care should be taken with this option. It’s entirely possible that you will
# see false-positives. Some protocols can be connection hungry, e.g. FTP, IMAPD
# and HTTP so it could be quite easy to trigger, especially with a lot of
# closed connections in TIME_WAIT. However, for a server that is prone to DOS
# attacks this may be very useful. A reasonable setting for this option might
# be arround 200.
#
# To disable this feature, set this to 0
CT_LIMIT="200"##固定時間内の同一IP要求の数
# Connection Tracking interval. Set this to the the number of seconds between
# connection tracking scans
CT_INTERVAL="30"##は上の固定時間を指し、単位は秒
# Send an email alert if an IP address is blocked due to connection tracking
CT_EMAIL_ALERT="1"##メールを送信するかどうか
# If you want to make IP blocks permanent then set this to 1, otherwise blocks
# will be temporary and will be cleared after CT_BLOCK_TIME seconds
#疑わしいIPに対して永続的なマスクを適用するかどうか、デフォルトは0、すなわち一時的なマスクです。
CT_PERMANENT = “0”
# If you opt for temporary IP blocks for CT, then the following is the interval
# in seconds that the IP will remained blocked for (e.g. 1800 = 30 mins)
#一時的な遮蔽時間
CT_BLOCK_TIME = “1800”
# If you don’t want to count the TIME_WAIT state against the connection count
# then set the following to “1〃
CT_SKIP_TIME_WAIT="0"##TIMEを統計するかどうかWAITリンク状態
# If you only want to count specific states (e.g. SYN_RECV) then add the states
# to the following as a comma separated list. E.g. “SYN_RECV,TIME_WAIT”
# Leave this option empty to count all states against CT_LIMIT
CT_STATES=""##国別に集計するかどうかは、国名で記入
# If you only want to count specific ports (e.g. 80,443) then add the ports
# to the following as a comma separated list. E.g. “80,443〃
#
# Leave this option empty to count all ports against CT_LIMIT
#どのポートを検出し、空であればすべてを検出し、sshを防止すれば空にし、すべてを統計することができます。
CT_PORTS = “”
以上の設定をした後、まずテストしてもいいです。問題がなければ、正式モードに変更します。さっきはテストモードだけでした。
#デフォルトの1を0に変更します。
TESTING = “0”
/etc/csf/の下にcsfがある.全部とcsf.deny 2つのファイル、
allowは信頼できるIPで、自分のIPをここに書いて誤封を防ぐことができます。
denyは閉鎖されたIPです。
調整があればcfsサービスを再起動する必要があります
LinuxがCC攻撃を防ぐ方法をご紹介しましたが、ユーザーサイトがCCに攻撃されたこと自体が知らない場合が多いので、定期的なチェックが必要です。