Postate qui per tutte le discussioni legate a Linux in generale.
Moderatore: Staff
Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
darkstaring
Linux 3.x
Messaggi: 639 Iscritto il: mer 13 ott 2010, 13:55
Nome Cognome: Francesco Achenza
Desktop: KDE
Distribuzione: Arch Linux
Contatta:
Messaggio
da darkstaring » sab 20 ago 2016, 17:36
Buonasera, sto facendo uno script in bash con funzioni che posso eseguire solo come root.
Faccio un check in testa allo script per vedere su è un utente root o no :
Codice: Seleziona tutto
if [ $(whoami) != 'root' ] ; then echo;echo "*** Root_user_Need (no sudo)*** ";echo; exit 1; fi
Ho abilitato il mio utente al comando sudo, ma eseguendo
non mi trova alcuni comandi come iptables ecc...
Il problema è che eseguendolo con sudo non mi accorgo se è realmente root o un utente con sudo
e quindi non riesco ad eseguire alcuni comandi
Devo specificare per esempio "/usr/sbin/iptables" ???
Ultima modifica di
darkstaring il sab 20 ago 2016, 18:46, modificato 1 volta in totale.
Ansa89
Iper Master
Messaggi: 2703 Iscritto il: mer 29 ago 2007, 17:57
Nome Cognome: Stefano Ansaloni
Slackware: 14.2 64bit
Kernel: 4.9.61
Desktop: XFCE 4.12
Località: Modena
Messaggio
da Ansa89 » sab 20 ago 2016, 18:35
Premesso che non sono esperto di sudo, se posti lo script (forse) posso provare a darti qualche consiglio.
darkstaring
Linux 3.x
Messaggi: 639 Iscritto il: mer 13 ott 2010, 13:55
Nome Cognome: Francesco Achenza
Desktop: KDE
Distribuzione: Arch Linux
Contatta:
Messaggio
da darkstaring » sab 20 ago 2016, 18:45
Lo script se eseguito da root fà l'hotspot e redirige qualsiasi http al localhost dove viene eseguito....
Codice: Seleziona tutto
#!/bin/bash
#############################
######SETTINGS NETWORK#######
network=10.0.0.0
broadcast=10.255.255.255
netmask=255.0.0.0
gateway=10.0.0.1
min_ip=10.0.0.2
max_ip=10.255.255.254
#############################
function check_root()
{
if [ "$EUID" -ne 0 ]
then
echo;echo "*** Root_user_Need (no sudo)*** ";echo;
exit
fi
}
function help ()
{
echo "Usage:"
echo "hotspot --start Periferica NOME_RETE"
echo "hotspot --stop"
echo "hotspot --install"
echo
echo "By Darkstaring";
exit 1
}
function start()
{
echo Channel [1-12]?
read CHANNEL
#checking
clear
echo "Is this what you selected?"
echo "Fake AP interface: $INTERFACE"
echo "NOME_RETE: $NOME_RETE"
echo "Channel: $CHANNEL"
echo
read -p "Press [Enter] key to continue..."
clear
echo "[>] Changing fake AP MAC address to random"
ifconfig $INTERFACE down
#macchanger -r $INTERFACE
ifconfig $INTERFACE up
#monitor mode
echo "[>] Putting your interface in monitor mode"
airmon-ng start $INTERFACE &>/dev/null
#creating access point
echo "[>] Creating new window for creating access point"
xterm -geometry 96x25+0+0 -e airbase-ng -e $NOME_RETE -c $CHANNEL mon0 &
echo "[*] Fake AP created"
sleep 2
ifconfig at0 up
sleep 2
echo "[>] Setting up iptables"
ifconfig at0 $gateway netmask $netmask
route add -net $network netmask $netmask gw $gateway
dnsmasq --address=/#/$gateway --bind-interfaces --except-interface=at0 --clear-on-reload --strict-order --listen-address=$gateway --dhcp-range=$min_ip,$max_ip,60m --dhcp-option=option:router,$gateway --dhcp-lease-max=50 --pid-file=/var/run/nm-dnsmasq-at0.pid
#iptables
iptables --flush
iptables --table nat --flush
iptables --delete-chain
iptables --table nat --delete-chain
iptables --append FORWARD --in-interface at0 -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to $gateway
echo "[>] Finished"
}
function stop()
{
read -p "Press [Enter] key to quit..."
killall -9 airbase-ng dnsmasq
iptables --flush
iptables --delete-chain
iptables --table nat --flush
iptables --table filter --flush
iptables --table nat --delete-chain
iptables --table filter --delete-chain
echo "[>] Killing program safely"
echo "[>] Turning off monitor mode..."
airmon-ng stop mon0 &>/dev/null
echo "[>] Putting interface at0 down..."
ifconfig at0 down &>/dev/null
echo "[>] Shutting down airbase-ng"
killall airbase-ng
}
check_root
case "$1" in
"--help")
help ;;
"")
help;;
"--stop")
stop ;;
"--start")
if [ "$2" != '' ] ;
then
INTERFACE="$2";
else
help
fi
if [ "$3" != '' ] ;
then
NOME_RETE="$3";
else
help
fi
start ;;
*)help;;
esac
exit 0
Dovrei anche redirigere l'https su http ma per ora non ci sono riuscito.. se avete consigli sono ben accetti
Grazie
Ansa89
Iper Master
Messaggi: 2703 Iscritto il: mer 29 ago 2007, 17:57
Nome Cognome: Stefano Ansaloni
Slackware: 14.2 64bit
Kernel: 4.9.61
Desktop: XFCE 4.12
Località: Modena
Messaggio
da Ansa89 » sab 20 ago 2016, 18:48
Posta l'output di questi comandi
Codice: Seleziona tutto
$ sudo whoami
$ sudo which iptables
$ sudo -s whoami
$ sudo -s which iptables
EDIT: credo sia un problema relativo alla variabile d'ambiente "PATH". Prova ad aggiungere questa riga al tuo "/etc/sudoers"
Codice: Seleziona tutto
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
darkstaring
Linux 3.x
Messaggi: 639 Iscritto il: mer 13 ott 2010, 13:55
Nome Cognome: Francesco Achenza
Desktop: KDE
Distribuzione: Arch Linux
Contatta:
Messaggio
da darkstaring » sab 20 ago 2016, 19:26
Codice: Seleziona tutto
francesco@darkstar:~$ sudo whoami
root
francesco@darkstar:~$ sudo which iptables
which: no iptables in (/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/lib64/java/bin:/usr/lib64/java/jre/bin:/usr/lib64/kf5:/usr/lib64/kde4/libexec:/usr/lib64/java/bin:/usr/lib64/java/jre/bin:/usr/lib64/qt/bin:/usr/lib64/qt5/bin:/usr/share/texmf/bin)
francesco@darkstar:~$ sudo -s whoami
root
francesco@darkstar:~$ sudo -s which iptables
which: no iptables in (/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/lib64/java/bin:/usr/lib64/java/jre/bin:/usr/lib64/kf5:/usr/lib64/kde4/libexec:/usr/lib64/java/bin:/usr/lib64/java/jre/bin:/usr/lib64/qt/bin:/usr/lib64/qt5/bin:/usr/share/texmf/bin)
francesco@darkstar:~$
/etc/sudoers
ha questi permessi:
Codice: Seleziona tutto
-r--r----- 1 root root 3172 Mar 15 17:58 /etc/sudoers
darkstaring
Linux 3.x
Messaggi: 639 Iscritto il: mer 13 ott 2010, 13:55
Nome Cognome: Francesco Achenza
Desktop: KDE
Distribuzione: Arch Linux
Contatta:
Messaggio
da darkstaring » sab 20 ago 2016, 19:38
Ho modificato temporaneamente i permessi:
Codice: Seleziona tutto
root@darkstar:/home/francesco# chmod 640 /etc/sudoers
root@darkstar:/home/francesco# vim /etc/sudoers
root@darkstar:/home/francesco# chmod 440 /etc/sudoers
Ed ora funziona
:
Codice: Seleziona tutto
francesco@darkstar:~$ sudo whoami
root
francesco@darkstar:~$ sudo which iptables
/usr/sbin/iptables
francesco@darkstar:~$ sudo -s whoami
root
francesco@darkstar:~$ sudo -s which iptables
/usr/sbin/iptables
francesco@darkstar:~$
Grazie 1000
ora dovrei redirigere l'https su http... sai se posso farlo con iptables?
Ansa89
Iper Master
Messaggi: 2703 Iscritto il: mer 29 ago 2007, 17:57
Nome Cognome: Stefano Ansaloni
Slackware: 14.2 64bit
Kernel: 4.9.61
Desktop: XFCE 4.12
Località: Modena
Messaggio
da Ansa89 » dom 21 ago 2016, 11:45
darkstaring ha scritto: Ho modificato temporaneamente i permessi:
Codice: Seleziona tutto
root@darkstar:/home/francesco# chmod 640 /etc/sudoers
root@darkstar:/home/francesco# vim /etc/sudoers
root@darkstar:/home/francesco# chmod 440 /etc/sudoers
Per modificare "/etc/sudoers" è consigliato l'uso di "visudo".
darkstaring ha scritto: ora dovrei redirigere l'https su http... sai se posso farlo con iptables?
Devi agire sulla catena di prerouting della tabella nat.
Qualcosa di simile a questo:
Codice: Seleziona tutto
iptables -t nat -A PREROUTING -i _INTERFACCIA_ -p tcp --dport 443 -j REDIRECT --to-port 80
Però secondo me avrai problemi perché i browsers si aspettano una risposta di tipo cifrato, ma se ne vedranno recapitare una di tipo "plain".
In parole povere: non è una bella cosa "giocare" con la redirezione delle porte se non si sa esattamente cosa si sta facendo.
darkstaring
Linux 3.x
Messaggi: 639 Iscritto il: mer 13 ott 2010, 13:55
Nome Cognome: Francesco Achenza
Desktop: KDE
Distribuzione: Arch Linux
Contatta:
Messaggio
da darkstaring » mar 23 ago 2016, 19:56
Non funziona infatti... ma è bello aver visto come si fà..
Grazie