01.Linuxファイアウォールサービスの設定
01. CentOS6の場合
ファイアウォールのステータスを表示する:
[root@ufo130 ~]# service iptables status
iptables:未运行防火墙。
現在のファイアウォールをオフにします。
[root@ufo130 ~]# service iptables stop
iptables:将链设置为政策 ACCEPT:filter [确定]
iptables:清除防火墙规则: [确定]
iptables:正在卸载模块: [确定]
現在のファイアウォールをオンにします。
[root@ufo130 ~]# service iptables start
iptables:应用防火墙规则: [确定]
ファイアウォールを完全にオフにします。起動後に自動的に起動しません。
- iptablesが有効かどうかを照会する
[root@ufo130 ~]# chkconfig --list | grep iptables
iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
- 2/3/4/5がすべて起動され、ファイアウォールが閉じていることがわかります。
[root@ufo130 ~]# chkconfig iptables off
[root@ufo130 ~]# chkconfig --list | grep iptables
iptables 0:off 1:off 2:off 3:off 4:off 5:off 6:off
ファイアウォールを永続的にオンにし、機会がオンになると自動的に開始します。
[root@ufo130 ~]# chkconfig iptables on
[root@ufo130 ~]# chkconfig --list | grep iptables
iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
02. CentOS7の場合
現在のファイアウォールステータスを表示します。
[root@ufo130 ~]# systemctl status firewald.service
現在のファイアウォールステータスをオフにします。
[root@ufo130 ~]# systemctl stop firewald.service
現在のファイアウォールステータスをオンにします。
[root@ufo130 ~]# systemctl start firewald.service
ファイアウォールを完全にオフにします。起動後にファイアウォールは起動しません。
[root@ufo130 ~]# systemctl disable firewald.service
ファイアウォールを永続的にオンにし、機会がオンになると自動的に開始します。
[root@ufo130 ~]# systemctl enable firewald.service
02. Linuxファイアウォール構成の表示(CentOS 6)
01.開いているポートを確認します
ポートにアクセスできるかどうかを確認します。
[root@ufo130 tmp]# telnet 192.168.137.168 5432
[root@ufo130 tmp]# telnet localhost 5432
開いているポートは/ etc / sysconfig / iptablesファイルにあります
[root@ufo130 tmp]# cat /etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
または、iptables-nLコマンドを使用して直接表示します
[root@ufo130 tmp]# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
コマンドを使用してポートを開きます
iptables -A INPUT -p tcp --dport 80 -j REJECT
#禁止来自80端口访问的数据包
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
#允许来自80端口访问的数据包
iptables -A OUTPUT -p tcp --sport 80 -j REJECT
#禁止从80端口出去的数据包
iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT
#允许从80端口出去的数据包
iptables -A INPUT -p tcp --dport 49152:65534 -j ACCEPT
#打开49152~65534之间的端口
また、/ etc / sysconfig / iptablesファイルを変更してポートを開き、ファイルに行を追加します
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 8080 -j ACCEPT
パラメータの説明:
- -パラメータはルールを追加すると見なされます
- -Pは、それがどのプロトコルであるか、一般的に使用されるtcpプロトコル、そしてもちろんudp(ポート53のDNSなど)を指定します。
- -Dportはターゲットポートであり、データが外部からサーバーに入る場合はターゲットポートです
- -サーバーからのスポーツデータ。データソースポートに使用されます。
- -Jは、ACCEPT(受信)またはDROP(受信しない)を指定します。
保存して再起動すると有効になります
/etc/rc.d/init.d/iptables save
/etc/init.d/iptables restart
CentOS7関連のファイアウォール設定は一時的に省略されています...
02.関連する設定の例
指定されたURLへのアクセスのみを許可する
iptables -A Filter -p udp --dport 53 -j ACCEPT
iptables -A Filter -p tcp --dport 53 -j ACCEPT
iptables -A Filter -d www.ctohome.com -j ACCEPT
iptables -A Filter -d www.guowaivps.com -j ACCEPT
iptables -A Filter -j DROP
IPの一部のポートを開きますが、他のすべてのポートは閉じます
iptables -A Filter -p tcp --dport 80 -s 192.168.1.22 -d www.pconline.com.cn -j ACCEPT
iptables -A Filter -p tcp --dport 25 -s 192.168.1.22 -j ACCEPT
iptables -A Filter -p tcp --dport 109 -s 192.168.1.22 -j ACCEPT
iptables -A Filter -p tcp --dport 110 -s 192.168.1.22 -j ACCEPT
iptables -A Filter -p tcp --dport 53 -j ACCEPT
iptables -A Filter -p udp --dport 53 -j ACCEPT
iptables -A Filter -j DROP
以下はポートです。最初にすべてのIPアドレスを封印します(一般的な戦略)
iptables -I INPUT -p tcp --dport 9889 -j DROP
iptables -I INPUT -s 192.168.1.0/24 -p tcp --dport 9889 -j ACCEPT
複数のポートを開く
iptables -A Filter -p tcp -m multiport --destination-port 22,53,80,110 -s 192.168.20.3 -j REJECT
シリアルポートを開く
iptables -A Filter -p tcp -m multiport --source-port 22,53,80,110 -s 192.168.20.3 -j REJECT iptables -A Filter -p tcp --source-port 2:80 -s 192.168.20.3 -j REJECT
複数のポートサービスを禁止する
iptables -A Filter -m multiport -p tcp --dport 21,23,80 -j ACCEPT
PING 202、96、134、133のみが許可され、他のパブリックIPはPINGに許可されません
iptables -A Filter -p icmp -s 192.168.1.22 -d 202.96.134.133 -j ACCEPT
iptables -A Filter -p icmp -j DROP
特定のサービスのみを許可し、他のサービスを拒否する(2つのルール)
iptables -A Filter -p tcp -s 192.168.0.1 --dport 1000 -j ACCEPT
iptables -A Filter -j DROP
IPアドレスのPINGを禁止します。
iptables -A Filter -p icmp -s 192.168.0.1 -j DROP
特定のIPアドレスサービスを禁止します。
iptables -A Filter -p tcp -s 192.168.0.1 --dport 80 -j DROP
iptables -A Filter -p udp -s 192.168.0.1 --dport 53 -j DROP
特定のIPアドレスの特定のポートサービスを禁止する
iptables -A Filter -p tcp -s 10.10.10.253 --dport 80 -j ACCEPT
iptables -A Filter -p tcp -s 10.10.10.253 --dport 80 -j DROP
特定のMACアドレスの特定のポートサービスを禁止する
iptables -I Filter -p tcp -m mac --mac-source 00:20:18:8F:72:F8 --dport 80 -j DROP
特定のMACアドレスがインターネットにアクセスすることを禁止します。
iptables -I Filter -m mac --mac-source 00:11:22:33:44:55 -j DROP
03.関連するホワイトリストを設定する方法
すべてを制限する
iptables -P INPUT DROP
ホワイトリスト
iptables -A INPUT -s 1.2.3.4 -p tcp -j ACCEPT
ポートアクセス制限、ポート80、443を制限
iptables -A INPUT -s 0.0.0.0/0 -p tcp --dport 80 -j DROP
iptables -A INPUT -s 0.0.0.0/0 -p tcp --dport 443 -j DROP
ホワイトリスト1.2.3.4
iptables -A INPUT -s 1.2.3.4 -p tcp --dport 80 -j ACCEPT
ホワイトリスト1.2.3。[0-255]
iptables -A INPUT -s 1.2.3.0/24 -p tcp --dport -j ACCEPT
04.ファイアウォール構成ファイルが存在しないか、起動できません
1. / etc / sysconfig / iptablesは存在しませんか?
2.ファイアウォールをアクティブにできませんか?
理由:
- 新しくインストールされたLinuxシステムでは、ファイアウォールはデフォルトで無効になっており、通常、ファイアウォールポリシーは構成されていないため、/ etc / sysconfig / iptablesファイルはありません。
解決策:
- コンソールでiptablesコマンドを使用して、次のようなファイアウォールルールを記述します。iptables-POUTPUT ACCEPT
- 保存するにはserviceiptables saveを使用します。デフォルトでは、/ etc / sysconfigディレクトリのiptablesファイルに保存します。
03.まとめ
01.ファイアウォールの分類
- パケットフィルタリングファイアウォール(パックフィルタリング)は、ネットワーク層でデータパケットを選択してフィルタリングし、アクセス制御テーブル(ACL)を使用して、データフローの送信元アドレス、宛先アドレス、送信元と宛先のポート、IPおよびその他の情報を確認します。
- プロキシサーバータイプのファイアウォール
02.iptablesの基本
- ルール:ネットワーク管理者によって事前定義された条件
- チェーン:データパケットが伝播されるパスです
- テーブル(テーブル):組み込みの3つのテーブルフィルターテーブル、natテーブル、マングルテーブルを使用して、パケットフィルタリングネットワークアドレス変換およびパケット再構築機能を実現します。
- フィルタテーブルは、システムのデフォルト、INPUTテーブル(着信パケット)、FORWORD(転送パケット)、OUTPUT(ローカルで生成されたパケットの処理)であり、フィルタテーブルはパケットの受け入れと破棄のみが可能です。
- natテーブル(ネットワークアドレス変換)、PREROUTING(次のデータパケットを変更)、OUTPUT(ルーティング前にローカルで生成されたデータパケットを変更)、POSTROUTING(次のデータパケットを変更)
- マングルテーブル、PREROUTING、OUTPUT、FORWORD、POSTROUTING、INPUT
03.その他
iptablesは、ファイアウォールルールの推奨構成であるルールを順番に読み取ることです。
- ルールをシンプルに保つ
- ルールの順序は重要です
- ルールを最適化してみてください
- 関連するバックアップを作成する
04.構成
iptablesコマンド形式
iptables [-t 表] -命令 匹配操作(大小写敏感)
动作选项:
ACCEPT 接收数据包
DROP 丢弃数据包
REDIRECT 将数据包重新转向到本机或另一台主机的某一个端口,通常功能实现透明代理或对外开放内网的某些服务
SNAT 源地址转换
DNAT 目的地址转换
MASQUERADE IP伪装
LOG 日志功能
最初にすべてのパケットを拒否し、次に必要なパケットを許可するルールを定義します
iptalbes -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
NATテーブル内のすべてのチェーンのルールリストを表示する
iptables -t nat -L
ルールの追加、挿入、削除、および置換
iptables [-t 表名] <-A|I|D|R> 链名 [规则编号] [-i|o 网卡名称] [-p 协议类型] [-s 源ip|源子网] [--sport 源端口号] [-d 目的IP|目标子网] [--dport 目标端口号] [-j 动作]
参数:
-A 增加
-I 插入
-D 删除
-R 替换
関連例
IP192.168.1.5のホストがeth0からこのマシンにアクセスすることを禁止する
iptables -t filter -A INPUT -s 192.168.1.5 -i eth0 -j DROP
サブネット192.168.5.0がWebサービスにアクセスすることを禁止する
iptables -t filter -I INPUT 2 -s 192.168.5.0/24 -p tcp --dport 80 -j DROP
IP192.168.7.9がFTPサービスにアクセスすることを禁止する
iptables -t filter -I INPUT 2 -s 192.168.7.9 -p tcp --dport ftp -j DROP
フィルタテーブルでINPUTチェーンのルールを表示します
iptables -t filter -L INPUT
NATテーブル内のすべてのルールを削除します
iptables -t nat -F
www.playboy.comへのアクセスは禁止されています
iptables -I FORWARD -d wwww.playboy.com -j DROP
192.168.5.23インターネットアクセスを禁止する
iptables -I FORWARD -s 192.168.5.23 -j DROP