Linux

ipset+Firewalld アクセス制御 CentOS7

 

クラウド側のファイアウォールで制御するのが標準で、Fail2banなどのIPSでBANを自動化するように設定するので、実際に手作業でipsetによるアクセス制御を実施するような要望が発生することはかなり少ないですが、知っていると知らないとでは大きな違いですし、国単位のアクセス制御する場合など使えます。

 

環境

記事にする為に攻撃して貰うように、
SSHにてデフォルトポート、パスワード認証、rootログイン可能にしています。

 

# yum install ipset

Package ipset-6.29-1.el7.x86_64 already installed and latest version

 

# tail -f  /var/log/secure

Oct  1 12:44:51 150-xxx-yyy-43 sshd[16846]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=61.xxx.yyy.40  user=root
Oct  1 12:44:51 150-xxx-yyy-43 sshd[16846]: pam_succeed_if(sshd:auth): requirement "uid >= 1000" not met by user "root"

 

# ipset create BLACKLIST hash:ip hashsize 4096

# ipset add BLACKLIST 61.xxx.yyy.40
※# ipset add BLACKLIST 192.168.0.0/24という指定もできる。

# firewall-cmd --direct --add-rule ipv4 filter INPUT 0  -m set --match-set BLACKLIST src -j DROP
success

 

# tail -f  /var/log/secure

Oct  1 12:53:36 150-xxx-yyy-43 sshd[16881]: pam_succeed_if(sshd:auth): requirement "uid >= 1000" not met by user "root"
Oct  1 12:53:39 150-xxx-yyy-43 sshd[16881]: Failed password for root from 58.xxx.yyy.160 port 12587 ssh2

禁止したいIPを追加します。

# ipset add BLACKLIST 58.xxx.yyy.160

 

# date
Sun Oct  1 13:04:25 JST 2017
# tail -f  /var/log/secure

Oct  1 12:55:03 150-xxx-yyy-43 sshd[16907]: Failed password for root from 58.xxx.yyy.160 port 23577 ssh2
Oct  1 12:55:04 150-xxx-yyy-43 sshd[16907]: Received disconnect from 58.xxx.yyy.160 port 23577:11:  [preauth]
Oct  1 12:55:04 150-xxx-yyy-43 sshd[16907]: Disconnected from 58.xxx.yyy.160 port 23577 [preauth]
Oct  1 12:55:04 150-xxx-yyy-43 sshd[16907]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=58.xxx.yyy.160  user=root

 

 

設定を反映

# firewall-cmd --reload
success

 

状態を確認します。

# iptables -L INPUT_direct -v

Chain INPUT_direct (1 references)
 pkts bytes target     prot opt in     out     source               destination
   17  1020 DROP       all  --  any    any     anywhere             anywhere             match-set BLACKLIST src

 

禁止されているIPの確認

# ipset list 

Name: BLACKLIST
Type: hash:ip
Revision: 1
Header: family inet hashsize 4096 maxelem 65536
Size in memory: 65712
References: 1
Members:
58.xxx.yyy.160
61.xxx.yyy.40

 

61.xxx.yyy.40のIPを外します。

# ipset del BLACKLIST 61.xxx.yyy.40

 

状態を確認します。

# ipset list BLACKLIST

Name: BLACKLIST
Type: hash:ip
Revision: 1
Header: family inet hashsize 4096 maxelem 65536
Size in memory: 65712
References: 1
Members:
58.xxx.yyy.160

 

状況確認します。

# date
Sun Oct  1 13:14:07 JST 2017
# tail -f  /var/log/secure
Oct  1 13:26:03 150-xxx-yyy-43 sshd[17076]: Received disconnect from 61.xxx.yyy.40 port 38921:11:  [preauth]
Oct  1 13:26:03 150-xxx-yyy-43 sshd[17076]: Disconnected from 61.xxx.yyy.40 port 38921 [preauth]

 

攻撃が再開された。

攻撃者側の通信がサーバに可能になったことがわかります。

 

Amazonおすすめ

iPad 9世代 2021年最新作

iPad 9世代出たから買い替え。安いぞ!🐱 初めてならiPad。Kindleを外で見るならiPad mini。ほとんどの人には通常のiPadをおすすめします><

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)