顯示具有 iptables 標籤的文章。 顯示所有文章
顯示具有 iptables 標籤的文章。 顯示所有文章

2025/05/25

今天再度測試了一下PVE的firewall功能
發現只要打開cluster的firewall
預設就會載入很多firewall的rule 而且無法刪除
但在測試過程中發現竟然有 guest 原本提供服務的https 打不開了
而且原本使用 nmap做的一些測試也被擋了
最後決定在每台host直接下iptables 指令

#!/bin/bash

######## 以下是防護 host ##############
/usr/sbin/iptables -A INPUT -s 10.0.0.0/24 -j ACCEPT
/usr/sbin/iptables -A INPUT -p tcp -s 0/0 --dport 22 -j DROP
/usr/sbin/iptables -A INPUT -p tcp -s 0/0 --dport 8006 -j DROP

######## 以下是防護 guest  視需求新增  port #############
/usr/sbin/iptables -A FORWARD -s 10.0.0.0/24 -j ACCEPT
/usr/sbin/iptables -A FORWARD -p tcp -s 0/0 --dport 22 -j DROP
/usr/sbin/iptables -A FORWARD -p tcp -s 0/0 --dport 8006 -j DROP
/usr/sbin/iptables -A FORWARD -p tcp -s 0/0 --dport 8007 -j DROP

記得寫在 crontab  @reboot

2025/02/14

今天在 almalinux 9 dnf update出現以下錯誤


Error:

Problem: package iptables-legacy-1.8.10-4.1.el9.x86_64 from @System requires (iptables-libs(x86-64) = 1.8.10-4.el9 or iptables-libs(x86-64) = 1.8.10-4.el9_4), but none of the providers can be installed

- cannot install both iptables-libs-1.8.10-11.el9_5.x86_64 from baseos and iptables-libs-1.8.10-4.el9_4.x86_64 from @System

- cannot install both iptables-libs-1.8.10-4.el9_4.x86_64 from baseos and iptables-libs-1.8.10-11.el9_5.x86_64 from baseos

- cannot install the best update candidate for package iptables-libs-1.8.10-4.el9_4.x86_64

- cannot install the best update candidate for package iptables-legacy-1.8.10-4.1.el9.x86_64

