OXIESEC PANEL
- Current Dir:
/
/
usr
/
sbin
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
10/21/2019 03:48:12 PM
rwxr-xr-x
📄
a2disconf
15.89 KB
02/23/2021 04:35:16 PM
rwxr-xr-x
📄
a2dismod
15.89 KB
02/23/2021 04:35:16 PM
rwxr-xr-x
📄
a2dissite
15.89 KB
02/23/2021 04:35:16 PM
rwxr-xr-x
📄
a2enconf
15.89 KB
02/23/2021 04:35:16 PM
rwxr-xr-x
📄
a2enmod
15.89 KB
02/23/2021 04:35:16 PM
rwxr-xr-x
📄
a2ensite
15.89 KB
02/23/2021 04:35:16 PM
rwxr-xr-x
📄
a2query
9.64 KB
03/08/2023 05:34:33 PM
rwxr-xr-x
📄
aa-remove-unknown
2.85 KB
06/20/2023 11:51:13 PM
rwxr-xr-x
📄
aa-status
8.41 KB
06/20/2023 11:51:13 PM
rwxr-xr-x
📄
accessdb
10.23 KB
08/04/2018 07:16:12 PM
rwxr-xr-x
📄
acpid
50.84 KB
04/28/2017 04:28:10 AM
rwxr-xr-x
📄
add-shell
860 bytes
12/30/2017 06:15:02 PM
rwxr-xr-x
📄
addgnupghome
3.01 KB
07/04/2022 04:20:59 PM
rwxr-xr-x
📄
addgroup
36.45 KB
12/05/2017 04:57:20 PM
rwxr-xr-x
📄
adduser
36.45 KB
12/05/2017 04:57:20 PM
rwxr-xr-x
📄
apache2
659.69 KB
03/08/2023 05:34:33 PM
rwxr-xr-x
📄
apache2ctl
7.06 KB
03/04/2022 10:48:50 AM
rwxr-xr-x
📄
apachectl
7.06 KB
03/04/2022 10:48:50 AM
rwxr-xr-x
📄
apparmor_status
8.41 KB
06/20/2023 11:51:13 PM
rwxr-xr-x
📄
applygnupgdefaults
2.17 KB
07/04/2022 04:20:59 PM
rwxr-xr-x
📄
arp
61.3 KB
01/10/2017 04:25:08 AM
rwxr-xr-x
📄
arpd
54.03 KB
01/26/2021 01:33:08 PM
rwxr-xr-x
📄
atd
26.01 KB
02/20/2018 06:59:43 AM
rwxr-xr-x
📄
bcache-super-show
13.99 KB
08/05/2020 08:44:05 PM
rwxr-xr-x
📄
biosdecode
18.87 KB
01/27/2020 06:09:10 PM
rwxr-xr-x
📄
check_forensic
952 bytes
04/26/2011 03:10:00 PM
rwxr-xr-x
📄
chgpasswd
57.83 KB
11/29/2022 12:25:19 PM
rwxr-xr-x
📄
chmem
42.08 KB
09/16/2020 06:43:15 PM
rwxr-xr-x
📄
chpasswd
53.86 KB
11/29/2022 12:25:19 PM
rwxr-xr-x
📄
chroot
38.18 KB
01/18/2018 09:43:49 AM
rwxr-xr-x
📄
cpgr
55.96 KB
11/29/2022 12:25:19 PM
rwxr-xr-x
📄
cppw
55.96 KB
11/29/2022 12:25:19 PM
rwxr-xr-x
📄
cron
46.3 KB
05/10/2022 08:59:19 PM
rwxr-xr-x
📄
cryptdisks_start
1.11 KB
08/03/2020 09:28:48 PM
rwxr-xr-x
📄
cryptdisks_stop
1.16 KB
08/03/2020 09:28:48 PM
rwxr-xr-x
📄
delgroup
16.11 KB
12/05/2017 04:57:20 PM
rwxr-xr-x
📄
deluser
16.11 KB
12/05/2017 04:57:20 PM
rwxr-xr-x
📄
dmidecode
106.54 KB
01/27/2020 06:09:10 PM
rwxr-xr-x
📄
dnsmasq
379.6 KB
04/18/2023 08:21:55 AM
rwxr-xr-x
📄
dpkg-preconfigure
3.58 KB
05/06/2019 04:30:30 PM
rwxr-xr-x
📄
dpkg-reconfigure
4.34 KB
05/06/2019 04:30:30 PM
rwxr-xr-x
📄
e2freefrag
14.07 KB
06/02/2022 02:37:00 PM
rwxr-xr-x
📄
e4crypt
22.07 KB
06/02/2022 02:37:00 PM
rwxr-xr-x
📄
e4defrag
25.99 KB
06/02/2022 02:37:00 PM
rwxr-xr-x
📄
escapesrc
22.16 KB
10/19/2021 07:44:28 PM
rwxr-xr-x
📄
faillock
13.99 KB
02/02/2023 09:24:07 AM
rwxr-xr-x
📄
fdformat
30.08 KB
09/16/2020 06:43:15 PM
rwxr-xr-x
📄
filefrag
14.02 KB
06/02/2022 02:37:00 PM
rwxr-xr-x
📄
genccode
10.36 KB
10/19/2021 07:44:28 PM
rwxr-xr-x
📄
gencmn
10.44 KB
10/19/2021 07:44:28 PM
rwxr-xr-x
📄
genl
58.05 KB
01/26/2021 01:33:08 PM
rwxr-xr-x
📄
gennorm2
54.59 KB
10/19/2021 07:44:28 PM
rwxr-xr-x
📄
gensprep
18.5 KB
10/19/2021 07:44:28 PM
rwxr-xr-x
📄
groupadd
61.92 KB
11/29/2022 12:25:19 PM
rwxr-xr-x
📄
groupdel
70.37 KB
11/29/2022 12:25:19 PM
rwxr-xr-x
📄
groupmems
57.87 KB
11/29/2022 12:25:19 PM
rwxr-xr-x
📄
groupmod
68.18 KB
11/29/2022 12:25:19 PM
rwxr-xr-x
📄
grpck
53.8 KB
11/29/2022 12:25:19 PM
rwxr-xr-x
📄
grpconv
49.68 KB
11/29/2022 12:25:19 PM
rwxr-xr-x
📄
grpunconv
49.68 KB
11/29/2022 12:25:19 PM
rwxr-xr-x
📄
grub-install
1003.51 KB
02/01/2023 05:49:01 PM
rwxr-xr-x
📄
grub-macbless
780.84 KB
02/01/2023 05:49:01 PM
rwxr-xr-x
📄
grub-mkconfig
8.03 KB
02/01/2023 05:49:01 PM
rwxr-xr-x
📄
grub-mkdevicemap
207.62 KB
02/01/2023 05:49:01 PM
rwxr-xr-x
📄
grub-probe
793.09 KB
02/01/2023 05:49:01 PM
rwxr-xr-x
📄
grub-reboot
4.73 KB
02/01/2023 05:49:01 PM
rwxr-xr-x
📄
grub-set-default
832 bytes
03/24/2018 12:56:45 AM
rwxr-xr-x
📄
grub-set-default-legacy-ec2
3.13 KB
03/24/2018 12:56:45 AM
rwxr-xr-x
📄
grub-set-default.real
3.47 KB
02/01/2023 05:49:01 PM
rwxr-xr-x
📄
httxt2dbm
9.99 KB
03/08/2023 05:34:33 PM
rwxr-xr-x
📄
iconvconfig
30.25 KB
05/03/2022 10:19:39 AM
rwxr-xr-x
📄
icupkg
18.77 KB
10/19/2021 07:44:28 PM
rwxr-xr-x
📄
init.lxc
38.5 KB
05/05/2023 12:06:12 PM
rwxr-xr-x
📄
init.lxc.static
1005.91 KB
05/05/2023 12:06:12 PM
rwxr-xr-x
📄
invoke-rc.d
15.66 KB
10/25/2017 03:38:42 PM
rwxr-xr-x
📄
ip6tables-apply
6.85 KB
05/09/2023 06:42:18 PM
rwxr-xr-x
📄
iptables-apply
6.85 KB
05/09/2023 06:42:18 PM
rwxr-xr-x
📄
irqbalance
62.68 KB
01/09/2019 10:38:44 AM
rwxr-xr-x
📄
irqbalance-ui
34.06 KB
01/09/2019 10:38:44 AM
rwxr-xr-x
📄
iscsi-iname
9.99 KB
04/06/2022 07:19:56 PM
rwxr-xr-x
📄
iscsi_discovery
5.16 KB
09/29/2016 06:33:24 PM
rwxr-xr-x
📄
iscsid
398.15 KB
04/06/2022 07:19:56 PM
rwxr-xr-x
📄
iscsistart
358.13 KB
04/06/2022 07:19:56 PM
rwxr-xr-x
📄
ldattach
30.08 KB
09/16/2020 06:43:15 PM
rwxr-xr-x
📄
locale-gen
4.3 KB
12/07/2020 04:38:09 PM
rwxr-xr-x
📄
logrotate
74.09 KB
08/21/2017 11:01:27 PM
rwxr-xr-x
📄
luksformat
3.32 KB
08/03/2020 09:28:48 PM
rwxr-xr-x
📄
maidag
69.88 KB
11/07/2017 09:06:00 PM
rwxr-xr-x
📄
make-bcache
18.07 KB
08/05/2020 08:44:05 PM
rwxr-xr-x
📄
make-ssl-cert
3.78 KB
04/28/2017 07:58:22 PM
rwxr-xr-x
📄
mkinitramfs
10.89 KB
07/01/2021 01:11:48 PM
rwxr-xr-x
📄
mklost+found
9.99 KB
06/02/2022 02:37:00 PM
rwxr-xr-x
📄
mysqld
23.16 MB
04/23/2023 02:08:47 PM
rwxr-xr-x
📄
netplan
798 bytes
09/07/2021 03:19:37 PM
rwxr-xr-x
📄
newusers
82.39 KB
11/29/2022 12:25:19 PM
rwxr-xr-x
📄
nfnl_osf
13.99 KB
05/09/2023 06:42:18 PM
rwxr-xr-x
📄
nologin
5.99 KB
11/29/2022 12:25:19 PM
rwxr-xr-x
📄
overlayroot-chroot
2.45 KB
09/20/2018 01:29:41 PM
rwxr-xr-x
📄
ownership
10.13 KB
01/27/2020 06:09:10 PM
rwxr-xr-x
📄
pam-auth-update
19.38 KB
07/21/2020 11:40:59 PM
rwxr-xr-x
📄
pam_getenv
2.82 KB
08/23/2018 11:37:53 PM
rwxr-xr-x
📄
pam_timestamp_check
9.99 KB
02/02/2023 09:24:07 AM
rwxr-xr-x
📄
paperconfig
4.07 KB
04/28/2017 05:17:56 AM
rwxr-xr-x
📄
php-fpm7.2
4.65 MB
02/23/2023 01:29:25 PM
rwxr-xr-x
📄
phpdismod
7.11 KB
01/17/2018 11:50:00 PM
rwxr-xr-x
📄
phpenmod
7.11 KB
01/17/2018 11:50:00 PM
rwxr-xr-x
📄
phpquery
6.24 KB
01/17/2018 11:50:00 PM
rwxr-xr-x
📄
popcon-largest-unused
543 bytes
02/22/2018 05:15:22 AM
rwxr-xr-x
📄
popularity-contest
4.92 KB
02/22/2018 05:15:22 AM
rwxr-xr-x
📄
postalias
17.99 KB
08/12/2021 12:43:19 PM
rwxr-xr-x
📄
postcat
18.06 KB
08/12/2021 12:43:19 PM
rwxr-xr-x
📄
postconf
179.47 KB
08/12/2021 12:43:19 PM
rwxr-xr-x
📄
postdrop
14.12 KB
08/12/2021 12:43:19 PM
r-xr-xr-x
📄
postfix
14.07 KB
08/12/2021 12:43:19 PM
rwxr-xr-x
📄
postfix-add-filter
4.9 KB
08/12/2021 12:43:19 PM
rwxr-xr-x
📄
postfix-add-policy
3.83 KB
08/12/2021 12:43:19 PM
rwxr-xr-x
📄
postkick
9.99 KB
08/12/2021 12:43:19 PM
rwxr-xr-x
📄
postlock
9.99 KB
08/12/2021 12:43:19 PM
rwxr-xr-x
📄
postlog
10.15 KB
08/12/2021 12:43:19 PM
rwxr-xr-x
📄
postmap
17.99 KB
08/12/2021 12:43:19 PM
rwxr-xr-x
📄
postmulti
26.38 KB
08/12/2021 12:43:19 PM
rwxr-xr-x
📄
postqueue
22.07 KB
08/12/2021 12:43:19 PM
r-xr-xr-x
📄
postsuper
22.32 KB
08/12/2021 12:43:19 PM
rwxr-xr-x
📄
posttls-finger
34.09 KB
08/12/2021 12:43:19 PM
rwxr-xr-x
📄
pwck
49.8 KB
11/29/2022 12:25:19 PM
rwxr-xr-x
📄
pwconv
45.7 KB
11/29/2022 12:25:19 PM
rwxr-xr-x
📄
pwunconv
45.68 KB
11/29/2022 12:25:19 PM
rwxr-xr-x
📄
qmqp-sink
13.99 KB
08/12/2021 12:43:19 PM
rwxr-xr-x
📄
qmqp-source
18.01 KB
08/12/2021 12:43:19 PM
rwxr-xr-x
📄
qshape
12.55 KB
08/12/2021 12:43:19 PM
rwxr-xr-x
📄
readprofile
18.11 KB
09/16/2020 06:43:15 PM
rwxr-xr-x
📄
remove-shell
904 bytes
12/30/2017 06:15:02 PM
rwxr-xr-x
📄
rmail
13.99 KB
08/12/2021 12:43:19 PM
rwxr-xr-x
📄
rmt
58.39 KB
02/15/2023 02:55:10 PM
rwxr-xr-x
📄
rmt-tar
58.39 KB
02/15/2023 02:55:10 PM
rwxr-xr-x
📄
rsyslogd
668.54 KB
05/03/2022 09:20:37 AM
rwxr-xr-x
📄
rtcwake
42.08 KB
09/16/2020 06:43:15 PM
rwxr-xr-x
📄
sendmail
26.15 KB
08/12/2021 12:43:19 PM
rwxr-xr-x
📄
service
9.04 KB
10/25/2017 03:38:42 PM
rwxr-xr-x
📄
setvesablank
14.07 KB
01/22/2018 01:49:48 PM
rwxr-xr-x
📄
slapacl
1.2 MB
05/12/2022 01:52:38 PM
rwxr-xr-x
📄
slapadd
1.2 MB
05/12/2022 01:52:38 PM
rwxr-xr-x
📄
slapauth
1.2 MB
05/12/2022 01:52:38 PM
rwxr-xr-x
📄
slapcat
1.2 MB
05/12/2022 01:52:38 PM
rwxr-xr-x
📄
slapd
1.2 MB
05/12/2022 01:52:38 PM
rwxr-xr-x
📄
slapdn
1.2 MB
05/12/2022 01:52:38 PM
rwxr-xr-x
📄
slapindex
1.2 MB
05/12/2022 01:52:38 PM
rwxr-xr-x
📄
slappasswd
1.2 MB
05/12/2022 01:52:38 PM
rwxr-xr-x
📄
slapschema
1.2 MB
05/12/2022 01:52:38 PM
rwxr-xr-x
📄
slaptest
1.2 MB
05/12/2022 01:52:38 PM
rwxr-xr-x
📄
smtp-sink
30.93 KB
08/12/2021 12:43:19 PM
rwxr-xr-x
📄
smtp-source
22.02 KB
08/12/2021 12:43:19 PM
rwxr-xr-x
📄
split-logfile
2.36 KB
03/08/2023 05:34:33 PM
rwxr-xr-x
📄
sshd
772.41 KB
03/30/2022 01:17:14 PM
rwxr-xr-x
📄
tarcat
936 bytes
02/15/2023 02:55:10 PM
rwxr-xr-x
📄
tcpdump
999.6 KB
02/10/2023 06:11:16 PM
rwxr-xr-x
📄
tzconfig
106 bytes
04/03/2023 11:03:22 AM
rwxr-xr-x
📄
ufw
4.82 KB
10/25/2021 05:30:24 PM
rwxr-xr-x
📄
update-ca-certificates
5.27 KB
05/18/2023 01:09:37 PM
rwxr-xr-x
📄
update-grub
64 bytes
02/01/2023 05:49:01 PM
rwxr-xr-x
📄
update-grub-legacy-ec2
43.96 KB
03/24/2018 12:56:45 AM
rwxr-xr-x
📄
update-grub2
64 bytes
02/01/2023 05:49:01 PM
rwxr-xr-x
📄
update-gsfontmap
450 bytes
04/13/2023 01:09:22 PM
rwxr-xr-x
📄
update-icon-caches
596 bytes
04/02/2019 03:46:36 PM
rwxr-xr-x
📄
update-info-dir
1.66 KB
02/05/2018 02:48:18 PM
rwxr-xr-x
📄
update-initramfs
8.04 KB
03/18/2021 06:48:17 PM
rwxr-xr-x
📄
update-java-alternatives
3.09 KB
01/06/2017 12:03:20 PM
rwxr-xr-x
📄
update-locale
2.99 KB
05/03/2022 04:27:41 AM
rwxr-xr-x
📄
update-mime
8.84 KB
07/15/2016 12:06:12 PM
rwxr-xr-x
📄
update-passwd
30.41 KB
09/12/2017 09:48:16 PM
rwxr-xr-x
📄
update-pciids
2.84 KB
02/10/2019 06:25:12 PM
rwxr-xr-x
📄
update-rc.d
16.12 KB
10/25/2017 03:38:42 PM
rwxr-xr-x
📄
update-secureboot-policy
7.43 KB
01/31/2023 11:57:37 AM
rwxr-xr-x
📄
update-usbids
1.05 KB
04/21/2017 08:59:17 PM
rwxr-xr-x
📄
useradd
123.28 KB
11/29/2022 12:25:19 PM
rwxr-xr-x
📄
userdel
82.48 KB
11/29/2022 12:25:19 PM
rwxr-xr-x
📄
usermod
123.06 KB
11/29/2022 12:25:19 PM
rwxr-xr-x
📄
uuidd
34.16 KB
09/16/2020 06:43:15 PM
rwxr-xr-x
📄
validlocale
1.73 KB
12/07/2020 04:38:09 PM
rwxr-xr-x
📄
vcstime
9.99 KB
01/22/2018 01:49:48 PM
rwxr-xr-x
📄
vigr
60.18 KB
11/29/2022 12:25:19 PM
rwxr-xr-x
📄
vipw
60.18 KB
11/29/2022 12:25:19 PM
rwxr-xr-x
📄
visudo
208.8 KB
04/04/2023 12:44:58 PM
rwxr-xr-x
📄
vpddecode
14.27 KB
01/27/2020 06:09:10 PM
rwxr-xr-x
📄
xfs_admin
1.35 KB
04/18/2018 06:44:31 AM
rwxr-xr-x
📄
xfs_bmap
638 bytes
04/18/2018 06:44:31 AM
rwxr-xr-x
📄
xfs_copy
394.31 KB
04/18/2018 06:44:31 AM
rwxr-xr-x
📄
xfs_db
667.63 KB
04/18/2018 06:44:31 AM
rwxr-xr-x
📄
xfs_estimate
10.01 KB
04/18/2018 06:44:31 AM
rwxr-xr-x
📄
xfs_freeze
767 bytes
04/18/2018 06:44:31 AM
rwxr-xr-x
📄
xfs_fsr
30.02 KB
04/18/2018 06:44:31 AM
rwxr-xr-x
📄
xfs_growfs
382.27 KB
04/18/2018 06:44:31 AM
rwxr-xr-x
📄
xfs_info
472 bytes
04/18/2018 06:44:31 AM
rwxr-xr-x
📄
xfs_io
130.93 KB
04/18/2018 06:44:31 AM
rwxr-xr-x
📄
xfs_logprint
414.27 KB
04/18/2018 06:44:31 AM
rwxr-xr-x
📄
xfs_mdrestore
370.28 KB
04/18/2018 06:44:31 AM
rwxr-xr-x
📄
xfs_metadump
747 bytes
04/18/2018 06:44:31 AM
rwxr-xr-x
📄
xfs_mkfile
1007 bytes
04/18/2018 06:44:31 AM
rwxr-xr-x
📄
xfs_ncheck
650 bytes
04/18/2018 06:44:31 AM
rwxr-xr-x
📄
xfs_quota
86.01 KB
04/18/2018 06:44:31 AM
rwxr-xr-x
📄
xfs_rtcp
13.99 KB
04/18/2018 06:44:31 AM
rwxr-xr-x
📄
zerofree
9.99 KB
11/14/2016 02:44:00 PM
rwxr-xr-x
📄
zic
54.14 KB
05/03/2022 10:19:39 AM
rwxr-xr-x
Editing: ip6tables-apply
Close
#!/bin/bash # iptables-apply -- a safer way to update iptables remotely # # Usage: # iptables-apply [-hV] [-t timeout] [-w savefile] {[rulesfile]|-c [runcmd]} # # Versions: # * 1.0 Copyright 2006 Martin F. Krafft <madduck@madduck.net> # Original version # * 1.1 Copyright 2010 GW <gw.2010@tnode.com or http://gw.tnode.com/> # Added parameter -c (run command) # Added parameter -w (save successfully applied rules to file) # Major code cleanup # # Released under the terms of the Artistic Licence 2.0 # set -eu PROGNAME="${0##*/}" VERSION=1.1 ### Default settings DEF_TIMEOUT=10 MODE=0 # apply rulesfile mode # MODE=1 # run command mode case "$PROGNAME" in (*6*) SAVE=ip6tables-save RESTORE=ip6tables-restore DEF_RULESFILE="/etc/network/ip6tables.up.rules" DEF_SAVEFILE="$DEF_RULESFILE" DEF_RUNCMD="/etc/network/ip6tables.up.run" ;; (*) SAVE=iptables-save RESTORE=iptables-restore DEF_RULESFILE="/etc/network/iptables.up.rules" DEF_SAVEFILE="$DEF_RULESFILE" DEF_RUNCMD="/etc/network/iptables.up.run" ;; esac ### Functions function blurb() { cat <<-__EOF__ $PROGNAME $VERSION -- a safer way to update iptables remotely __EOF__ } function copyright() { cat <<-__EOF__ $PROGNAME has been published under the terms of the Artistic Licence 2.0. Original version - Copyright 2006 Martin F. Krafft <madduck@madduck.net>. Version 1.1 - Copyright 2010 GW <gw.2010@tnode.com or http://gw.tnode.com/>. __EOF__ } function about() { blurb echo copyright } function usage() { blurb echo cat <<-__EOF__ Usage: $PROGNAME [-hV] [-t timeout] [-w savefile] {[rulesfile]|-c [runcmd]} The script will try to apply a new rulesfile (as output by iptables-save, read by iptables-restore) or run a command to configure iptables and then prompt the user whether the changes are okay. If the new iptables rules cut the existing connection, the user will not be able to answer affirmatively. In this case, the script rolls back to the previous working iptables rules after the timeout expires. Successfully applied rules can also be written to savefile and later used to roll back to this state. This can be used to implement a store last good configuration mechanism when experimenting with an iptables setup script: $PROGNAME -w $DEF_SAVEFILE -c $DEF_RUNCMD When called as ip6tables-apply, the script will use ip6tables-save/-restore and IPv6 default values instead. Default value for rulesfile is '$DEF_RULESFILE'. Options: -t seconds, --timeout seconds Specify the timeout in seconds (default: $DEF_TIMEOUT). -w savefile, --write savefile Specify the savefile where successfully applied rules will be written to (default if empty string is given: $DEF_SAVEFILE). -c runcmd, --command runcmd Run command runcmd to configure iptables instead of applying a rulesfile (default: $DEF_RUNCMD). -h, --help Display this help text. -V, --version Display version information. __EOF__ } function checkcommands() { for cmd in "${COMMANDS[@]}"; do if ! command -v "$cmd" >/dev/null; then echo "Error: needed command not found: $cmd" >&2 exit 127 fi done } function revertrules() { echo -n "Reverting to old iptables rules... " "$RESTORE" <"$TMPFILE" echo "done." } ### Parsing and checking parameters TIMEOUT="$DEF_TIMEOUT" SAVEFILE="" SHORTOPTS="t:w:chV"; LONGOPTS="timeout:,write:,command,help,version"; OPTS=$(getopt -s bash -o "$SHORTOPTS" -l "$LONGOPTS" -n "$PROGNAME" -- "$@") || exit $? for opt in $OPTS; do case "$opt" in (-*) unset OPT_STATE ;; (*) case "${OPT_STATE:-}" in (SET_TIMEOUT) eval TIMEOUT=$opt;; (SET_SAVEFILE) eval SAVEFILE=$opt [ -z "$SAVEFILE" ] && SAVEFILE="$DEF_SAVEFILE" ;; esac ;; esac case "$opt" in (-t|--timeout) OPT_STATE="SET_TIMEOUT";; (-w|--write) OPT_STATE="SET_SAVEFILE";; (-c|--command) MODE=1;; (-h|--help) usage >&2; exit 0;; (-V|--version) about >&2; exit 0;; (--) break;; esac shift done # Validate parameters if [ "$TIMEOUT" -ge 0 ] 2>/dev/null; then TIMEOUT=$(($TIMEOUT)) else echo "Error: timeout must be a positive number" >&2 exit 1 fi if [ -n "$SAVEFILE" -a -e "$SAVEFILE" -a ! -w "$SAVEFILE" ]; then echo "Error: savefile not writable: $SAVEFILE" >&2 exit 8 fi case "$MODE" in (1) # Treat parameter as runcmd (run command mode) RUNCMD="${1:-$DEF_RUNCMD}" if [ ! -x "$RUNCMD" ]; then echo "Error: runcmd not executable: $RUNCMD" >&2 exit 6 fi # Needed commands COMMANDS=(mktemp "$SAVE" "$RESTORE" "$RUNCMD") checkcommands ;; (*) # Treat parameter as rulesfile (apply rulesfile mode) RULESFILE="${1:-$DEF_RULESFILE}"; if [ ! -r "$RULESFILE" ]; then echo "Error: rulesfile not readable: $RULESFILE" >&2 exit 2 fi # Needed commands COMMANDS=(mktemp "$SAVE" "$RESTORE") checkcommands ;; esac ### Begin work # Store old iptables rules to temporary file TMPFILE=`mktemp /tmp/$PROGNAME-XXXXXXXX` trap "rm -f $TMPFILE" EXIT 1 2 3 4 5 6 7 8 10 11 12 13 14 15 if ! "$SAVE" >"$TMPFILE"; then # An error occured if ! grep -q ipt /proc/modules 2>/dev/null; then echo "Error: iptables support lacking from the kernel" >&2 exit 3 else echo "Error: unknown error saving old iptables rules: $TMPFILE" >&2 exit 4 fi fi # Legacy to stop the fail2ban daemon if present [ -x /etc/init.d/fail2ban ] && /etc/init.d/fail2ban stop # Configure iptables case "$MODE" in (1) # Run command in background and kill it if it times out echo -n "Running command '$RUNCMD'... " "$RUNCMD" & CMD_PID=$! ( sleep "$TIMEOUT"; kill "$CMD_PID" 2>/dev/null; exit 0 ) & CMDTIMEOUT_PID=$! if ! wait "$CMD_PID"; then echo "failed." echo "Error: unknown error running command: $RUNCMD" >&2 revertrules exit 7 else echo "done." fi ;; (*) # Apply iptables rulesfile echo -n "Applying new iptables rules from '$RULESFILE'... " if ! "$RESTORE" <"$RULESFILE"; then echo "failed." echo "Error: unknown error applying new iptables rules: $RULESFILE" >&2 revertrules exit 5 else echo "done." fi ;; esac # Prompt user for confirmation echo -n "Can you establish NEW connections to the machine? (y/N) " read -n1 -t "$TIMEOUT" ret 2>&1 || : case "${ret:-}" in (y*|Y*) # Success echo if [ ! -z "$SAVEFILE" ]; then # Write successfully applied rules to the savefile echo "Writing successfully applied rules to '$SAVEFILE'..." if ! "$SAVE" >"$SAVEFILE"; then echo "Error: unknown error writing successfully applied rules: $SAVEFILE" >&2 exit 9 fi fi echo "... then my job is done. See you next time." ;; (*) # Failed echo if [ -z "${ret:-}" ]; then echo "Timeout! Something happened (or did not). Better play it safe..." else echo "No affirmative response! Better play it safe..." fi revertrules exit 255 ;; esac # Legacy to start the fail2ban daemon again [ -x /etc/init.d/fail2ban ] && /etc/init.d/fail2ban start exit 0 # vim:noet:sw=8