1 Ubuntu18.04ビルドiptablesファイアウォール

1. iptablesがインストールされているかどうかを確認し、rootアカウントで実行しました。rootでないものがある場合は、sudoを追加してください。

# 检查
root@cocosum:~# which iptables
/sbin/iptables
root@cocosum:~# whereis iptables
iptables: /sbin/iptables /etc/iptables /usr/share/iptables /usr/share/man/man8/iptables.8.gz
# 说明有安装iptables

ここに画像の説明を挿入します
2. iptablesがインストールされていない場合は、インストールする必要があります

# 进行安装
sudo apt-get install iptables

3.インストール後にファイアウォールルールを構成する必要がある場合は、ここで自分でファイアウォールルールを作成します

# 创建防火墙规则的文件
root@cocosum:~# vi /etc/iptables
# 添加下面的规则
 
*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:syn-flood - [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 7070 -j ACCEPT
 
-A INPUT -p icmp -m limit --limit 100/sec --limit-burst 100 -j ACCEPT
-A INPUT -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j syn-flood
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A syn-flood -p tcp -m limit --limit 3/sec --limit-burst 6 -j RETURN
-A syn-flood -j REJECT --reject-with icmp-port-unreachable
COMMIT

4.ルールを保存します

# iptables-save > /etc/iptables

5.スクリプトを作成します。毎回システムを再起動するために、iptablesファイアウォールが自動的に開始されます。

# 直接创建,目的是为了系统每次重启自动加载
# vi /etc/network/if-pre-up.d/iptables
 
# 内容
#!/bin/bash
iptables-restore < /etc/iptables
 
# :wq保存

6.追加したスクリプトに実行権限を付与します

# chmod +x /etc/network/if-pre-up.d/iptables

7.iptablesを確認します;直接iptables-L、これはcentosに似ています

# iptables -L
Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:http
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:https
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:mysql
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:http-alt
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:7070
ACCEPT     icmp --  anywhere             anywhere             limit: avg 100/sec burst 100
ACCEPT     icmp --  anywhere             anywhere             limit: avg 1/sec burst 10
syn-flood  tcp  --  anywhere             anywhere             tcp flags:FIN,SYN,RST,ACK/SYN
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited
 
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
 
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
 
Chain syn-flood (1 references)
target     prot opt source               destination         
RETURN     tcp  --  anywhere             anywhere             limit: avg 3/sec burst 6

iptablesルールを表示する

# iptables -vnL --line-numbers

-vは詳細情報を出力します

-nは、表示アドレスとポート番号を示します

-Lは、ディスプレイチェーンのルールを指します

--line-numberパラメーターは、行番号を表示するために使用されます
ここに画像の説明を挿入します
これは、削除するときに役立ちます。すべてのルールを削除します。

iptables -F

INPUTDROPポリシーが有効になっているときに-Fdeleteルールを使用すると、22ポートルールが削除されるため、サーバーからブロックされることに注意してください。したがって、非常に注意してください。-F自体は無害ですが、DROP戦略を使用している場合は、危険です。

ここに画像の説明を挿入します

iptables -Fを実行し、22ポートのルールを削除し、切断を引き起こし、再起動して回復します

指定したルールを削除する

iptables -D INPUT 4

確立された接続が着信データを受信できるようにするルールを追加します

iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

指定されたサーバーアクセスのみを受け入れます。サーバーへの
要求を開始するマシンの数を制限する場合は、次のような-sパラメーターを使用できます。

iptables -A INPUT -p tcp -s 10.112.18.0/24 --dport 27017 -j ACCEPT

10.112.18.0 / 0ネットワークセグメント内のマシンのみが、このマシンのポート27017に接続できます。

/ 24を削除すると、特定のIPにのみアクセスできることを意味します。

ローカルアクセスのみが必要な場合は、次のコマンドを使用します。

iptables -A INPUT -p tcp -s 127.0.0.1 --dport 27017 -j ACCEPT

このコマンドを使用して、ローカルアクセスを完全に解放することもできます。

iptables -A INPUT -i lo -j ACCEPT

参照リンク:

https://blog.csdn.net/csfreebird/article/details/8132362

https://help.ubuntu.com/community/IptablesHowTo

https://blog.csdn.net/qq_40058321/article/details/103180923

おすすめ

転載: blog.csdn.net/qq_40907977/article/details/114977760