(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

本來想把iptables-legacy iptables-libs 都移除 但因為這台跑docker 如果移除會連docker一起移掉

查到官方 forum有人提供解法

dnf --assumeyes swap iptables-legacy iptables-nft


https://forums.almalinux.org/t/almalinux-9-yum-update-iptables-legacy-and-iptables-libs-conflict/3818/2

2024/11/29

因為要管制跑在LXC上docker的網路
才發現把iptables直接下在 LXC上的 INPUT 是沒用的 

iptables -I INPUT -p tcp -s 10.0.0.0/8 --dport 1111 -j DROP

以上如果是啟動 docker 時 相對應到各自的 1111是無法管制連入 docker的
本來的認知是只要在最外層擋就好了 但並不是

要下在 DOCKER-USER 這個 chain 才有作用

iptables -I DOCKER-USER -p tcp -s 10.0.0.0/8 --dport 1111 -j DROP

2023/05/24


/usr/sbin/iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 22 -j ACCEPT
/usr/sbin/iptables -A INPUT -p tcp -s 0/0 --dport 22 -j DROP
/usr/sbin/iptables -A INPUT -s 127.0.0.1 -j ACCEPT
/usr/sbin/iptables -A INPUT -s 192.168.0.0/16 -j ACCEPT
/usr/sbin/iptables -A INPUT -s 10.0.0.0/8 -j ACCEPT

/usr/sbin/iptables -A INPUT -m state --state  ESTABLISHED -j ACCEPT
在DROP前必須加上以上這行 封包才能出去

/usr/sbin/iptables -A INPUT -s 0/0 -j DROP

2019/09/01

如何在dns 上使用iptablse 阻擋惡意domain

/tmp/malice_domain_today 這個檔案是惡意domain的list

#!/bin/bash

IFS=.

while read line
do

        echo -n '/usr/sbin/iptables -A INPUT -p udp --dport 53 -m string --hex-string "'

        for i in $line
        do

                echo -n "\|"
                echo -n ${#i}
                echo -n "\|"
                echo -n $i

        done
        echo '" --algo bm -j DROP'
done < /tmp/malice_domain_today > /tmp/iptables_block_command

/usr/sbin/iptables -F
/usr/sbin/iptables -X

/usr/bin/bash /tmp/iptables_block_command




https://www.perturb.org/display/1186_Linux_Block_DNS_queries_for_specific_zone_with_IPTables.html?utm_source=linuxnewssite.com

2019/04/04

之前寫過一篇使用honeyports的文章
昨天想到用iptables應該也可以達到相同的效果

iptables -I INPUT -p tcp --dport 9999 -j LOG

修改一下 tcp 或 udp 跟 dport

ubuntu的話會把log放在 /var/log/syslog
centos在 /var/log/messages

再把ip捉出來處理囉

在LXC中 iptables 的log 沒有作用 特別注意

2018/04/21

今天找到honeyports
程式碼是2013年的 用python寫
拿來當陷阱看來還不錯用

拿這個檔來修改
honeyports-0.4.py

預設執行時若偵測到try port的ip
會下iptables 並在畫面上出現訊息問管理者是要列出還是清掉加上的iptables
改一下程式
首先把出現訊息的地方mark掉
再來把加iptables的地方改成寫到log去
另外還有一個就是原作者在連線的回應訊息寫的是

nasty_msg = "\n\n***** Fuck You For Connecting *****\n\n"

這就看個人要不要改了

程式中的這些行因為是直接產生訊息在畫面上

Got connection from
Blocking the address: 
Creating a Linux Firewall Rule

I just blocked: 

如果不拿掉 在背景執行會有問題
不想拿也可以 就用screen來跑

改完後執行

sudo python honeyports-0.4.py -p 21
-p是監聽的port
可以多執行几次起在不同的port
大於1024可以不需要使用sudo
目前想到的是

21
22
23
137
138
139
445
1433
3389
3306
5800
5900

網卡多bind几個ip
然後.......就可以在log檔拿到這些ip了
接下來要作什麼
自己想


https://github.com/adhdproject/adhdproject.github.io/blob/master/Tools/HoneyPorts.md

https://github.com/ethack/honeyports

2016/03/22

為了預先解決centos 5到明天支援到期的問題
今天來把原先提供下載服務的机器升成centos 7
比較難處理的是原本提供kms認証的部分
几個跟原centos 5不同的地方記錄一下

原本apache用來ldap認証的模組換成 mod_ldap

寫法也有一些改變 範例如下 (novell 適用)

<Directory /var/www/html/test>
    AuthName ldap
    AuthType Basic
    AuthBasicProvider ldap
    AuthLDAPURL ldap://test.com.tw:389/o=users?cn?sub?(objectClass=*)
    AuthLDAPBindDN "cn=user01, ou=user, ou=people, o=users"
    AuthLDAPBindPassword password
    Require valid-user
</Directory>

ip forword的寫法也改了

在/etc/sysctl.conf 加上
net.ipv4.ip_forward = 1

重新載入
sysctl -p /etc/sysctl.conf


因為需要使用apche這個身分下iptables的指令
所以要編輯 /etc/sudoers
Defaults    requiretty 改為 Defaults:apache !requiretty apache不需要tty

再加上
User_Alias      APACHE = apache
Cmnd_Alias      FIREWALL = /sbin/iptables

APACHE  ALL = (ALL) NOPASSWD: FIREWALL

原來的firewalld要停掉 改用iptables

systemctl disable firewalld
yum install -y iptables-services
systemctl enable iptables

http://my.oschina.net/fsxchen/blog/134601
http://superuser.com/questions/803741/how-to-enable-ip-masquerading-forwarding-on-centos-7

2015/08/06

本來想把psad移到snort 上
但iptables下完後在收port mirror的nic一直沒法產生log
查了一下文件
iptables 好像沒法在port mirror的情況log
一定要有封包流過去才能log
如下圖


2015/05/15

5/13psad又有更新版本
上次2.4版時更新就有問題了
所以沒更新
今天想說再試看看
結果用tar.gz更新還是有問題
想說有提供rpm
所以重裝一台好了
放在centos7 x64上

使用rpm裝完沒問題
但systemctl start psad會起不來

journalctl -xn
找一下停在什麼地方
要補什麼東東

還要再加裝的有

perl-Data-Dumper.x86_64
psmisc.x86_64
mailx
iptables-devel.x86_64
perl-ExtUtils-MakeMaker.noarch
perl-NetAddr-IP.x86_64
perl-Date-Calc.noarch
perl-Sys-Syslog.x86_64
gcc
ntpdate
ftp

另外有几個沒有rpm
IPTables-ChainMgr-1.3
IPTables-Parse-1.4
Unix-Syslog-1.1
使用
perl Makefile.PL
make
make install
手動做

如果有缺什麼再補一下吧

log的格式沒有變
所以程式不用修改
最後把這個ip 在 firewall 完全開放
大家來攻吧!

ps
除了改/etc/psad/psad.conf外
記得在/etc/psad/auto_dl
加上內部的ip
不然log會收不完

2015/03/16

psad 之前每次都隔好久才更新
昨天上去看
2015就更新了二次
版本已經到 2.2.5了
Added signature to detect fwknop Single Packet Authorization (SPA)
packets that are destined to the default UDP port 62201

看change log好像在這個月 2015/3還會到 2.2.6
還是先更新一下
log的格式沒變,所以程式不用改
另外psad的log已經獨立出來放在/var/log/psad
有滿詳細的資料 要鎖ip可以直接到這裡捉就好了
不過程式先不改
但 2.2.6出來再看看

https://cipherdyne.org/psad/download/

2014/07/29

不久前有個朋友來電求救
問題狀況是之前幫他架的proxmox裡的guest
主要服務是mail及dns
只要一開机
所有的網路就動不了
他懷疑是不是主机被hack了
但因為只要一開机網路就死了
所以在想要怎麼連進去
最後請他先把guest關机
讓我能進到proxmox的管理介面先把guest的網卡停掉
再把guest boot
初步看了一下
並沒有看到被hack的情況
接下來把網卡enable
在rc.local加上
iptables -I OUTPUT -j DROP
reboot把網卡起起來
用tcpdump看到好多來自某個subnet ip的request
dos攻擊沒錯了
一樣用iptables在input擋掉
再把之前加的OUTPUT拿掉
恢復正常
目前就先醬
如果攻擊者換了subnet就再說了
但一個小公司
怎麼會有人無聊到dos port 53
不解

總結
1. 先drop output packet
2. 使tcpdump看 input packet
3. 決定對策